Regrouper plusieurs macro en une seule
Bonsoir à tous,
Voilà mon souci:
J'ai plusieurs macro que je déclenche chacune par un bouton mais je voudrai réussir à les regrouper sous un seul et même bouton puisque je dois réaliser systématiquement les 4 étapes (donc aucun intérêt de les avoir en 4 étapes séparées).
J'ai beau essayé, y'a pas moyen ...
Voilà les 4 codes dans l'ordre que je voudrai:
1- Celui-ci copie une feuille dans le classeur archiveAV1.xls et le copie dans Extraction Liste en cours DS - Copie.xls
Sub Bouton7_Cliquer()
Workbooks("archiveav1.xls").Activate
Dim nbfeuille As Integer
Dim numfact As Integer
nbfeuille = Workbooks("Extraction Liste en cours DS - Copie.xls").Sheets.Count
ActiveSheet.Copy After:=Workbooks("Extraction Liste en cours DS - Copie.xls").Sheets(nbfeuille)
ActiveSheet.Name = "ArchiveAV1.RPT" & (nbfeuille)
Workbooks("Extraction Liste en cours DS - Copie.xls").Activate
Worksheets("Feuil1").Select
End Sub
2- Celui-ci sépare les données d'une cellule en deux cellules:
Private Sub Bouton6_Cliquer()
Worksheets("ArchiveAV1.RPT1").Select
Dim i As Long, ii As Long, iii As Long, iLR As Long, Arr
iLR = Range("B" & Rows.Count).End(xlUp).Row
For i = iLR To 2 Step -1
Arr = Split(Cells(i, 2), ":")
ii = UBound(Arr)
If ii > 0 Then
For iii = 1 To ii
Rows(i + 1).Insert Shift:=xlLeft
Next
For iii = 0 To ii
Cells(i + iii, 2) = Arr(0 + iii)
Next
End If
Next
Worksheets("Feuil1").Select
End Sub
3- Celui-là prend certaines données de ArchiveAV1.RPT et les range dans un tableau plus épuré
Sub extraction()
derLig = Sheets("ArchiveAV1.RPT1").Range("D" & Rows.Count).End(xlUp).Row
j = 2
For i = 1 To derLig
If Sheets("ArchiveAV1.RPT1").Cells(i + 1, 2) = "Tube " Then
Tube = Sheets("ArchiveAV1.RPT1").Cells(i + 2, 2)
Else
test = Sheets("ArchiveAV1.RPT1").Cells(i, 3)
resultat = Sheets("ArchiveAV1.RPT1").Cells(i, 4)
End If
If Tube <> "" And test <> "" Then
Sheets("Feuil1").Cells(j, "A") = Tube
Sheets("Feuil1").Cells(j, "B") = test
Sheets("Feuil1").Cells(j, "C") = resultat
j = j + 1
End If
Next i
End Sub
4- Et enfin celui-là supprime les lignes vides
Public Sub Essai()
Dim i As Integer, DerniereLigne As Integer
DerniereLigne = Range("C65536").End(xlUp).Row
For i = DerniereLigne To 1 Step -1
If Worksheets("Feuil1").Cells(i, 3) = "" Then Worksheets("Feuil1").Rows(i).Delete
Next i
End Sub
Si quelqu'un a la solution, je suis preneur !!!
Merci d'avance
Yoann
Bonjour,
as tu regardé du côté de Call ?
sub Macro1
Call macro2
end sub
Sub Macro2
Call Macro3
end sub
etc etc...
La première lancera la 2e qui lance la 3e....
Pas mon truc ça sauf si chaque module est bien écrit et que ce qui est fait en Sub 1 n'empiète pas en Sub 2
P.
Bonsoir Patrick,
Et merci de ta réponse. Malheureusement ça n'a pas l'air de vouloir, j'ai un message : Erreur de compilation Sub ou Fonction non définie.
Yoann
Rectification: ça fonctionne !!!!
Je ne sais pas pourquoi mais quand mes macro s'appelaient Bouton_cliquer, là ça ne focntionnait pas mais maintenant j'ai renommer mes macros sous le format "Macro1", "Macro2" ..etc et là, plus de problème!
Merci beaucoup Patrick, et bonne soirée.
Yoann