Microsoft 365 plusieurs command button qui inscrivent au fil de l'eau

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

gilles37

XLDnaute Occasionnel
Bonjour le forumđŸ–ïž

J'ai plusieurs commandbutton disons 10, je souhaiterais qu'a chaque fois l'un de ces boutons est cliquĂ© que cela enregistre dans un sheet2 le nom du commanbutton cliquĂ© date et heure. si un second, l'est, meme chose sur la feuille 2 inscriptions a la suite du prĂ©cĂ©dent.....je bloqueđŸ€”

merci pour votre aide et bon week end a toutes et tous
 
Un exemple repris dans mes archives
Un classeur avec deux feuilles
Sur la feuille 1, N CommandButton

Dans un module de classe nommé: Classe1
VB:
Public WithEvents ButtonGroup As CommandButton
Private Sub ButtonGroup_Click()
Feuil2.Cells(Rows.Count, 1).End(3)(2) = ButtonGroup.Name & "|" & Date & "-" & Time
End Sub
Dans un module standard
VB:
Dim Buttons() As New Classe1
Sub Initier_Classe()
Dim Sh As Worksheet, Obj As OLEObject, ButtonCount As Integer
    Set Sh = Sheets(1)
    Erase Buttons
        For Each Obj In Sh.OLEObjects
            If TypeName(Obj.Object) = "CommandButton" Then
                ButtonCount = ButtonCount + 1
                ReDim Preserve Buttons(1 To ButtonCount)
                Set Buttons(ButtonCount) = New Classe1
                Set Buttons(ButtonCount).ButtonGroup = Obj.Object
            End If
     Next Obj
End Sub
Lancer la procédure Initier_Classe avant de commencer le test
Puis cliquer sur les boutons présents sur la feuille 1
Ensuite aller voir le résultat sur la feuille 2

PS: Test OK sur mon PC.
 
Bonjour Gilles, Staple,
Si les boutons sont dans la feuille, alors un ex possible en PJ avec :
VB:
Sub Enregistre()
    With Sheets("Feuil2")
        L = 1 + .Range("A65500").End(xlUp).Row
        .Cells(L, 1) = Application.Caller
        .Cells(L, 2) = Sheets("Feuil1").Shapes(Application.Caller).TextFrame2.TextRange.Text
        .Cells(L, 3) = Now
    End With
End Sub
Sont enregistrés en feuille 2 le nom du bouton, le texte qu'il contient et la datation.
 

PiĂšces jointes

Bonjour sylvanu

J'avais pensé à Application.Caller
Mais Ă  chaque fois que tu ajoutes un bouton, il faut lui affecter la macro Enregistre, non ?

PS: Tes boutons ne sont pas des pas CommandButton mais des Shapes
Le message#1 parlant de CommandButton, j'ai fait dans le CommandButton 😉
 
Bonjour Staple,
1- On peut rajouter simplement dans Workbook_Open :
VB:
Private Sub Workbook_Open()
For Each S In ActiveSheet.Shapes
    S.Select
    Selection.OnAction = "EnregistreInfo"
Next
End Sub
2- Je n'utilise jamais de commandbuttons, c'est "moche" et peu convivial. Je prĂ©fĂšre les "formes" on peut tout faire, de toutes forme, mĂȘme y mettre des images, ... voir PJ
 

PiĂšces jointes

Re

@sylvanu
On peut aussi mettre des images dans un CommandButton 😉

PS: J'aime bien les classeurs moches 😉
(Sans cochoncetés: juste des datas, pas de fioritures)

Histoire de te faire plaisir, je vais me forcer 😉
(tout en me faisant aussi plaisir 😉)
VB:
Sub Enregistre_A_ma_sauce()
With Application
Feuil2.Cells(Rows.Count, 1).End(3)(2).Resize(, 3) = Array(.Caller, Sheets("Feuil1").Shapes(.Caller).TextFrame2.TextRange.Text, Now)
End With
End Sub
PS: Ca a l'air de fonctionner. A voir dans la vraie vie.
 
Re

Bah, tu vas dans VBE, et tu éxécutes la macro

Ou en reprenant l'idée de Sylvanu, tu l'appelles dans Workbook_Open
Comme ceci
VB:
Private Sub Workbook_Open()
Call Initier_Classe
End Sub
NB: Ce code est Ă  mettre dans ThisWorkBook
(pas dans un module standard)
 
Re

@gilles37
Donc tu ne dis dans ton message#1 que tu utilises des CommandButton
mais des formes automatiques dĂ©guisĂ©es en CommandButton 😉

@sylvanu
Une personne ne maitrisant pas Excel ne devrait pas devoir Ă  faire ALT+F11
Une personne qui découvre les joies du tableur devrait d'abord exploiter toutes les fonctionnalités natives d'Excel (surtout avec les derniÚres versions)
Une personne qui travaille avec Excel pour des tĂąches bureautiques devrait ne pas avoir besoin de VBA.

En mĂȘme temps, comme dirait Manu, personne n'empĂȘchera personne d'utiliser Excel comme il le souhaite 😉
(Mais cela me remue en dedans de moi, quand je vois comment PQ, TCD, formules, filtre auto et autres chouettes choses sont remisĂ©es aux oubliettes au profit de VBA) 😉

PS: C'est juste une opinion personnelle, pas une attaque ad nominem envers qui que soit.
(A part peut-ĂȘtre une lĂ©gĂšre ironie envers Manu 😉)
 
- 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
Retour