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

XL 2010 Macro pour changement nom de boutons (formulaire) et changement de noms des onglets

Collins

XLDnaute Occasionnel
Bonjours à tous

Je suis débutant en VBA

J'ai un classeur avec 3 feuilles. Sur 2 dernières feuilles j'ai des bouton de formulaire.

Sur ces 2 dernières feuilles : je réussi à faire changer le nom des boutons et de changer le nom des onglets automatiquement mais en écrivant sur une cellule de chaque feuille (par ex : A1)
Pour éviter d'écrire manuellement, j'ai fais une macro par feuille qui écrit un mot dans les A1 et je l'incorpore dans une macro : Private Sub Workbook_BeforeClose(Cancel As Boolean)

Mais mon problème je ne sais pas mettre 2 macros dans ce même private. car la 1ère macro me corrige le nom de l'onglet de la 1ère feuille et de la 2ème feuille et comme la macro de cette 2ème feuille. La macro étant fonction du nom de l'onglet je ne sais comment faire.

Je vous remercie
 

danielco

XLDnaute Accro
Désolé, je ne comprends toujours pas. Ne te réfère pas à ce qui ne fonctionne pas. Tu veux changer le nom des feuilles à la fermeture ? Où prend-t-on les nouveaux noms ? Peux-t-on supprimer les boutons ?

Daniel
 
Dernière édition:

Collins

XLDnaute Occasionnel
C'est moi qui suis désolé pour mes explications.
Ce que je veux c'est qu'en fermant le fichier les noms des boutons et aussi les noms des feuilles se changent par rapport aux noms inscrit dans la 1 ère feuille (table)
Oui tu peux tout supprimer ce qui ne va pas.
C'est simplement un fichier ou j'arrive à changer en écrivant manuellement une lettre dans A1 des 2 feuilles mais je ne voudrai pas écrire mais que l'opération se fasse par une macro en fermant.
 

danielco

XLDnaute Accro
Supprime toutes les macros existantes et mets celle-ci dans ThisWorkbook :

VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Dim I As Long, J As Long
  For I = 1 To 3
    Sheets(I + 2).Name = Sheets("Table").[A1].Offset(I - 1)
  Next I
  For I = 2 To 3
    For J = 1 To 3
      Sheets(I).DrawingObjects(J).Caption = Sheets("Table").[A1].Offset(J - 1)
    Next J
  Next I
  ThisWorkbook.Save
End Sub

Daniel
 

Collins

XLDnaute Occasionnel
Voila j'ai fait l'essai
Mais j'ai surement oublié de dire qu'il était possible de changer les noms dans A1, A2, A3 de la table. Et quand je l'ai fait j'ai été bloqué à :
Sheets(I + 2).Name = Sheets("Table").[A1].Offset(I - 1)
 

Collins

XLDnaute Occasionnel
Effectivement ça marche impeccable
Je te remercie sincèrement.
Je regarderai mieux mon fichier mais il me semble les avoir enlevés mais je doute de moi quand même.
Je pense plus tard que j'aurai une feuille supplémentaire à rajouter à mon fichier (aussi avec des boutons), qu'aurai-je à modifier par rapport à ta macro.
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…