Interfacer une macro
VBA_93
-
VBA_93 -
VBA_93 -
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!
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:
- Interfacer une macro
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Télécharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Macro maker - Télécharger - Divers Utilitaires
- Macro word - Guide
1 réponse
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
3/ lorsque tu montres des codes, mets le entre balises pour le rendre + lisible
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

Merci pour ta réponse mais j'ai des questions sur tes macros? Comment les intégrer à cette que j'ai réalisé?