Plusieur CommandButton avec meme code

bonjour

voila jai un userform qui a plusieurs Commandbutton , je souhaite recuperer la valeur du bouton cliqué et rechercher sur une feuille la ligne contenant cette valeur

21commandbutton.zip (17.96 Ko)

merci d'avance

Bonjour,

En utilisant un module de Classe > gracieuseté de thev ...

Le msgbox donne l'adresse et la cellule est sélectionnée (.select) << attention, il faut éviter les .select > celui-ci n'est là qu'à des fins de démonstrateur > il sera à supprimer ...

ric

18commandbuttonv2.zip (24.27 Ko)

Bonjour cisco, bonjour ric

une autre solution est d'affecter la même macro à tous les boutons et exploiter le contenu du bouton par

ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text

Bonjour à tous,

@Steelson > les 68 boutons de cisco38490 > sont sur un Userform ...

ActiveSheet.Shapes(Application.Caller).TextFrame.Characters.Text fonctionne-t-il sur un Userform ?

ric

@ ric : tu as raison, dans ce cas il faut lire la caption

CommandButton1.Caption

donc par exemple :

Private Sub CommandButton1_Click()
    Call test(Me.ActiveControl.Caption)
End Sub

Sub test(nom)
    MsgBox nom
End Sub

mais le module de classe peut en effet être plus simple dans ce cas.

Bonsoir …

Le même nom pour 2 données différentes complique la programmation.

Un autre exemple avec un Module de classe et une syntaxe classique :

capture1

Je me suis amusé à donner, dans le fichier joint, un exemple (sans plus) de saisies de dates avec le formulaire nommé Quand. Il y a aussi quelques pistes pour l’utilisation de la propriété Tag qui sert à stocker des constantes sans les déclarer.

Nota : étude rapide donc pas testée à fond et pouvant être améliorée, voire corrigée en cas d’erreurs.

merci ordonc

je garde cela pour plus tard

Autre proposition, ... quand je vois la richesse ou la complexité de l'userform, j'imagine le temps qu'il a fallu pour le mettre en place. Heureusement, côté programmation le module de classe simplifie certes.

Je préfère dans ces cas là construire un pseudo-usf à base de shapes et compatible mac car sans contrôles activeX.

Un exemple ici : https://www.excel-pratique.com/fr/telechargements/calendriers/saisie-date-excel-no458 qui inclut cette sub que j'avais créée à cette occasion :

Sub dessiner(x%, y%, l%, h%, nom$, texte$, police As Long, fond As Long, action$, Optional ligne = True)
    With ActiveSheet.Shapes.AddShape(msoShapeRoundedRectangle, x, y, l, h)
        .Name = prefixe & nom
        .TextFrame.HorizontalAlignment = xlHAlignCenter
        .TextFrame.VerticalAlignment = xlVAlignCenter
        .TextFrame.Characters.Text = texte
        .TextFrame.Characters.Font.Size = 9
        .Fill.ForeColor.RGB = fond
        .TextFrame.Characters.Font.Color = police
        .OnAction = action
        .Line.Visible = ligne
    End With
End Sub
.OnAction

permettant de définir la macro associée au "bouton" (rectangle)

Re

Merci pour le retour cisco.. « je garde cela pour plus tard » seulement pour l’idée j’espère !

Salut Steelson, j’avais déjà apprécié ton calendrier ; j’en ai plusieurs personnels mais là (déjà dit), je me suis amusé.

Comme Toi, j’aime bien présenter de nouvelles idées tout en évitant une profusion de boutons qui laisse prévoir des complications .

Ici, c’est la défaillance de mon fichier qui ne recouvre pas tous les cas présentés donc à ne pas à utiliser pour la demande initiale .

Le seul intérêt que je vois dans une multitude de contrôles dans un formulaire est le visuel complet car la programmation doit englober pleins de paramètres induits.

D’où une autre proposition pour bien distinguer les 2 types de saisie sans aucun des 68 boutons mais avec Tableaux et Module de Classe, cependant n’ayant pas d’informations sur le second formulaire, je l’ai occulté.

Salut ric, merci pour ta proposition que j’ai tenté d’utiliser mais pas efficacement dans le traitement de tous les cas !

Rechercher des sujets similaires à "commandbutton meme code"