Bug marcos après affectation plusieurs macros à un bouton

Bonjour,

J’ai affecté plusieurs macros à un bouton, une fois lancé les macros ne s’exécutent pas correctement.
J’ai 3 macros qui ont pour objectif de supprimer une plage d’un tableau dans une feuille déterminée ( 3 macros qui chacun gère une feuille différente).
Je souhaite créer un bouton qui aura pour fonction d’exécuter ces trois macros en même temps.
Cependant une fois le bouton lancé il supprime sur deux feuilles différentes une ligne qui ne doit pas être supprimé.

Je ne sais pas par quoi cela est causé.

Ci-dessous mon code:

Private Sub Supprimer_Click()
A__Efface_données_F1
B__Efface_données_F2
E_Supprimer_donnée_F3
End Sub

les macros lancés une a une ne posent pas de problème.

Merci pour votre aide

Bonjour,

Inutile de créer une macro pour tous rassembler, il suffit de mettre avant le END SUB le noms des macros à exécuter,et elle vont se dérouler automatiquement

Exemple

Sub Efface_données_F1()

'Ta macro d'origine

Efface_données_F2
Efface_données_F3
End Sub

Mimimathy,
Merci pour ta réponse, en effet c’est bien plus pratique!
Mais cela ne règle pas le problème de modification de la plage de suppression dans le deux autres feuille :frowning:
En éxécutant la macro une ligne qui ne doit pas être supprimé l’est quand même dans les 2 autres feuilles.

Re,

C’est sur qu’avec un classeur devant ton nez c’est plus facile,
Moi je n’ai que tes infos :-1:

Voici le code que je répète 3 fois en changeant uniquement les noms des feuilles, de “IntLastRow2” afin de pouvoir identifier chaque feuille et la plage à supprimé.

La macro E s’exécute correctement mais pas les deux suivantes.

Sub E_Supprimer_donnée_F3()

'
‘macro permettant d’effacer les données issues de l’onglet “F3”

'
strActiveWk = ActiveWorkbook.Name

Sheets("F3").Select
  
  If ActiveSheet.FilterMode = True Then
ActiveSheet.ShowAllData
End If


IntLastRow2 = Workbooks(strActiveWk).Worksheets("F3").Range("A65536").End(xlUp).Row

Workbooks(strActiveWk).Worksheets("F3").Range("A2:L2" & IntLastRow2).ClearContents

Range("A2:L2").Select

Range(Selection, Selection.End(xlDown)).Select

ActiveWindow.SmallScroll Down:=-3

Selection.NumberFormat = "@"

Range("A2").Select

MsgBox ("données F3")

A__Efface_données_F1
B__Efface_données_F2

Re

Déjà là, tu recherche la dernière ligne vide d’un classeur (Workbook)

Workbooks(strActiveWk).Worksheets("F3").Range("A2:L2" & IntLastRow2).ClearContents --> :open_mouth:

Plutôt
Workbooks(strActiveWk).Worksheets("F3").Range("A2:L" & IntLastRow2).ClearContents

Ensuite les “Select” :open_mouth:

Bref, toute la macro est à revoir :smirk:

Les macros une par une fonctionnent. Le problème survient lorsque je les compile dans une seule macro.

Re,
Si tes macros fonctionnent une par une, alors ma solution en Post 2 doit fonctionner, car elle appelle le nom de la 2ème macro à la fin de la 1ère, puis la 3ème à la fin de la 2ème. :smirk:

Sinon, place ton classeur, pour voir,
Il y auras déjà de la réduction de code, car la macro présentée est un peu confuse :face_with_raised_eyebrow:

Re,

Un exemple
Titoma.xlsm (14,3 Ko)

Merci pour cet exemple!

Est-ce que le faite que les macros ne soient pas dans le même module pourrait impacter le dérouler des 3 macros?

Re,

Non, si c’est dans des modules, pas dans des feuilles (onglets)