Créer une boucle sur des variables Noms ?

  • Initiateur de la discussion Initiateur de la discussion lebarbo
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

lebarbo

XLDnaute Occasionnel
Bonjour forum, bonjour à tous,

Je souhaiterais faire une boucle pour éviter de reproduire plusieurs fois le même code avec des noms (et non des numéros) de classeurs différents.

En somme j'ai trois classeurs à consolider dans un. Les trois classeurs sont Roger.xls, David.xls et Gérard.xls qui ont chacun une feuille s'appelant Sheet1 que je veux copier dans un classeur Synthèse.xls. Mais je n'arrive pas à faire ma boucle.
Voici ce que j'ai fait mais bien sur le Nom & i ne fonctionne pas malheureusement ; )
Si vous avez des idées, merci d'avance.

Sub essai()

Nom1 = "Roger"
Nom2 = "David"
Nom3 = "Gérard"

For i = 1 To 3
Application.DisplayAlerts = False
On Error Resume Next
Workbooks("Synthèse.xls").Sheets(Nom & i).Delete
Workbooks.Open Filename:="K:\Fichiers\" & Nom & i & ".xls"
Workbooks(Nom & i & ".xls").Sheets("Sheet1").Copy Before:=Workbooks("Synthèse.xls").Sheets(i)
Workbooks("Synthèse.xls").Sheets(i).Name = Nom & i
Workbooks(Nom & i & ".xls").Close False
Next i

End Sub
 
Re : Créer une boucle sur des variables Noms ?

Bonjour



En utilisant un tableau
Dim i as Integer
Dim Tablo() As Variant
Tablo=Array("Roger","David","Gérard")
For i = 0 To 2
Application.DisplayAlerts = False
On Error Resume Next
Workbooks("Synthèse.xls").Sheets(Tablo(i)).Delete
 
Re : Créer une boucle sur des variables Noms ?

Re

Cette macro fonctionne :

Code:
Sub test()
Dim i As Integer
Dim Tablo() As Variant
Tablo = Array("Feuil2", "Feuil3", "Feuil4")
For i = 0 To 2
Application.DisplayAlerts = False
'On Error Resume Next
ActiveWorkbook.Sheets(Tablo(i)).Delete
Next
End Sub

Je te laisse adapter le reste de la macro
 
Re : Créer une boucle sur des variables Noms ?

Re


Finalement comme j'avais un peu de temps

Voici la macro finale (test OK sur mon PC)

Code:
Sub test()
Dim Conso As Workbook
Set Conso = ThisWorkbook
Dim i As Integer
Dim Tablo() As Variant
Tablo = Array("Roger", "David", "Gérard")
For i = 0 To 2
Application.DisplayAlerts = False
On Error Resume Next
Conso.Sheets(Tablo(i)).Delete
Workbooks.Open Filename:="[B]C:\Temp\[/B]" & Tablo(i) & ".xls"
Workbooks(Tablo(i) & ".xls").Sheets("Sheet1").Copy Before:=Conso.Sheets(i + 1)
Conso.Sheets(i + 1).Name = Tablo(i)
Workbooks(Tablo(i) & ".xls").Close False
Next
End Sub
Il te restera à modifier le chemin.

Bon appétit à tous
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

D
Réponses
4
Affichages
747
D
R
  • Question Question
Réponses
2
Affichages
988
Rousseau Benoit
R
Retour