Insérer bouton avec la meme macro sur plusieurs feuille en mm tps

Jacky1002 Messages postés 94 Date d'inscription mardi 11 mai 2010 Statut Membre Dernière intervention 3 avril 2011 - 14 mai 2010 à 16:25
Jacky1002 Messages postés 94 Date d'inscription mardi 11 mai 2010 Statut Membre Dernière intervention 3 avril 2011 - 17 mai 2010 à 12:30
bonjour je cherche à insérer un bouton auquel jaffecte une macro intitulée "commande" sur 300 feuille en meme tps (5000 par la suite)

merci pour vos réponses

Jacky

8 réponses

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
15 mai 2010 à 14:18
Bonjour,
Voici une macro qui crée un bouton sur le nombre de feuilles que l'on a dans le classeur. Sur ce bouton une macro est créée pour renvoyer à la première feuille. Ceci est à adapter suivant vos besoins:

Sub Ajouter_Bouton()
Dim NouveauBouton As OLEObject
Dim Code$, NextLine&
Dim i As Integer
 'boucle sur toutes les feuilles
 For i = 1 To 300 'Nbre de feuilles
Sheets(i).Select
 Set NouveauBouton = ActiveSheet.OLEObjects.Add("Forms.CommandButton.1")
    'création du bouton
    With NouveauBouton
        .Left = 4
        .Top = 4
        .Width = 100
        .Height = 30
        .Object.Caption = "Retour feuille 1..." 'à adapter suivant la feuille d'ouverture
    End With

'   Comment ajouter le code se rapportant au bouton...
    Code = "Sub CommandButton1_Click()" & vbCrLf
    Code = Code & "  On Error Resume Next" & vbCrLf
    Code = Code & "  Sheets(""Feuil1"").Activate" & vbCrLf
    Code = Code & "  If Err <> 0 Then" & vbCrLf
    Code = Code & "   MsgBox ""Impossible d'activer la feuille1.""" & vbCrLf
    Code = Code & "  End If" & vbCrLf
    Code = Code & "End Sub"

'   Ecriture du code dans le module de la feuille (fs)
    With ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
      NextLine = .CountOfLines + 1
      .InsertLines NextLine, Code
    End With
     Next
End Sub


Si ce code vous convient répondez par politesse contrairement au dernier message auquel je vous adressé une solution à votre demande pour lequel je n'ai eu aucune réponse:
http://www.vbfrance.com/forum/sujet-LIEN-HYPERTEXT_1436520.aspx
@+
0
Jacky1002 Messages postés 94 Date d'inscription mardi 11 mai 2010 Statut Membre Dernière intervention 3 avril 2011
16 mai 2010 à 19:09
Mille excuses d'avoir laisser un post sans réponse ca n'est pas à mon habitude et merci de votre aide.

concernant le code ci dessus je suis perdu...

je ne suis pas assez callé pour l'adapter et je suis paniquer à la vue d'eventuel message d'erreur.

Auriez vous plus simple et moins effrayant peut être.

Merci de votre aide
Jacky
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
16 mai 2010 à 22:57
Ce que je vous conseille, c'est de créer un classeur avec 10 feuilles à fin de faire un essai pour voir si le résultat vous convient.
Vous mettez dans un module ceci:

Sub creer_lien()
' boucle sur toutes les feuilles
For i = 1 To 10 'Nbre de feuilles
Worksheets(i).Select
'lien hypertexte vers l'interface
Range("A1").Select 'position du lien sur la feuille
    ActiveCell.FormulaR1C1 = "Feuil1" 'Interface
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
        "Feuil1" & "!A1", TextToDisplay:="Retour " & "Feuil1"
     Next
    
    'sélection interface
    Worksheets("Feuil1").Select
  
  'lien hypertexte vers feuilles
For i = 1 To 10 'Nbre de feuilles
    Range("A" & i).Select
    ActiveCell.FormulaR1C1 = "Feuil" & i 'Nom des feuilles
    ActiveSheet.Hyperlinks.Add Anchor:=Selection, Address:="", SubAddress:= _
        "Feuil" & i & "!A1", TextToDisplay:="Feuil" & i 'Nom des feuilles
       Next
