[VBA]Extraire N° provenant du nom du bouton
lml-mike
Messages postés
487
Statut
Contributeur
-
lermite222 Messages postés 9042 Statut Contributeur -
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,
J'ai un classeur Excel dans lequel j'ai un tableau de 250 clients numérotés de 1 à 250.
Pour chaque client j'ai des boutons qui actionnent des formulaires demandant des informations sur celui ci, et les rentre dans le tableau du client. Ces boutons possèdent le même programme pour chaque client, car ils demandent des informations similaires.
Je cherche donc un moyen ou à partir du nom du bouton (je sais pas, par exemple session1, session2 etc...), je peux récupérer le numéro présent dans ce nom de bouton afin de tous leur assigner la même macro (Session). Ce programme récupererait le nom du bouton et en extrairerait le numéro pour le mettre dans la variable numclient (en l'occurence 1 à 250).
En gros, tout les boutons utiliseraient la même macro, mais avec un nom différent ils afficheraient les informations aux endroits de la feuille Excel ou sont présents les clients numérotés.
Client 1 :
[Bouton_session1] [Bouton_formulaire1]
Info A :
Info B :
Info C :
Client 2 :
[Bouton_session2] [Bouton_formulaire2]
Info A :
Info B :
Info C :
Client 3 :
[Bouton_session3] [Bouton_formulaire3]
Info A :
Info B :
Info C :
les 3 boutons de session doivent utiliser la macro "session", qui inscrit le nom du client à côté du numéro correspondant. Les boutons de formulaires utilise la macro "formulaire" qui inscrit les info A, B et C dans le bon endroit, toujours en se basant sur le numéro.
________________________
Comme j'ai 250 clients (et sûrement plus à l'avenir), cela m'éviterait d'écrire 250 macros...Pensez-vous que c'est possible ?
Merci beaucoup :-)
Mike.
J'ai un classeur Excel dans lequel j'ai un tableau de 250 clients numérotés de 1 à 250.
Pour chaque client j'ai des boutons qui actionnent des formulaires demandant des informations sur celui ci, et les rentre dans le tableau du client. Ces boutons possèdent le même programme pour chaque client, car ils demandent des informations similaires.
Je cherche donc un moyen ou à partir du nom du bouton (je sais pas, par exemple session1, session2 etc...), je peux récupérer le numéro présent dans ce nom de bouton afin de tous leur assigner la même macro (Session). Ce programme récupererait le nom du bouton et en extrairerait le numéro pour le mettre dans la variable numclient (en l'occurence 1 à 250).
En gros, tout les boutons utiliseraient la même macro, mais avec un nom différent ils afficheraient les informations aux endroits de la feuille Excel ou sont présents les clients numérotés.
Client 1 :
[Bouton_session1] [Bouton_formulaire1]
Info A :
Info B :
Info C :
Client 2 :
[Bouton_session2] [Bouton_formulaire2]
Info A :
Info B :
Info C :
Client 3 :
[Bouton_session3] [Bouton_formulaire3]
Info A :
Info B :
Info C :
les 3 boutons de session doivent utiliser la macro "session", qui inscrit le nom du client à côté du numéro correspondant. Les boutons de formulaires utilise la macro "formulaire" qui inscrit les info A, B et C dans le bon endroit, toujours en se basant sur le numéro.
________________________
Comme j'ai 250 clients (et sûrement plus à l'avenir), cela m'éviterait d'écrire 250 macros...Pensez-vous que c'est possible ?
Merci beaucoup :-)
Mike.
A voir également:
- [VBA]Extraire N° provenant du nom du bouton
- Extraire une video youtube - Guide
- Extraire le son d'une vidéo - Guide
- Le nom du champ de tableau croisé dynamique n'est pas valide ✓ - Forum Excel
- Bouton du routeur sur pc - Guide
- Extraire image pdf - Guide
8 réponses
Bonjour,
Pourquoi ne pas faire qu'un seul bouton et demander, en même temps que les autres informations, le numéro client ? faire ça avec une combobox ou une textbox ?
Pourquoi ne pas faire qu'un seul bouton et demander, en même temps que les autres informations, le numéro client ? faire ça avec une combobox ou une textbox ?
Bonjour,
Les numéros de clients ne sont pas renseignés par celui qui utilise le programme car il ne les connait pas.
Il n'y a aucun moyen ? :$
Les numéros de clients ne sont pas renseignés par celui qui utilise le programme car il ne les connait pas.
Il n'y a aucun moyen ? :$
Bonjour,
Mis à part si l'utilisateur peut entrer le nom du client et ensuite faire une recherche sur ce nom, je ne vois pas comment faire...
Mis à part si l'utilisateur peut entrer le nom du client et ensuite faire une recherche sur ce nom, je ne vois pas comment faire...
En fait il faut juste récupérer le nom du bouton cliqué dans sa propre macro...un peu comme me.name mais pour un sub, pas un userform ^^
Après je ferai une sorte de :
For I = Len(nom_boutonactuel) To 1 Step -1
If Mid(numpc, I, 1) = InStr("1234567890) Then
c = Mid(numpc, I, 1) & c
else
c = numpc
Exit For
Bon la formule est fausse, mais je peux pas encore la tester, vu que j'arrive pas a récupérer le nom du bouton actuel :S
Après je ferai une sorte de :
For I = Len(nom_boutonactuel) To 1 Step -1
If Mid(numpc, I, 1) = InStr("1234567890) Then
c = Mid(numpc, I, 1) & c
else
c = numpc
Exit For
Bon la formule est fausse, mais je peux pas encore la tester, vu que j'arrive pas a récupérer le nom du bouton actuel :S
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
« Comme j'ai 250 clients (et sûrement plus à l'avenir)... »
et tu comptes écrire du code chaque fois tu auras un nouveau client ?
Ne serait-il pas plus simple de choisir le client dans un combo ou listbox ?
Patrice
« Comme j'ai 250 clients (et sûrement plus à l'avenir)... »
et tu comptes écrire du code chaque fois tu auras un nouveau client ?
Ne serait-il pas plus simple de choisir le client dans un combo ou listbox ?
Patrice
Non, justement. J'aurais juste a assigner la même macro et à changer le nom du bouton du nouveau client par "bouton_propriété251" :-)
Comme ça, la macro recherchera le tableau 251 et inscrira ses informations :-)
De plus, le nom des clients sont inconnus à l'heure actuelle et (pardonne moi de le préciser que maintenant), peuvent être temporaires :-)
Je cherche donc sur la toile une propriété bouton_actuel_cliqué.name ^^
Comme ça, la macro recherchera le tableau 251 et inscrira ses informations :-)
De plus, le nom des clients sont inconnus à l'heure actuelle et (pardonne moi de le préciser que maintenant), peuvent être temporaires :-)
Je cherche donc sur la toile une propriété bouton_actuel_cliqué.name ^^
Aujourd'hui, tu différencie bien les boutons les uns des autre par un titre, un numéro ou une quelconque autre méthode (en général l'utilisateur choisit le bouton en fonction de ce qu'il y a inscrit dessus, à moins que ce ne soit au hasard). Tu peux donc établir une liste des boutons.
Au lieu de choisir le bouton il suffit donc de choisir dans la liste !
Au lieu de choisir le bouton il suffit donc de choisir dans la liste !
je ne sais pas si cela va répondre à ta demande
mais il est possible de récupérer le nom du bouton propriété name ainsi que le caption.
le problème dans ton cas sera ... le nombre de bouton.
En espérant que cela te fasse progresser.
A+
mais il est possible de récupérer le nom du bouton propriété name ainsi que le caption.
le problème dans ton cas sera ... le nombre de bouton.
En espérant que cela te fasse progresser.
Private Sub CommandButton1_Click()
Dim ctrl As Control
'Boucle sur la collection de contrôles
For Each ctrl In Me.Controls
If TypeOf ctrl Is MSForms.CommandButton Then ' si c'est un bouton
MsgBox ctrl.Name
End If
Next ctrl
End Sub
A+