Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

affecter 2 macros à 1 bouton

  • Initiateur de la discussion Initiateur de la discussion cel1205
  • 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 !

C

cel1205

Guest
Bonjour,

Je viens de créer un fichier avec macro. Elles fonctionnent toutes. Jai créé un bouton sur lequel est affecté une macro, le problème c'est que je souhaiterais en affecter une deuxième sur le même bouton, mais je n'y arrive pas.

Pourriez vous m'aider.

Je joins le fichier pour plus de compréhension.
Sur le bouton je voudrais affecter les macro archivage et macro2.

Merci d'avance.
 

Pièces jointes

Re : affecter 2 macros à 1 bouton

Bonjour

as tu essayé de faire un vrai bouton et pas un dessin?
tu obtiendrais un évènement sous la feuille en question et tu pourrais y lancer autant de macro que tu veux

tu pourrais aussi passer par une macro intermédiaire (avec ton dessin) qui lancerai les autres macro....
 
Re : affecter 2 macros à 1 bouton

Bonjour.

On ne peut affecter qu'une seule macro à un bouton. Tu as affecté la macro "Archivage" à ton bouton. Si tu veux qu'il déclenche aussi la macro "renome", crée la macro "Archiver_Renommer" et affecte la à ton bouton en lieu et place de la macro "Archivage". Dans cette macro "globale", appelle les macros "de détail" dans l'ordre où tu veux qu'elles soient exécutées.

Code:
Sub Archiver_Renommer()
    Archivage
    renome
End Sub

PS : dans une feuille de calcul, on peut créer un objet texte ou dessin auquel on peut affecter une macro et une seule. Mieux : on peut créer un bouton de commande ("CommanButton") avec la "Boite à outils contrôles" (afficher la barre d'outils "Visual Basic", cliquer sur le bouton "mode création" puis sur le bouton "Boite à outils ...") mais lui aussi ne pourra avoir qu'une macro et une seule (clic droit sur le bouton, choix "Visualiser le code") qu'on pourra tester après avoir désactivé le mode création.
 
Dernière édition:
Re : affecter 2 macros à 1 bouton

bonjour,

si, çà marche !!!

dans macro2, tu efface les cellules C9 à C41.

je suppose que ce sont celles de la 1ère feuille ?

alors que là, tu effaces celles de la feuille destination.

essaies en mettant des données dans la colonne C de la feuille destination, et tu verras

qu'elles disparaitront.

donc, il faut que tu indiques dans quelle feuille il faut supprimer.

j'avais testé la macro en pas à pas, et çà marchait, par contre, je n'avais pas vérifié si

les macros faisaient leur travail.


@+
 
Re : affecter 2 macros à 1 bouton

Bonjour à tous,
Une proposition en une seule macro:
Code:
[COLOR=blue]Sub[/COLOR] Archivage()
[COLOR=blue]Dim[/COLOR] Cible [COLOR=blue]As String[/COLOR]
Application.ScreenUpdating = 0
Cible = "Historique " & ActiveSheet.Range("B4")
ActiveSheet.Range("C9:C41").Copy
[COLOR=blue]With[/COLOR] Sheets(Cible).Range("C9:C41")
    .PasteSpecial Paste:=xlPasteValues
    .Interior.ColorIndex = xlNone
    .Borders.LineStyle = xlNone
    .EntireColumn.Insert
    .ColumnWidth = 12
[COLOR=blue]End With[/COLOR]
[COLOR=blue]With[/COLOR] ActiveSheet
    .Range("C9:C41").ClearContents
    .Range("C9").Select [COLOR=#008000]' pas indispensable[/COLOR]
[COLOR=blue]End With[/COLOR]
MsgBox "Exportation terminée"[COLOR=green] ' pas indispensable[/COLOR]
Application.ScreenUpdating = 1 [COLOR=#008000]' ne pas oublier de réactiver l'écran[/COLOR]
[COLOR=blue]End Sub[/COLOR]
Cordialement
 
Re : affecter 2 macros à 1 bouton

Re
Si j'ai bien compris, ceci devrai suffire:
Code:
[COLOR=blue]Sub[/COLOR] Archivage()
[COLOR=blue]Dim[/COLOR] Cible [COLOR=blue]As String[/COLOR]
[COLOR=blue]Dim[/COLOR] Col [COLOR=blue]As Long[/COLOR]
Cible = "Historique " & Range("B4")
[COLOR=blue]With[/COLOR] Sheets(Cible)
   [COLOR=green]'Trouver la première colonne vide en ligne 9[/COLOR]
    Col = .Cells(9, Application.Columns.Count).End(xlToLeft).Column + 1
   [COLOR=green]'Si la colonne est avant la D alors on prend la D[/COLOR]
    [COLOR=blue]If[/COLOR] Col < 4 [COLOR=blue]Then[/COLOR] Col = 4
   [COLOR=green]'On met les valeurs dans la colonne trouvée[/COLOR]
    .Range(.Cells(9, Col), .Cells(41, Col)) = Range("C9:C41").Value
[COLOR=blue]End With[/COLOR]
Range("C9:C41").ClearContents
[COLOR=blue]End Sub[/COLOR]
Cordialement
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
3
Affichages
471
T
  • Résolu(e)
Microsoft 365 pb effacement macro
Réponses
8
Affichages
795
Themax
T
Réponses
4
Affichages
330
Réponses
3
Affichages
486
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…