End Sub


Ensuite dans un UserForm, un bouton avec:

Private Sub CommandButton1_Click()
creer_lien
End Sub


Bon courage
0
Jacky1002 Messages postés 94 Date d'inscription mardi 11 mai 2010 Statut Membre Dernière intervention 3 avril 2011
17 mai 2010 à 08:51
merci de ton aide mais le code ajoute des lien hypertext je souhaiterais ajouter des bouton avec une macro.

Jacky
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
17 mai 2010 à 11:22
Essayez avec un nouveau classeur avec 10 feuilles et mettez ce code dans un module:

Sub Ajouter_Bouton()
Dim NouveauBouton As OLEObject
Dim Code$, NextLine&
Dim i As Integer
 'boucle sur toutes les feuilles
 For i = 1 To 10 'Nbre de feuilles
Sheets(i).Select
 Set NouveauBouton = ActiveSheet.OLEObjects.Add("Forms.CommandButton.1")
    'création du bouton
    With NouveauBouton
        .Left = 4
        .Top = 4
        .Width = 100
        .Height = 30
        .Object.Caption = "Retour feuille 1..." 'à adapter suivant la feuille d'ouverture
    End With

'   Comment ajouter le code se rapportant au bouton...
   Code = "Sub CommandButton1_Click()" & vbCrLf
    Code = Code & "message" & vbCrLf
    Code = Code & "End Sub"

'   Ecriture du code dans le module de la feuille (fs)
    With ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
      NextLine = .CountOfLines + 1
      .InsertLines NextLine, Code
    End With
     Next
End Sub

[code=vb]Sub message()
MsgBox "Bonjour"
End Sub


Vous avez une macro: message qui va se déclencher à chaque clique du bouton, il vous suffit de mettre votre macro à la place.
Je pense que cela est plus clair.Si vous arrivez avec un classeur de 10 feuilles, on pourra s'attaquer à votre projet.
@+ Le Pivert
0
Jacky1002 Messages postés 94 Date d'inscription mardi 11 mai 2010 Statut Membre Dernière intervention 3 avril 2011
17 mai 2010 à 11:35
ca fonctionne sur une seul page (le feuille active)

de plus jen'arrive pas a le supprimer une fois placé

merci de votre aide
Jacky
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
17 mai 2010 à 11:57
Je viens de faire l'essai avec un classeur de 3 feilles et cela fonstionne

mettre dans un module:

Sub Ajouter_Bouton()
Dim NouveauBouton As OLEObject
Dim Code$, NextLine&
Dim i As Integer
 'boucle sur toutes les feuilles
 For i = 2 To 3 'Nbre de feuilles demarre à la 2ème feuille
Sheets(i).Select
 Set NouveauBouton = ActiveSheet.OLEObjects.Add("Forms.CommandButton.1")
    'création du bouton
    With NouveauBouton
        .Left = 4
        .Top = 4
        .Width = 100
        .Height = 30
        .Object.Caption = "Message" 'à adapter suivant la feuille d'ouverture
    End With

'   Comment ajouter le code se rapportant au bouton...
   Code = "Sub CommandButton1_Click()" & vbCrLf
    Code = Code & "message" & vbCrLf
    Code = Code & "End Sub"

'   Ecriture du code dans le module de la feuille (fs)
    With ThisWorkbook.VBProject.VBComponents(ActiveSheet.Name).CodeModule
      NextLine = .CountOfLines + 1
      .InsertLines NextLine, Code
    End With
     Next
End Sub

Sub message()
MsgBox "Bonjour"
End Sub



Dans un UserForm un bouton avec

Private Sub CommandButton1_Click()
Ajouter_Bouton
End Sub
0
Jacky1002 Messages postés 94 Date d'inscription mardi 11 mai 2010 Statut Membre Dernière intervention 3 avril 2011
17 mai 2010 à 12:30
je n'y arrive pas moi
dslé
je laisse tomber pour le moment de tout façon ma macro à mettre sur ces boutton nest pas au point peut être pourra tu maider je lance un nouveau sujet

merci de ton aide
Jacky
0
Rejoignez-nous