Sur un formulaire j'ai un certain nombre de boutons correspondant chacun à
une lettre de l'alphabet.
Dans Excel, j'ai réussi à gérer cela avec un module de classe ce qui réduit
énormément le code.
Comment faire cela avec VB ?
Mes boutons s'intitule CmdA, cmdB, cmdC, etc...
-----------------------------------------------------------
Si cela peut vous aider voici le code utilisé avec Excel
Private Sub UserForm_Initialize()
Dim Nb As Integer, Ctrl As Control
Nb = 0
For Each Ctrl In frmTelephone.Controls
If TypeName(Ctrl) = "CommandButton" Then
If Ctrl.Name <> "CmdFermer" Then
Nb = Nb + 1
ReDim Preserve Boutons(1 To Nb)
Set Boutons(Nb).GroupeBouton = Ctrl
End If
End If
Ens Sub
Le module de classe
Public WithEvents GroupeBouton As Msforms.CommandButton
Private Sub GroupeBouton_Click()
' Récupère la lettre correspondant au bouton cliqué
Critere = GroupeBouton.Caption & "*"
Msgbox Critere
End Sub
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
jc2nantes
tu appelles tes boutons :
cmd(65), cmd(66), cmd(67)... jusqu'à cmd(90)
pour récuperer, sur l'évenement click de tes boutons (il est commun puisqu'il s'agit d'un groupe d'objet)
critere = chr(index)
et oui l'index correspond à une valeur ascii...
jc
"RENAUD Eric" a écrit dans le message de news:
Bonjour,
Sur un formulaire j'ai un certain nombre de boutons correspondant chacun à une lettre de l'alphabet. Dans Excel, j'ai réussi à gérer cela avec un module de classe ce qui
réduit
énormément le code.
Comment faire cela avec VB ?
Mes boutons s'intitule CmdA, cmdB, cmdC, etc... ----------------------------------------------------------- Si cela peut vous aider voici le code utilisé avec Excel
Private Sub UserForm_Initialize() Dim Nb As Integer, Ctrl As Control Nb = 0 For Each Ctrl In frmTelephone.Controls If TypeName(Ctrl) = "CommandButton" Then If Ctrl.Name <> "CmdFermer" Then Nb = Nb + 1 ReDim Preserve Boutons(1 To Nb) Set Boutons(Nb).GroupeBouton = Ctrl End If End If Ens Sub
Le module de classe Public WithEvents GroupeBouton As Msforms.CommandButton Private Sub GroupeBouton_Click() ' Récupère la lettre correspondant au bouton cliqué Critere = GroupeBouton.Caption & "*" Msgbox Critere End Sub
tu appelles tes boutons :
cmd(65), cmd(66), cmd(67)... jusqu'à cmd(90)
pour récuperer, sur l'évenement click de tes boutons (il est commun
puisqu'il s'agit d'un groupe d'objet)
critere = chr(index)
et oui l'index correspond à une valeur ascii...
jc
"RENAUD Eric" <erenaud@fr.fm> a écrit dans le message de news:
eGex3GJMFHA.568@TK2MSFTNGP09.phx.gbl...
Bonjour,
Sur un formulaire j'ai un certain nombre de boutons correspondant chacun à
une lettre de l'alphabet.
Dans Excel, j'ai réussi à gérer cela avec un module de classe ce qui
réduit
énormément le code.
Comment faire cela avec VB ?
Mes boutons s'intitule CmdA, cmdB, cmdC, etc...
-----------------------------------------------------------
Si cela peut vous aider voici le code utilisé avec Excel
Private Sub UserForm_Initialize()
Dim Nb As Integer, Ctrl As Control
Nb = 0
For Each Ctrl In frmTelephone.Controls
If TypeName(Ctrl) = "CommandButton" Then
If Ctrl.Name <> "CmdFermer" Then
Nb = Nb + 1
ReDim Preserve Boutons(1 To Nb)
Set Boutons(Nb).GroupeBouton = Ctrl
End If
End If
Ens Sub
Le module de classe
Public WithEvents GroupeBouton As Msforms.CommandButton
Private Sub GroupeBouton_Click()
' Récupère la lettre correspondant au bouton cliqué
Critere = GroupeBouton.Caption & "*"
Msgbox Critere
End Sub
pour récuperer, sur l'évenement click de tes boutons (il est commun puisqu'il s'agit d'un groupe d'objet)
critere = chr(index)
et oui l'index correspond à une valeur ascii...
jc
"RENAUD Eric" a écrit dans le message de news:
Bonjour,
Sur un formulaire j'ai un certain nombre de boutons correspondant chacun à une lettre de l'alphabet. Dans Excel, j'ai réussi à gérer cela avec un module de classe ce qui
réduit
énormément le code.
Comment faire cela avec VB ?
Mes boutons s'intitule CmdA, cmdB, cmdC, etc... ----------------------------------------------------------- Si cela peut vous aider voici le code utilisé avec Excel
Private Sub UserForm_Initialize() Dim Nb As Integer, Ctrl As Control Nb = 0 For Each Ctrl In frmTelephone.Controls If TypeName(Ctrl) = "CommandButton" Then If Ctrl.Name <> "CmdFermer" Then Nb = Nb + 1 ReDim Preserve Boutons(1 To Nb) Set Boutons(Nb).GroupeBouton = Ctrl End If End If Ens Sub
Le module de classe Public WithEvents GroupeBouton As Msforms.CommandButton Private Sub GroupeBouton_Click() ' Récupère la lettre correspondant au bouton cliqué Critere = GroupeBouton.Caption & "*" Msgbox Critere End Sub
Patrice Henrio
On peut aussi passer en revue la collection des controles de la feuille et traiter ceux de caption Cmd?
For each control in form.controls If left$(control.Caption;3)="Cmd" then next
C'est un peu rapide, il faut vérifier control est bien un commandButton, ou au moins que la propriété caption existe.
"jc2nantes" a écrit dans le message de news: 4242f2dd$0$1556$
tu appelles tes boutons :
cmd(65), cmd(66), cmd(67)... jusqu'à cmd(90)
pour récuperer, sur l'évenement click de tes boutons (il est commun puisqu'il s'agit d'un groupe d'objet)
critere = chr(index)
et oui l'index correspond à une valeur ascii...
jc
"RENAUD Eric" a écrit dans le message de news:
Bonjour,
Sur un formulaire j'ai un certain nombre de boutons correspondant chacun à une lettre de l'alphabet. Dans Excel, j'ai réussi à gérer cela avec un module de classe ce qui
réduit
énormément le code.
Comment faire cela avec VB ?
Mes boutons s'intitule CmdA, cmdB, cmdC, etc... ----------------------------------------------------------- Si cela peut vous aider voici le code utilisé avec Excel
Private Sub UserForm_Initialize() Dim Nb As Integer, Ctrl As Control Nb = 0 For Each Ctrl In frmTelephone.Controls If TypeName(Ctrl) = "CommandButton" Then If Ctrl.Name <> "CmdFermer" Then Nb = Nb + 1 ReDim Preserve Boutons(1 To Nb) Set Boutons(Nb).GroupeBouton = Ctrl End If End If Ens Sub
Le module de classe Public WithEvents GroupeBouton As Msforms.CommandButton Private Sub GroupeBouton_Click() ' Récupère la lettre correspondant au bouton cliqué Critere = GroupeBouton.Caption & "*" Msgbox Critere End Sub
On peut aussi passer en revue la collection des controles de la feuille et
traiter ceux de caption Cmd?
For each control in form.controls
If left$(control.Caption;3)="Cmd" then
next
C'est un peu rapide, il faut vérifier control est bien un commandButton, ou
au moins que la propriété caption existe.
"jc2nantes" <jcg44NOSPAM@free.fr> a écrit dans le message de news:
4242f2dd$0$1556$636a15ce@news.free.fr...
tu appelles tes boutons :
cmd(65), cmd(66), cmd(67)... jusqu'à cmd(90)
pour récuperer, sur l'évenement click de tes boutons (il est commun
puisqu'il s'agit d'un groupe d'objet)
critere = chr(index)
et oui l'index correspond à une valeur ascii...
jc
"RENAUD Eric" <erenaud@fr.fm> a écrit dans le message de news:
eGex3GJMFHA.568@TK2MSFTNGP09.phx.gbl...
Bonjour,
Sur un formulaire j'ai un certain nombre de boutons correspondant chacun
à
une lettre de l'alphabet.
Dans Excel, j'ai réussi à gérer cela avec un module de classe ce qui
réduit
énormément le code.
Comment faire cela avec VB ?
Mes boutons s'intitule CmdA, cmdB, cmdC, etc...
-----------------------------------------------------------
Si cela peut vous aider voici le code utilisé avec Excel
Private Sub UserForm_Initialize()
Dim Nb As Integer, Ctrl As Control
Nb = 0
For Each Ctrl In frmTelephone.Controls
If TypeName(Ctrl) = "CommandButton" Then
If Ctrl.Name <> "CmdFermer" Then
Nb = Nb + 1
ReDim Preserve Boutons(1 To Nb)
Set Boutons(Nb).GroupeBouton = Ctrl
End If
End If
Ens Sub
Le module de classe
Public WithEvents GroupeBouton As Msforms.CommandButton
Private Sub GroupeBouton_Click()
' Récupère la lettre correspondant au bouton cliqué
Critere = GroupeBouton.Caption & "*"
Msgbox Critere
End Sub
On peut aussi passer en revue la collection des controles de la feuille et traiter ceux de caption Cmd?
For each control in form.controls If left$(control.Caption;3)="Cmd" then next
C'est un peu rapide, il faut vérifier control est bien un commandButton, ou au moins que la propriété caption existe.
"jc2nantes" a écrit dans le message de news: 4242f2dd$0$1556$
tu appelles tes boutons :
cmd(65), cmd(66), cmd(67)... jusqu'à cmd(90)
pour récuperer, sur l'évenement click de tes boutons (il est commun puisqu'il s'agit d'un groupe d'objet)
critere = chr(index)
et oui l'index correspond à une valeur ascii...
jc
"RENAUD Eric" a écrit dans le message de news:
Bonjour,
Sur un formulaire j'ai un certain nombre de boutons correspondant chacun à une lettre de l'alphabet. Dans Excel, j'ai réussi à gérer cela avec un module de classe ce qui
réduit
énormément le code.
Comment faire cela avec VB ?
Mes boutons s'intitule CmdA, cmdB, cmdC, etc... ----------------------------------------------------------- Si cela peut vous aider voici le code utilisé avec Excel
Private Sub UserForm_Initialize() Dim Nb As Integer, Ctrl As Control Nb = 0 For Each Ctrl In frmTelephone.Controls If TypeName(Ctrl) = "CommandButton" Then If Ctrl.Name <> "CmdFermer" Then Nb = Nb + 1 ReDim Preserve Boutons(1 To Nb) Set Boutons(Nb).GroupeBouton = Ctrl End If End If Ens Sub
Le module de classe Public WithEvents GroupeBouton As Msforms.CommandButton Private Sub GroupeBouton_Click() ' Récupère la lettre correspondant au bouton cliqué Critere = GroupeBouton.Caption & "*" Msgbox Critere End Sub
Driss HANIB
Bonjour ,
je suppose que tu veux récupérer la lettre de l'aphabet du bouton choisi
Tu crées , en mode design ou dunamique un groupe de Boutons au nom cmdLettre et dont le caption est la lettre choisie
Exemple de création dynamique
' tu crée d'abord ton premier bouton CmdLettre(0) ' tu le positionne for i = 0 to 25 if i <> 0 then load CmdLettre(I) ' psitionneement .. end if ' tu ecris ta lettre CmdLettre(I).Caption = cstr(I+65) ' tu obtiens des majuscules next i
Dans l'évenement CmdLettre_Click(index as long) tu marques :
Private Sub CmdLettre_Click(index as long) Dim Lettre as string Lettre = CmdLettre(index).caption ' et tu place ici ton traitement en focntion de l'initiale end sub
pour ma part je l'utilise pour créer les boutons en fonction des intiales de noms de clients dans une base de données. Je charge d'abord la liste des initiales des clients, puis je crée les boutons Autres exemples dans le cadre de gestion d'articles, si un article commence par autre chose qu'un lettre (exemple un chiffre ou * etc.) je crée un bouton spécifique pour cette 'initiale' . Bien entendu je modifie la procédure de création des boutons en conséquence
Driss
dans la procédure évènementielle
"RENAUD Eric" a écrit dans le message de news:
Bonjour,
Sur un formulaire j'ai un certain nombre de boutons correspondant chacun à une lettre de l'alphabet. Dans Excel, j'ai réussi à gérer cela avec un module de classe ce qui
réduit
énormément le code.
Comment faire cela avec VB ?
Mes boutons s'intitule CmdA, cmdB, cmdC, etc... ----------------------------------------------------------- Si cela peut vous aider voici le code utilisé avec Excel
Private Sub UserForm_Initialize() Dim Nb As Integer, Ctrl As Control Nb = 0 For Each Ctrl In frmTelephone.Controls If TypeName(Ctrl) = "CommandButton" Then If Ctrl.Name <> "CmdFermer" Then Nb = Nb + 1 ReDim Preserve Boutons(1 To Nb) Set Boutons(Nb).GroupeBouton = Ctrl End If End If Ens Sub
Le module de classe Public WithEvents GroupeBouton As Msforms.CommandButton Private Sub GroupeBouton_Click() ' Récupère la lettre correspondant au bouton cliqué Critere = GroupeBouton.Caption & "*" Msgbox Critere End Sub
Bonjour ,
je suppose que tu veux récupérer la lettre de l'aphabet du bouton choisi
Tu crées , en mode design ou dunamique un groupe de Boutons au nom cmdLettre
et dont le caption est la lettre choisie
Exemple de création dynamique
' tu crée d'abord ton premier bouton CmdLettre(0)
' tu le positionne
for i = 0 to 25
if i <> 0 then
load CmdLettre(I)
' psitionneement ..
end if
' tu ecris ta lettre
CmdLettre(I).Caption = cstr(I+65) ' tu obtiens des majuscules
next i
Dans l'évenement CmdLettre_Click(index as long)
tu marques :
Private Sub CmdLettre_Click(index as long)
Dim Lettre as string
Lettre = CmdLettre(index).caption
' et tu place ici ton traitement en focntion de l'initiale
end sub
pour ma part je l'utilise pour créer les boutons en fonction des intiales de
noms de clients dans une base de données.
Je charge d'abord la liste des initiales des clients, puis je crée les
boutons
Autres exemples dans le cadre de gestion d'articles, si un article commence
par autre chose qu'un lettre (exemple un chiffre ou * etc.) je crée un
bouton spécifique pour cette 'initiale' . Bien entendu je modifie la
procédure de création des boutons en conséquence
Driss
dans la procédure évènementielle
"RENAUD Eric" <erenaud@fr.fm> a écrit dans le message de
news:eGex3GJMFHA.568@TK2MSFTNGP09.phx.gbl...
Bonjour,
Sur un formulaire j'ai un certain nombre de boutons correspondant chacun à
une lettre de l'alphabet.
Dans Excel, j'ai réussi à gérer cela avec un module de classe ce qui
réduit
énormément le code.
Comment faire cela avec VB ?
Mes boutons s'intitule CmdA, cmdB, cmdC, etc...
-----------------------------------------------------------
Si cela peut vous aider voici le code utilisé avec Excel
Private Sub UserForm_Initialize()
Dim Nb As Integer, Ctrl As Control
Nb = 0
For Each Ctrl In frmTelephone.Controls
If TypeName(Ctrl) = "CommandButton" Then
If Ctrl.Name <> "CmdFermer" Then
Nb = Nb + 1
ReDim Preserve Boutons(1 To Nb)
Set Boutons(Nb).GroupeBouton = Ctrl
End If
End If
Ens Sub
Le module de classe
Public WithEvents GroupeBouton As Msforms.CommandButton
Private Sub GroupeBouton_Click()
' Récupère la lettre correspondant au bouton cliqué
Critere = GroupeBouton.Caption & "*"
Msgbox Critere
End Sub
je suppose que tu veux récupérer la lettre de l'aphabet du bouton choisi
Tu crées , en mode design ou dunamique un groupe de Boutons au nom cmdLettre et dont le caption est la lettre choisie
Exemple de création dynamique
' tu crée d'abord ton premier bouton CmdLettre(0) ' tu le positionne for i = 0 to 25 if i <> 0 then load CmdLettre(I) ' psitionneement .. end if ' tu ecris ta lettre CmdLettre(I).Caption = cstr(I+65) ' tu obtiens des majuscules next i
Dans l'évenement CmdLettre_Click(index as long) tu marques :
Private Sub CmdLettre_Click(index as long) Dim Lettre as string Lettre = CmdLettre(index).caption ' et tu place ici ton traitement en focntion de l'initiale end sub
pour ma part je l'utilise pour créer les boutons en fonction des intiales de noms de clients dans une base de données. Je charge d'abord la liste des initiales des clients, puis je crée les boutons Autres exemples dans le cadre de gestion d'articles, si un article commence par autre chose qu'un lettre (exemple un chiffre ou * etc.) je crée un bouton spécifique pour cette 'initiale' . Bien entendu je modifie la procédure de création des boutons en conséquence
Driss
dans la procédure évènementielle
"RENAUD Eric" a écrit dans le message de news:
Bonjour,
Sur un formulaire j'ai un certain nombre de boutons correspondant chacun à une lettre de l'alphabet. Dans Excel, j'ai réussi à gérer cela avec un module de classe ce qui
réduit
énormément le code.
Comment faire cela avec VB ?
Mes boutons s'intitule CmdA, cmdB, cmdC, etc... ----------------------------------------------------------- Si cela peut vous aider voici le code utilisé avec Excel
Private Sub UserForm_Initialize() Dim Nb As Integer, Ctrl As Control Nb = 0 For Each Ctrl In frmTelephone.Controls If TypeName(Ctrl) = "CommandButton" Then If Ctrl.Name <> "CmdFermer" Then Nb = Nb + 1 ReDim Preserve Boutons(1 To Nb) Set Boutons(Nb).GroupeBouton = Ctrl End If End If Ens Sub
Le module de classe Public WithEvents GroupeBouton As Msforms.CommandButton Private Sub GroupeBouton_Click() ' Récupère la lettre correspondant au bouton cliqué Critere = GroupeBouton.Caption & "*" Msgbox Critere End Sub
RENAUD Eric
Bonjour, Je n'ai pas bien tout compris. N'aurais tu pas un petit exemple de création de boutons de manière dynamique. D'avance merci.
"Driss HANIB" a écrit dans le message de news:%
Bonjour ,
je suppose que tu veux récupérer la lettre de l'aphabet du bouton choisi
Tu crées , en mode design ou dunamique un groupe de Boutons au nom
cmdLettre
et dont le caption est la lettre choisie
Exemple de création dynamique
' tu crée d'abord ton premier bouton CmdLettre(0) ' tu le positionne for i = 0 to 25 if i <> 0 then load CmdLettre(I) ' psitionneement .. end if ' tu ecris ta lettre CmdLettre(I).Caption = cstr(I+65) ' tu obtiens des majuscules next i
Dans l'évenement CmdLettre_Click(index as long) tu marques :
Private Sub CmdLettre_Click(index as long) Dim Lettre as string Lettre = CmdLettre(index).caption ' et tu place ici ton traitement en focntion de l'initiale end sub
pour ma part je l'utilise pour créer les boutons en fonction des intiales
de
noms de clients dans une base de données. Je charge d'abord la liste des initiales des clients, puis je crée les boutons Autres exemples dans le cadre de gestion d'articles, si un article
commence
par autre chose qu'un lettre (exemple un chiffre ou * etc.) je crée un bouton spécifique pour cette 'initiale' . Bien entendu je modifie la procédure de création des boutons en conséquence
Driss
dans la procédure évènementielle
"RENAUD Eric" a écrit dans le message de news: > Bonjour, > > Sur un formulaire j'ai un certain nombre de boutons correspondant chacun
à
> une lettre de l'alphabet. > Dans Excel, j'ai réussi à gérer cela avec un module de classe ce qui réduit > énormément le code. > > Comment faire cela avec VB ? > > Mes boutons s'intitule CmdA, cmdB, cmdC, etc... > ----------------------------------------------------------- > Si cela peut vous aider voici le code utilisé avec Excel > > Private Sub UserForm_Initialize() > Dim Nb As Integer, Ctrl As Control > Nb = 0 > For Each Ctrl In frmTelephone.Controls > If TypeName(Ctrl) = "CommandButton" Then > If Ctrl.Name <> "CmdFermer" Then > Nb = Nb + 1 > ReDim Preserve Boutons(1 To Nb) > Set Boutons(Nb).GroupeBouton = Ctrl > End If > End If > Ens Sub > > Le module de classe > Public WithEvents GroupeBouton As Msforms.CommandButton > Private Sub GroupeBouton_Click() > ' Récupère la lettre correspondant au bouton cliqué > Critere = GroupeBouton.Caption & "*" > Msgbox Critere > End Sub > >
Bonjour,
Je n'ai pas bien tout compris.
N'aurais tu pas un petit exemple de création de boutons de manière
dynamique.
D'avance merci.
"Driss HANIB" <dhanib@club-internet.fr> a écrit dans le message de
news:%232wUkHSMFHA.3492@TK2MSFTNGP10.phx.gbl...
Bonjour ,
je suppose que tu veux récupérer la lettre de l'aphabet du bouton choisi
Tu crées , en mode design ou dunamique un groupe de Boutons au nom
cmdLettre
et dont le caption est la lettre choisie
Exemple de création dynamique
' tu crée d'abord ton premier bouton CmdLettre(0)
' tu le positionne
for i = 0 to 25
if i <> 0 then
load CmdLettre(I)
' psitionneement ..
end if
' tu ecris ta lettre
CmdLettre(I).Caption = cstr(I+65) ' tu obtiens des majuscules
next i
Dans l'évenement CmdLettre_Click(index as long)
tu marques :
Private Sub CmdLettre_Click(index as long)
Dim Lettre as string
Lettre = CmdLettre(index).caption
' et tu place ici ton traitement en focntion de l'initiale
end sub
pour ma part je l'utilise pour créer les boutons en fonction des intiales
de
noms de clients dans une base de données.
Je charge d'abord la liste des initiales des clients, puis je crée les
boutons
Autres exemples dans le cadre de gestion d'articles, si un article
commence
par autre chose qu'un lettre (exemple un chiffre ou * etc.) je crée un
bouton spécifique pour cette 'initiale' . Bien entendu je modifie la
procédure de création des boutons en conséquence
Driss
dans la procédure évènementielle
"RENAUD Eric" <erenaud@fr.fm> a écrit dans le message de
news:eGex3GJMFHA.568@TK2MSFTNGP09.phx.gbl...
> Bonjour,
>
> Sur un formulaire j'ai un certain nombre de boutons correspondant chacun
à
> une lettre de l'alphabet.
> Dans Excel, j'ai réussi à gérer cela avec un module de classe ce qui
réduit
> énormément le code.
>
> Comment faire cela avec VB ?
>
> Mes boutons s'intitule CmdA, cmdB, cmdC, etc...
> -----------------------------------------------------------
> Si cela peut vous aider voici le code utilisé avec Excel
>
> Private Sub UserForm_Initialize()
> Dim Nb As Integer, Ctrl As Control
> Nb = 0
> For Each Ctrl In frmTelephone.Controls
> If TypeName(Ctrl) = "CommandButton" Then
> If Ctrl.Name <> "CmdFermer" Then
> Nb = Nb + 1
> ReDim Preserve Boutons(1 To Nb)
> Set Boutons(Nb).GroupeBouton = Ctrl
> End If
> End If
> Ens Sub
>
> Le module de classe
> Public WithEvents GroupeBouton As Msforms.CommandButton
> Private Sub GroupeBouton_Click()
> ' Récupère la lettre correspondant au bouton cliqué
> Critere = GroupeBouton.Caption & "*"
> Msgbox Critere
> End Sub
>
>
Bonjour, Je n'ai pas bien tout compris. N'aurais tu pas un petit exemple de création de boutons de manière dynamique. D'avance merci.
"Driss HANIB" a écrit dans le message de news:%
Bonjour ,
je suppose que tu veux récupérer la lettre de l'aphabet du bouton choisi
Tu crées , en mode design ou dunamique un groupe de Boutons au nom
cmdLettre
et dont le caption est la lettre choisie
Exemple de création dynamique
' tu crée d'abord ton premier bouton CmdLettre(0) ' tu le positionne for i = 0 to 25 if i <> 0 then load CmdLettre(I) ' psitionneement .. end if ' tu ecris ta lettre CmdLettre(I).Caption = cstr(I+65) ' tu obtiens des majuscules next i
Dans l'évenement CmdLettre_Click(index as long) tu marques :
Private Sub CmdLettre_Click(index as long) Dim Lettre as string Lettre = CmdLettre(index).caption ' et tu place ici ton traitement en focntion de l'initiale end sub
pour ma part je l'utilise pour créer les boutons en fonction des intiales
de
noms de clients dans une base de données. Je charge d'abord la liste des initiales des clients, puis je crée les boutons Autres exemples dans le cadre de gestion d'articles, si un article
commence
par autre chose qu'un lettre (exemple un chiffre ou * etc.) je crée un bouton spécifique pour cette 'initiale' . Bien entendu je modifie la procédure de création des boutons en conséquence
Driss
dans la procédure évènementielle
"RENAUD Eric" a écrit dans le message de news: > Bonjour, > > Sur un formulaire j'ai un certain nombre de boutons correspondant chacun
à
> une lettre de l'alphabet. > Dans Excel, j'ai réussi à gérer cela avec un module de classe ce qui réduit > énormément le code. > > Comment faire cela avec VB ? > > Mes boutons s'intitule CmdA, cmdB, cmdC, etc... > ----------------------------------------------------------- > Si cela peut vous aider voici le code utilisé avec Excel > > Private Sub UserForm_Initialize() > Dim Nb As Integer, Ctrl As Control > Nb = 0 > For Each Ctrl In frmTelephone.Controls > If TypeName(Ctrl) = "CommandButton" Then > If Ctrl.Name <> "CmdFermer" Then > Nb = Nb + 1 > ReDim Preserve Boutons(1 To Nb) > Set Boutons(Nb).GroupeBouton = Ctrl > End If > End If > Ens Sub > > Le module de classe > Public WithEvents GroupeBouton As Msforms.CommandButton > Private Sub GroupeBouton_Click() > ' Récupère la lettre correspondant au bouton cliqué > Critere = GroupeBouton.Caption & "*" > Msgbox Critere > End Sub > >