Faire une boucle en langage VBA
david3434
Messages postés
31
Statut
Membre
-
f894009 Messages postés 17414 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17414 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaiterai créer une boucle qui me permette de coller pour chacun de mes magasins le fichier des OD dans un fichier récap. Ceci m'éviterais de faire les 90 copier coller manuellement et gagner du temps.
Voici le lien du fichier ou je souhaite faire mes copier coller
https://mon-partage.fr/f/aWlmSRJ6/
Voici le lien d'un fichier magasin en exemple
https://mon-partage.fr/f/dzdA9V4W/
Ci dessous la macro faite à partir d'un exemple internet mais j'avoue être perdu. Rien ne se passe quand je lance la macro malheureusement.
Je souhaiterai créer une boucle qui me permette de coller pour chacun de mes magasins le fichier des OD dans un fichier récap. Ceci m'éviterais de faire les 90 copier coller manuellement et gagner du temps.
Voici le lien du fichier ou je souhaite faire mes copier coller
https://mon-partage.fr/f/aWlmSRJ6/
Voici le lien d'un fichier magasin en exemple
https://mon-partage.fr/f/dzdA9V4W/
Ci dessous la macro faite à partir d'un exemple internet mais j'avoue être perdu. Rien ne se passe quand je lance la macro malheureusement.
Sub Recup_OD_ENT()
Application.DisplayAlerts = False
Dim Fichier As String
Dim Chemin As String
Dim Magasin As String
Dim LigneDebut As Integer
Dim NomMagEns As String
With Application
.Calculation = xlManual
.MaxChange = 0.001
.CalculateBeforeSave = False
End With
Chemin = "U:\Contrôle de gestion\OD\"
Fichier = Dir("OD_ENT_*.CSV")
Sheets("BDD ENT INFO").Select
Range(Cells(20, 1), Cells(150000, 17)).Select
Selection.ClearContents
Do While Fichier <> ""
Set wb = Workbooks.Open(Chemin & Fichier)
Windows(Fichier).Activate
Sheets("OD_ENT_*").Select
NomMagEns = Cells(2, 2).Value
Sheets("OD_ENT_*").Select
Range(Cells(2, 1), Cells(2000, 17)).Select
Selection.Copy
Windows("OD Cloture fin JUIN 2017").Activate
Sheets("BDD ENT INFO").Select
Cells(50000, 1).Select
LigneDebut = Selection.End(xlUp).Row
Cells(LigneDebut + 1, 3).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Windows(Fichier).Activate
wb.Close True
Set wb = Nothing
Fichier = Dir
Loop
With Application
.Calculation = xlAutomatic
.MaxChange = 0.001
End With
ActiveWorkbook.PrecisionAsDisplayed = False
Application.DisplayAlerts = True
End Sub
A voir également:
- Faire une boucle en langage VBA
- Langage ascii - Guide
- Langage binaire - Guide
- Excel compter cellule couleur sans vba - Guide
- Télé samsung s'éteint et se rallume en boucle - Forum Téléviseurs
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
2 réponses
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
est-ce en lien avec ceci: https://forums.commentcamarche.net/forum/affich-34631587-bug-dans-ma-macro ?
sinon, as-tu déjà un code qui fonctionne pour un magasin?
ensuite, tu pourras faire une boucle pour les 90 magasins.
sinon, as-tu déjà un code qui fonctionne pour un magasin?
ensuite, tu pourras faire une boucle pour les 90 magasins.
Non c'est une autre macro, on m'a parlé de cette méthode de "boucle" mais je ne m'attendais pas à quelque chose de si complexe. Et je n'ai pas non plus un code qui fonctionne pour un magasin mais du coup je vais essayer comme ça. Si tu as des idées hésites pas lol
dim i as integer for i =1 to 90 traitementmagasin(i) next iremarque que si tu fais ainsi, tu gagnes déjà énormément de temps:
traitementmagasin("magasin1") traitementmagasin("magasin2") ' et ainsi de suite ... traitementmagasin("magasin90")