Besoin d'aide sur VBA

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
 

Papou-net

XLDnaute Barbatruc
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.
 

Discussions similaires

Réponses
29
Affichages
959
Réponses
11
Affichages
298

Statistiques des forums

Discussions
312 327
Messages
2 087 314
Membres
103 515
dernier inscrit
Cherbil12345