Besoin d'aide sur VBA

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

angoul

XLDnaute Impliqué
Bonsoir,
grace a vos conseil et les informations j'ai reussi a creer un petit fichier excel
qui me creer des boutons et des feuilles par rapport a une feuille de reference.

Par contre j'aimerai trouver comment lier chaque bouton a la feuille qui lui correspond.

quelqu'un peut 'il regarder a mon code et me dire quoi faire?

Private Sub CommandButton1_Click()
Dim i%, hauteur&
Dim ctl As Shape
'première boucle pour créer les boutons
gauche = 25
For c = 0 To 5
hauteur = 0 'hauteur dans la page du premier bouton
For i = 3 To 22
With Sheets("Menu")
.Select
hauteur = hauteur + 22 'espace entre les boutons
ActiveSheet.OLEObjects.Add ClassType:="Forms.CommandButton.1", Left:=gauche, Top:=hauteur, Width:=108, Height:=20
End With
Next i
gauche = gauche + 115
Next c

' seconde boucle, on boucle sur tous les boutons de la feuille Menu pour les renommer
i = 3 'correspond au information sur la feuille categorie
For Each ctl In Sheets("Menu").Shapes
If Left(ctl.Name, 13) = "CommandButton" Then
ctl.Select
ctl.Name = Sheets("categorie").Cells(i, 1).Value
Selection.Object.Caption = Sheets("categorie").Cells(i, 1).Value
i = i + 1
End If
Next ctl
End Sub

'cree les feuilles et les renommes par rapport a la feuille categorie
Private Sub CommandButton2_Click()
Sub CopyFeuille()
With Sheets("categorie")
For i = 1 To .Range("A5000").End(xlUp).Row
Sheets("Feuille competition").Copy after:=Sheets(Sheets.Count)
ActiveSheet.Name = .Cells(i, 1)
Next
End With

End Sub

Une autre question difference peut ton recuperer le nom de chaque onglet et le copier dans chaque feuille qui lui correspond dans la cellule D4

merci de votre aide
 
Re : Besoin d'aide sur VBA

Bonsoir,
A mon sens, il serait plus simple de passer par un module classe, et encore plus simple de mettre des liens hypertextes en lieu et place des boutons
A+
kjin

Bonsoir à tous,

Tout-à-fait d'accord avec kjin, pour le premier point.

Pour la seconde question, une façon de faire :

Code:
Sheets(NomFeuille).Range("D4") = Sheets(NomFeuille).Name

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

Discussions similaires

  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
258
Réponses
4
Affichages
365
Réponses
5
Affichages
60
Retour