

Private Sub CommandButton1_Click()
'En Non Modale, permet de laisser l'userforme afficher et
'de naviguer dans le nouveau classeur.
csvxls.Show 0
End Sub
Private Sub CommandButton1_Click()
SuppFichier = Supprimer_CVS.Value
SauveXLS = Sauver_XLS.Value
If Texte_Num.Value Then
TxtNum = 1
ElseIf OptNumeric Then
TxtNum = 2
Else
TxtNum = 3
End If
If Un_Seul_Fichier.Value = True Then
'Un seul fichier du répertoir
If SelectionFichier() Then
ConvertiCvsXls
End If
Else
'Tout un répertoir
ConvertiRep
End If
End Sub
Private Sub Sauver_XLS_Click()
Supprimer_CVS.Enabled = Sauver_XLS
If Not Sauver_XLS Then
Supprimer_CVS = False
End If
End Sub
Option Explicit Public Chemin As String Public Fichier As String Const Ext = "csv" 'Détermine si les fichiers du répertoire seront supprimer Public SuppFichier As Boolean 'Détermine si sauve en xls Public SauveXLS As Boolean 'Détermine si tous les fichiers du répertoire seront convertit Public Tous As Boolean 'Détermine sortie texte/Numérique Public TxtNum As Integer
Sub ConvertiRep()
Dim fs, F, f1, s, sf
Dim i As Long, Fin As Long
'-----------------------------------------------------------
'Sélectionner le répertoir
SelectionRep
'-----------------------------------------------------------
Set fs = CreateObject("Scripting.FileSystemObject")
Set F = fs.GetFolder(Chemin)
Set sf = F.Files
For Each f1 In sf
If LCase(Right(f1.Name, 3)) = Ext Then
Fichier = f1.Name
ConvertiCvsXls
End If
Next
End Sub
Sub ConvertiCvsXls()
Dim TB
Dim Lig As Long, i As Integer, AncNom As String
AncNom = Fichier
If Right(Chemin, 1) <> "" Then Chemin = Chemin & ""
Workbooks.Open Filename:=Chemin & Fichier
Application.DisplayAlerts = False
Application.ScreenUpdating = False
With ActiveSheet
Select Case TxtNum
Case 1
.Cells.NumberFormat = "@"
Case 2
.Cells.NumberFormat = "0.000"
Case 3
.Cells.NumberFormat = "General"
End Select
For Lig = 1 To Range("A65536").End(xlUp).Row
'Changer la , (virgule) par le séparateur de votre fichier
TB = Split(.Cells(Lig, 1), ",")
For i = 0 To UBound(TB)
.Cells(Lig, i + 1) = TB(i)
Next i
Next Lig
End With
If SauveXLS Then
Fichier = Left(Fichier, Len(Fichier) - 3) & "xls"
If Dir(Chemin & Fichier) = "" Then
'le fichier xls n'existe pas encore
ActiveWorkbook.SaveAs Chemin & Fichier, FileFormat:=xlExcel9795 'Jusqu'au 2000
Workbooks(Fichier).Close SaveChanges:=False
Else
'le fichier xls existe, voir si ont l'écrase sans tomber en erreur.
If MsgBox("Le fichier " & Fichier & " existe déjà" & Chr(13) _
& "Faut-il l'écraser ?", vbQuestion + vbYesNo, "Ecraser fichier") = 6 Then
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Chemin & Fichier, FileFormat:=xlExcel9795 'Jusqu'au 2000
Workbooks(Fichier).Close SaveChanges:=False
Application.DisplayAlerts = True
ElseIf Tous Then
'Eviter la surcharge de classeur si tous les fichiers
Workbooks(AncNom).Close SaveChanges:=False
Else
Application.ScreenUpdating = True
Application.DisplayAlerts = True
Exit Sub
End If
End If
End If
If SuppFichier Then
'supprime le fichier cvs
Kill Chemin & AncNom
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Sub SelectionRep()
Const ssfTous = &H1
Dim objShell As Object, objFolder As Object, oFolderItem As Object
Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.BrowseForFolder(&H0&, "Choisir un répertoire", ssfTous)
Set oFolderItem = objFolder.Items.Item
Chemin = oFolderItem.Path
Set objShell = Nothing
Set objFolder = Nothing
Set oFolderItem = Nothing
End Sub
Function SelectionFichier() As Boolean
Dim nomfich As String, i As Integer
nomfich = Application.GetOpenFilename(FileFilter:="(*.csv),*.csv" _
, Title:="Sélectionnez le fichier à convertir")
If nomfich = "Faux" Then 'pas de sélection faite
Exit Function
End If
For i = Len(nomfich) To 2 Step -1
If Mid(nomfich, i, 1) = "" Then Exit For
Next i
Chemin = Left(nomfich, i)
Fichier = Mid(nomfich, i + 1)
SelectionFichier = True
End Function
Combien cela coûte-t-il au total ? Quelles aides apportent l'état et les acteurs du marché pour alléger cette charge non choisie ? Tous les détails sur Commentçamarche.net.