Interfacer une macro

Fermé
VBA_93 - 20 déc. 2016 à 12:41
 VBA_93 - 21 déc. 2016 à 10:48
Bonjour à tous,
Je suis en train de réaliser actuellement un convertisseur de fichiers ( de .dbf vers .csv)
Voila ma macro :
Sub ConvertDBF_to_CSV()
Dim strDocPath As String
Dim strCurrentFile As String
Dim Fname As String
Dim sFiles
Dim x As Integer, y As Integer
Application.ScreenUpdating = True

x = 0
y = 0
sFiles = Dir(ThisWorkbook.Path & "*.dbf")
'count the files
Do Until sFiles = ""
x = x + 1
sFiles = Dir
Loop

strDocPath = "C:\Users\fg733136\Documents\Projet PCC\03SABRAQUE corrigé\03SABRAQUE corrigé\"
'strCurrentFile = Dir(strDocPath & "*.*")
strCurrentFile = Dir(strDocPath & "*.dbf")

Do While strCurrentFile <> ""
y = y + 1
'display current status on status bar
Application.StatusBar = "Conversion " & y & " of " & x

Workbooks.Open Filename:=strDocPath & strCurrentFile
Fname = Left$(strCurrentFile, Len(strCurrentFile) - 4) & ".csv"
ActiveWorkbook.SaveAs Filename:=strDocPath & Fname, FileFormat:=6, CreateBackup:=False, local:=True

strCurrentFile = Dir
Loop
Application.StatusBar = False 'release the status bar back to excel
Application.ScreenUpdating = False
End Sub

Elle fonctionne mais maintenant(Grâce à Zoul67) mais maintenant je souhaite lui créer une interface. C'est-à-dire que quand je l'exécute elle réalise juste le traitement (à savoir la conversion) . Je voudrais lui créer une interface avec des boutons qui exécute la macro quand on clique dessus et on voit l'état du traitement avec la barre de chargement.
J'ai pas réussi à le faire avec mon Application.StatusBar et mon Application.ScreenUpdating.
C'est pour ça que je demande votre aide.
Merci d'avance pour vos réponses!
A voir également:

1 réponse

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
21 déc. 2016 à 10:14
Bonjour

1/un exemple de progressbar à adapter à tes besoins
https://mon-partage.fr/f/FTbjUEs4/

2/ tu n'as pas besoin de faire une boucle pour compter le nombre de fichiers dans un dossier avec une fonction pouvant re-servir + tard
Function nbre_fichiers(repertoire As String) As Long
Dim fso As Object, rep As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set rep = fso.GetFolder(repertoire)
nbre_fichiers = rep.Files.Count
End Function


3/ lorsque tu montres des codes, mets le entre balises pour le rendre + lisible
0
Bonjour michel_m,
Merci pour ta réponse mais j'ai des questions sur tes macros? Comment les intégrer à cette que j'ai réalisé?
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303 > VBA_93
21 déc. 2016 à 10:45
Vu la rapidité de ta réponse, tu n'as pas cherché comment faire afin que je le fasse à ta place...
0
Je suis en train de chercher avec ce que tu m'as donné en recréant une nouvelle macro?
0