Exécuter une macro lorsque la première est finie

TOINE38

XLDnaute Occasionnel
Bonjour a tous

Cela fait plusieurs jours que je bloque sur un problème de lancement de macro sans trouver de solution.
Dans un fichier j'exécute une macro qui vient m’insérer une ligne et recopier des données en fonction de la valeur de la ligne précédente sur une plage de colonne , ensuite je souhaite recopier des cellules sur l'autre plage de colonne.
Pour cela j'ai créer 2 macros mais le problème est que la deuxième macro s’exécute avant la fin de la première :(.
N'étant pas un expert en programmation vba, y aurait il une âme charitable pour m'aider ?
ci-après les codes de mes macros:

Sub Macro1()
Dim a As Long
Dim b As Long
b = Range("a65536").End(xlUp).Row

For a = [H65536].End(xlUp).Row To b Step -1
'For a = [d65536].End(xlUp).Row To 2 Step -1
If Cells(a, "Af") <> 0 And Cells(a, "Aj") = "" Then

Rows(a + 1).Insert Shift:=xlDown

Cells(a + 1, 36) = "LReglage" 'enregistre Reglage dans le champ
Cells(a + 1, 34) = Cells(a, 32) 'recopie temps de reglage
Cells(a + 1, 8) = Cells(a, 8) 'N° Transaction
Cells(a + 1, 9) = Cells(a, 9) 'Date validité
Cells(a + 1, 15) = Cells(a, 15) ' Centre de charge
Cells(a + 1, 18) = Cells(a, 18) 'Employé
Cells(a + 1, 19) = Cells(a, 19) 'Nom
Cells(a + 1, 20) = Cells(a, 20) 'Code Article)
Cells(a + 1, 21) = Cells(a, 21) 'ID

End If
If Cells(a, "Ah") <> 0 And Cells(a, "Aj") = "" Then
Cells(a, 36) = "LProd"

End If
Next a

Macro2
End Sub

-----------------------------------------------------------------------

Sub Macro2()
Dernligne = Range("i" & Rows.Count).End(xlUp).Row
Range("a2").AutoFill Destination:=Range("a2:a" & Dernligne)
Range("b2").AutoFill Destination:=Range("b2:b" & Dernligne)
Range("c2").AutoFill Destination:=Range("c2:c" & Dernligne)
Range("d2").AutoFill Destination:=Range("d2:d" & Dernligne)
Range("e2").AutoFill Destination:=Range("e2:e" & Dernligne)
Range("f2").AutoFill Destination:=Range("f2:f" & Dernligne)
Range("g2").AutoFill Destination:=Range("g2:g" & Dernligne)
Range("h2").AutoFill Destination:=Range("h2:h" & Dernligne)
Calculate
End Sub

Merci beaucoup pour votre coup de pouce

Cordialement

Toine38
 

Lone-wolf

XLDnaute Barbatruc
Re : Exécuter une macro lorsque la première est finie

Bonjour Toine,

pourquoi 2 macros??. Modifie le nom de la feuille et fait un essai comme ceci:

Code:
Sub Macro1()
Dim a As Long, b As Long, Dernligne As Long

Application.ScreenUpdating = False

With Feuil1
b = .Range("a65536").End(xlUp).Row

For a = .[H65536].End(xlUp).Row To b Step -1
'For a = [d65536].End(xlUp).Row To 2 Step -1
If .Cells(a, "Af") <> 0 And .Cells(a, "Aj") = "" Then

Rows(a + 1).Insert Shift:=xlDown

.Cells(a + 1, 36) = "LReglage" 'enregistre Reglage dans le champ
.Cells(a + 1, 34) = .Cells(a, 32) 'recopie temps de reglage
.Cells(a + 1, 8) = .Cells(a, 8) 'N° Transaction
.Cells(a + 1, 9) = .Cells(a, 9) 'Date validité
.Cells(a + 1, 15) = .Cells(a, 15) ' Centre de charge
.Cells(a + 1, 18) = .Cells(a, 18) 'Employé
.Cells(a + 1, 19) = .Cells(a, 19) 'Nom
.Cells(a + 1, 20) = .Cells(a, 20) 'Code Article)
.Cells(a + 1, 21) = .Cells(a, 21) 'ID

End If
If .Cells(a, "Ah") <> 0 And .Cells(a, "Aj") = "" Then
.Cells(a, 36) = "LProd"

End If
Next a

Dernligne = .Range("i" & Rows.Count).End(xlUp).Row
.Range("a2").AutoFill Destination:=.Range("a2:a" & Dernligne)
.Range("b2").AutoFill Destination:=.Range("b2:b" & Dernligne)
.Range("c2").AutoFill Destination:=.Range("c2:c" & Dernligne)
.Range("d2").AutoFill Destination:=.Range("d2:d" & Dernligne)
.Range("e2").AutoFill Destination:=.Range("e2:e" & Dernligne)
.Range("f2").AutoFill Destination:=.Range("f2:f" & Dernligne)
.Range("g2").AutoFill Destination:=.Range("g2:g" & Dernligne)
.Range("h2").AutoFill Destination:=.Range("h2:h" & Dernligne)
'Calculate
End With
End Sub
 
Dernière édition:

TOINE38

XLDnaute Occasionnel
Re : Exécuter une macro lorsque la première est finie

Bonjour Lone-Wolf

Pourquoi 2 macros ? je pense que c'est une mauvaise habitude que j'ai du prendre ( quand on est novice comme moi)

J'ai testé ce que tu as écris, c'est parfais cela marche nickel.

Je m'inspirerais de tes conseils pour les prochains code.

merci encore mille fois

Bonne fin de journée
 

Statistiques des forums

Discussions
312 213
Messages
2 086 302
Membres
103 174
dernier inscrit
OBUTT