Probleme de boucle sur ma VBA
Bonjour à tous, je débute en VBA et aurais besoin de petit coup de pouce.
Je souhaiterais que ma macro présente sur un tableur Excel vierge (comprenant les macros) ouvre tous les fichiers Excel présent dans un même dossier, copie la même colonne pour chaque fichier ouvert, la colle dans mon tableur vierge les unes à la suite des autres (pour avoir les données dans les colonnes les unes à la suite des autres) puis referme tous les fichiers Excel du dossier.
1er problème rencontré, quand je fais pas à pas sur ma macro il me met un message d'erreur lors de l'ouverture des fichiers Excel "erreur d'exécution 1004, fichier introuvable" alors que le chemin d'accès est exact.
2eme problème, lors de la fermeture des fichiers il me met un message pour enregistrer ou non mes fichiers Excel (je voudrais ne pas les enregistrer)
3eme problème, je ne suis pas sûr que ma macro soit exacte pour déplacer les informations dans les colonnes les unes à la suite des autres.
Voila ma macro:
Sub TEST1()
'
' TEST3 Macro
'
' Touche de raccourci du clavier: Ctrl+Shift+E
'
'Effacement de la feuille
' -----------------------------
Sheets("Feuil1").Select
Cells.Select
Range("A89").Activate
Selection.Delete Shift:=xlUp
'
'Mettre en place la colonne désignation
' -----------------------------
Sheets("Feuil2").Select
Columns("A:A").Select
Range("A211").Activate
Selection.Copy
Sheets("Feuil1").Select
Columns("A:A").Select
Range("A109").Activate
Selection.Insert Shift:=xlToRight
Columns("B:B").Select
Range("B109").Activate
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
' Parcours de tous les fichiers
' -----------------------------
ChDir "C:\Users\BCI-TRADI002\Desktop\ClasseurRegional"
ClasseurRegional = Dir("C:\Users\BCI-TRADI002\Desktop\ClasseurRegional\*.xlsx")
While Len(ClasseurRegional) > 0
Workbooks.Open ClasseurRegional
'Copier
Sheets("Nomencl.").Select
ActiveWindow.SmallScroll Down:=-24
ActiveSheet.Range("$A$1:$A$544").AutoFilter Field:=1
Range("C19:C527").Select
Selection.Copy
'Coller
Workbooks("Recap.xlsm").Activate
Columns("B:B").Select
Selection.Insert Shift:=xlToRight
Workbooks(ClasseurRegional).Close
Debug.Print "C:\Users\BCI-TRADI002\Desktop\ClasseurRegional\*.xlsx" & ClasseurRegional
ClasseurRegional = Dir
Wend
' Fin des travaux
' ---------------
Columns("A:A").Replace ".xlsx", ""
LigneTotal = ActiveSheet.UsedRange.Rows.Count + 1
Range("B" & LigneTotal) = "TOTAL :"
Range("A" & LigneTotal & ":C" & LigneTotal).Interior.Color = JaunePale
Range("A" & LigneTotal & ":C" & LigneTotal).Font.Bold = True
Range("C" & LigneTotal).FormulaLocal = "=Somme(C2:C" & LigneTotal - 1 & ")"
Cells.EntireColumn.AutoFit
Range("A1").Select
End Sub
Bonsoir,
problème 1 : ce n'est pas le chemin qui est en cause, c'est les fichiers... vérifiez l'extension de ces derniers, ils sont peut être en XLS et non pas XSLX, ou bien ils sont en XLSM au lieu de XLSX...
problème 2 : l'instruction pour "zapper" les messages de confirmation : Application.DisplayAlert = False
= True pour les rétablir...
problème 3 : en effet votre code est "lourd" en "Select" instruction que certains vous diront qu'elle est à bannir au niveau VBA, en effet un Select sert à sélectionner une cellule sur une feuille mais souvent dans un code on a pas besoin de la sélectionner car il n'y a pas d'interaction avec l'utilisateur !...
Donc :
Sheets("Feuil1").Select
Cells.Select
Range("A89").Activate
Selection.Delete Shift:=xlUppeut être remplacé par :
Sheets("Feuil1").Cells.Delete Shift:=xlUpAprès je n'ai pas regardé le reste, sans fichier...
@ bientôt
LouReeD
Mon tableur excel vierge est en "feuille de calcul microsoft excel prenant en charge les macro"s et mes différents tableurs excels (la ou je vais chercher les infos) sont bien en "feuille de calcul microsoft excel (.xlsx)".
Faut il que tout mes tableurs excels soit en "feuille de calcul microsoft excel prenant en charge les macros"?
De plus pour créer les différents tableurs excels (la ou je vais chercher les infos) viennent d'un tableur "modéle excel".
Merci de vos réponses
Bonsoir,
Après je n'ai pas regardé le reste, sans fichier...
@ bientôt
LouReeD