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
Sauf que j'ai mis quatre boutons pour quatre feuilles à renommer (si ce n'est pas le cas, dis-le moi) :

VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Dim I As Long, J As Long
  'boucle sur les feuilles 3, 4, 5 et 6
  For I = 1 To 4
    'Les feuilles sont renommées d'après les cellules Table!A1:A4
    Sheets(I + 2).Name = Sheets("Table").[A1].Offset(I - 1)
  Next I
  'Boucle sur les feuilles 2, 2 et 4
  For I = 2 To 4
    'Boucle sur les boutons des feuilles
    For J = 1 To 4
      'les boutons sont renommés d'après les cellules Table!A1:A4
      Sheets(I).DrawingObjects(J).Caption = Sheets("Table").[A1].Offset(J - 1)
    Next J
  Next I
  'Enregistrement du classeur
  ThisWorkbook.Save
End Sub

Daniel
 

Collins

XLDnaute Occasionnel
Bonjour Daniel
Non ça ira avec 4 boutons par feuilles. Dès que j'aurai un moment je ferai l'essai sur le fichier exemple en remplaçant et mettant ce code.
Il me semble et tu me diras : sur le commentaire : ' Boucle sur les feuilles 2, 2 et 4 je corrige à 2, 3 et 4.
Je suis entièrement satisfait. tu es super gentil de m'avoir accordé tant de temps. peut-être aurai-je encore besoin de tes conseils un jour car je me familiarise un petit peu avec le VBA mais c'est quand même compliqué à tout comprendre en regardant les codes. je fais mes petits fichiers et j'essaie de les automatiser le plus possible et puis c'est instructif.
Encore merci. @+ sur ce forum.
 

danielco

XLDnaute Accro
Sous peine d'écrire un bouquin, je ne peux pas tout écrire ici. Si tu as téléchargé le didacticiel dont je t'ai fourni le lien, il faut que tu assimiles bien le chapitre VI sur l'éditeur VBA. Prend le temps, c'est capital.
Est-ce que le nom des onglets FF et GG change ?

Daniel
 

danielco

XLDnaute Accro
Bonjour,

J'ai déplacé la feuille P en dernier, car, là où elle était, elle compliquait la macro. Si ce n'est pas possible, je modifierai la macro. Voici le code :

VB:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
  Dim I As Long, J As Long
  'boucle sur les feuilles 7 premières feuilles
  For I = 1 To 7
    'Les feuilles sont renommées d'après les cellules Table!A1:A7
    'pour I = 1, on modifies le nom de la première feuille aec le nom d Table!A1 avec
    'un décalage de 0 (I- 1)
    'on ne modifie pas le nom de la feuille d'indice 5 (EE)
    If I <> 5 Then
      Sheets(I).Name = Sheets("Table").[A1].Offset(I - 1)
    End If
  Next I
  'Boucle sur les feuilles 6 et 7
  For I = 6 To 7
    'Boucle sur les boutons des feuilles
    For J = 1 To 4
      'les boutons sont renommés d'après les cellules Table!A1:A4
      'les boutons ("drawingobject" = forme, d'une manière générale)
      'pour le premier bouton, le décalage (Offset) est de 0, c'est à dire aucun décalage
      Sheets(I).DrawingObjects(J).Object.Caption = Sheets("Table").[A1].Offset(J - 1)
    Next J
  Next I
  'Enregistrement du classeur
  ThisWorkbook.Save
End Sub

Daniel
 

danielco

XLDnaute Accro
Si elle est masquée :

Annotation 2019-09-19 191811.png


Daniel
 

Collins

XLDnaute Occasionnel
C'est super ça marche à merveille. Ce coup ci je vais pouvoir l'adapter à mon fichier réel qui a la même structure.
Je te remercie beaucoup tu as été vraiment sympa.
Au plaisir de te lire ici. Et comme je fais évoluer mes fichiers à petits pas, surement qu'un jour j'aurai besoin d'aide.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin