OVH Cloud OVH Cloud

Résultatsuivant choix (VBA)

9 réponses
Avatar
Jacques
Salut a toutes et tous

Voila, j'essaye de gérer l'inteface d'un UserForm suivant le résulta d'une
ComboBox.
Quand j'avais deux choix cela allé trés bien, avec cela.

'Test si le controle a une donnée particulière pour gérer l'interface
t = cbxTypeDeSoiree
If InStr(1, t, "Animation de mariage", vbTextCompare) <> 0 Then
InterfaceMariageRenseignements
Else
InterfaceGeneraleRenseignements
End If

Mais maitenant il y a plusieur choix possible.

Comment puis-je faire cela, merci a vous, Jacques

9 réponses

Avatar
lSteph
Bonsoir,
Pour autant de détails regarde du côté de
Select Case

Cordialement.

lSteph


"Jacques" a écrit dans le message de
news:
Salut a toutes et tous

Voila, j'essaye de gérer l'inteface d'un UserForm suivant le résulta d'une
ComboBox.
Quand j'avais deux choix cela allé trés bien, avec cela.

'Test si le controle a une donnée particulière pour gérer l'interface
t = cbxTypeDeSoiree
If InStr(1, t, "Animation de mariage", vbTextCompare) <> 0 Then
InterfaceMariageRenseignements
Else
InterfaceGeneraleRenseignements
End If

Mais maitenant il y a plusieur choix possible.

Comment puis-je faire cela, merci a vous, Jacques


Avatar
Jacques
lSteph, le forum

Merci pour ta réponse.

Donc voila, ce que j'ai commencé a faire.

Dim inteface as Byte

Select Case interface
Case 1: InterfaceGeneraleRenseignements
Case 2: InterfaceMariageRenseignements
Case 3: InterfaceAssociationRenseignements
Case Else
End Select

Mais je n'arrive pas a faire le lien avec le résultat de la ComboBox.

Salutations, Jacques

Bonsoir,
Pour autant de détails regarde du côté de
Select Case

Cordialement.

lSteph


"Jacques" a écrit dans le message de
news:
Salut a toutes et tous

Voila, j'essaye de gérer l'inteface d'un UserForm suivant le résulta d'une
ComboBox.
Quand j'avais deux choix cela allé trés bien, avec cela.

'Test si le controle a une donnée particulière pour gérer l'interface
t = cbxTypeDeSoiree
If InStr(1, t, "Animation de mariage", vbTextCompare) <> 0 Then
InterfaceMariageRenseignements
Else
InterfaceGeneraleRenseignements
End If

Mais maitenant il y a plusieur choix possible.

Comment puis-je faire cela, merci a vous, Jacques







Avatar
JB
Bonsoir,

http://cjoint.com/?kbwr0YFgGr

2 colonnes dans le combobox.
Dans la 2e colonne le nom de la procédure.

Liste Nom procédure
xxx mariages yyy mariage
xxx naissance yyy naissance
xxx bapteme yyy bapteme
xxx deces yyy deces

Private Sub ComboBox1_Change()
Run Me.ComboBox1.Column(1) ' 2e colonne
End Sub

Sub mariage()
MsgBox "mariage"
End Sub

Sub naissance()
MsgBox "naissance"
End Sub

Sub bapteme()
MsgBox "bapteme"
End Sub

Sub deces()
MsgBox "deces"
End Sub

Cordialement JB


Salut a toutes et tous

Voila, j'essaye de gérer l'inteface d'un UserForm suivant le résulta d'une
ComboBox.
Quand j'avais deux choix cela allé trés bien, avec cela.

'Test si le controle a une donnée particulière pour gérer l'interfa ce
t = cbxTypeDeSoiree
If InStr(1, t, "Animation de mariage", vbTextCompare) <> 0 Then
InterfaceMariageRenseignements
Else
InterfaceGeneraleRenseignements
End If

Mais maitenant il y a plusieur choix possible.

Comment puis-je faire cela, merci a vous, Jacques


Avatar
JB
On ne peut pas puisque Instr() de permet de tester l'existence d'une
chaine dans une autre mais pas de récupérer une valeur que tu
pourrais utiliser dans 'Select Case valeur'.

JB



lSteph, le forum

Merci pour ta réponse.

Donc voila, ce que j'ai commencé a faire.

Dim inteface as Byte

Select Case interface
Case 1: InterfaceGeneraleRenseignements
Case 2: InterfaceMariageRenseignements
Case 3: InterfaceAssociationRenseignements
Case Else
End Select

Mais je n'arrive pas a faire le lien avec le résultat de la ComboBox.

Salutations, Jacques

Bonsoir,
Pour autant de détails regarde du côté de
Select Case

Cordialement.

lSteph


"Jacques" a écrit dans le message de
news:
Salut a toutes et tous

Voila, j'essaye de gérer l'inteface d'un UserForm suivant le résu lta d'une
ComboBox.
Quand j'avais deux choix cela allé trés bien, avec cela.

'Test si le controle a une donnée particulière pour gérer l'int erface
t = cbxTypeDeSoiree
If InStr(1, t, "Animation de mariage", vbTextCompare) <> 0 Then
InterfaceMariageRenseignements
Else
InterfaceGeneraleRenseignements
End If

Mais maitenant il y a plusieur choix possible.

Comment puis-je faire cela, merci a vous, Jacques









Avatar
lSteph
Bonjour,

je ne saisis pas avec quoi tu compares car un truc m'échappe:
interface dans le contexte, je pensais que tu cherchais une chaine de
caractères.
voici ce que j'avais envisagé au lieu de libellés complexes dans la combo
mettre directement
les typologies connues
(si le but est ainsi, de les réferencer dans une colonne qui sera utilisée
comme rowsource
au lieu de vraisemblablement une colonne avec des libellés plus complexes)
par suite dans vba n'avoir plus qu'à gèrer ceci:

Select Case cbxTypeDeSoiree
Case is = "mariage"
...
Case is ="association"
....

Case else
....
end select
etc....

'désolé si je n'ai pas tout compris du but de la manoeuvre.

'lSteph

"Jacques" a écrit dans le message de
news:
lSteph, le forum

Merci pour ta réponse.

Donc voila, ce que j'ai commencé a faire.

Dim inteface as Byte

Select Case interface
Case 1: InterfaceGeneraleRenseignements
Case 2: InterfaceMariageRenseignements
Case 3: InterfaceAssociationRenseignements
Case Else
End Select

Mais je n'arrive pas a faire le lien avec le résultat de la ComboBox.

Salutations, Jacques

Bonsoir,
Pour autant de détails regarde du côté de
Select Case

Cordialement.

lSteph


"Jacques" a écrit dans le message de
news:
Salut a toutes et tous

Voila, j'essaye de gérer l'inteface d'un UserForm suivant le résulta
d'une
ComboBox.
Quand j'avais deux choix cela allé trés bien, avec cela.

'Test si le controle a une donnée particulière pour gérer l'interface
t = cbxTypeDeSoiree
If InStr(1, t, "Animation de mariage", vbTextCompare) <> 0 Then
InterfaceMariageRenseignements
Else
InterfaceGeneraleRenseignements
End If

Mais maitenant il y a plusieur choix possible.

Comment puis-je faire cela, merci a vous, Jacques









Avatar
Jacques
Salut, le forum

JB, lSteph, merci pour vos réponse.
Je vais expliquer plus clairement.

Dans une ComboBox, j'ai des choix.

Animation de mariage
Animation d'anniversaire 18 ans
Animation d'anniversaire 20 ans
Animation d'anniversaire groupés
Soirée association

L'UserForm n'est pas tout a fait le même, suivant le choix.

Quand je dit que l'UserForm change, c'est dimension de cellui-ci, le caption
des frames, placement des differants controls et boutons...etc.

Exemple 1 si le choix et Soirée association :

Sub InterfaceAssociationRenseignements()
With Me
With .frmCoordonneesOrganisateur1
.Visible = True
.Caption = "Organisateur"
End With
.frmCoordonneesOrganisateur2.Visible = False
With .frmCoordonneesGenerales
.Visible = True
.Top = 78
End With
With .FrameRenseignementsOrganisateurs
.Height = 198
.Caption = "Renseignement Président"
End With
LabelNbPersDessert.Visible = False
txtNbPersDessert.Visible = False
End With
End Sub

Exemple 2 si le choix et Animation de mariage :

Sub InterfaceMariageRenseignements()
With Me
With .frmCoordonneesOrganisateur1
.Visible = True
.Caption = "Marié"
End With
With .frmCoordonneesOrganisateur2
.Visible = True
.Caption = "Mariée"
End With
With .frmCoordonneesGenerales
.Visible = True
.Top = 150
End With
With .FrameRenseignementsOrganisateurs
.Height = 270
.Caption = "Renseignements Organisateurs"
End With
LabelNbPersDessert.Visible = True
txtNbPersDessert.Visible = True
End With
End Sub

Voila, j'espère que j'ai pu vous éclairer plus sur mon besoin, merci

Salutations, Jacques


Bonsoir,

http://cjoint.com/?kbwr0YFgGr

2 colonnes dans le combobox.
Dans la 2e colonne le nom de la procédure.

Liste Nom procédure
xxx mariages yyy mariage
xxx naissance yyy naissance
xxx bapteme yyy bapteme
xxx deces yyy deces

Private Sub ComboBox1_Change()
Run Me.ComboBox1.Column(1) ' 2e colonne
End Sub

Sub mariage()
MsgBox "mariage"
End Sub

Sub naissance()
MsgBox "naissance"
End Sub

Sub bapteme()
MsgBox "bapteme"
End Sub

Sub deces()
MsgBox "deces"
End Sub

Cordialement JB


Salut a toutes et tous

Voila, j'essaye de gérer l'inteface d'un UserForm suivant le résulta d'une
ComboBox.
Quand j'avais deux choix cela allé trés bien, avec cela.

'Test si le controle a une donnée particulière pour gérer l'interface
t = cbxTypeDeSoiree
If InStr(1, t, "Animation de mariage", vbTextCompare) <> 0 Then
InterfaceMariageRenseignements
Else
InterfaceGeneraleRenseignements
End If

Mais maitenant il y a plusieur choix possible.

Comment puis-je faire cela, merci a vous, Jacques






Avatar
lSteph
Bonsoir "Jacques" ,
Cela devrait aller mieux avec ces explications
Contrairement à ce qui me semblait pouvoir poser une difficulté
tu ne dis toujours pas comment s'alimente cett combo, j'en déduis donc
qu'il s'agit de choix fixes (préétablis) en dur dans la combo ou par
rowsource
Alors sans doute orienter directement le choix selon le listindex de la
combo
(nota: une série d'optionbuttons serait pas mal aussi)
selon ton exemple:

Private Sub cbxTypeDeSoiree_Change()
Select Case cbxTypeDeSoiree.ListIndex + 1

Case 1
InterfaceMariageRenseignements
Case 2 To 4
InterfaceAnnivRenseignements
Case 5
InterfaceAssocRenseignements
Case Else
InterfaceDiversRenseignements
End Select

End Sub

'Cordialement

'lSteph


"Jacques" a écrit dans le message de
news:
Salut, le forum

JB, lSteph, merci pour vos réponse.
Je vais expliquer plus clairement.

Dans une ComboBox, j'ai des choix.

Animation de mariage
Animation d'anniversaire 18 ans
Animation d'anniversaire 20 ans
Animation d'anniversaire groupés
Soirée association

L'UserForm n'est pas tout a fait le même, suivant le choix.

Quand je dit que l'UserForm change, c'est dimension de cellui-ci, le
caption
des frames, placement des differants controls et boutons...etc.

Exemple 1 si le choix et Soirée association :

Sub InterfaceAssociationRenseignements()
With Me
With .frmCoordonneesOrganisateur1
.Visible = True
.Caption = "Organisateur"
End With
.frmCoordonneesOrganisateur2.Visible = False
With .frmCoordonneesGenerales
.Visible = True
.Top = 78
End With
With .FrameRenseignementsOrganisateurs
.Height = 198
.Caption = "Renseignement Président"
End With
LabelNbPersDessert.Visible = False
txtNbPersDessert.Visible = False
End With
End Sub

Exemple 2 si le choix et Animation de mariage :

Sub InterfaceMariageRenseignements()
With Me
With .frmCoordonneesOrganisateur1
.Visible = True
.Caption = "Marié"
End With
With .frmCoordonneesOrganisateur2
.Visible = True
.Caption = "Mariée"
End With
With .frmCoordonneesGenerales
.Visible = True
.Top = 150
End With
With .FrameRenseignementsOrganisateurs
.Height = 270
.Caption = "Renseignements Organisateurs"
End With
LabelNbPersDessert.Visible = True
txtNbPersDessert.Visible = True
End With
End Sub

Voila, j'espère que j'ai pu vous éclairer plus sur mon besoin, merci

Salutations, Jacques


Bonsoir,

http://cjoint.com/?kbwr0YFgGr

2 colonnes dans le combobox.
Dans la 2e colonne le nom de la procédure.

Liste Nom procédure
xxx mariages yyy mariage
xxx naissance yyy naissance
xxx bapteme yyy bapteme
xxx deces yyy deces

Private Sub ComboBox1_Change()
Run Me.ComboBox1.Column(1) ' 2e colonne
End Sub

Sub mariage()
MsgBox "mariage"
End Sub

Sub naissance()
MsgBox "naissance"
End Sub

Sub bapteme()
MsgBox "bapteme"
End Sub

Sub deces()
MsgBox "deces"
End Sub

Cordialement JB


Salut a toutes et tous

Voila, j'essaye de gérer l'inteface d'un UserForm suivant le résulta
d'une
ComboBox.
Quand j'avais deux choix cela allé trés bien, avec cela.

'Test si le controle a une donnée particulière pour gérer l'interface
t = cbxTypeDeSoiree
If InStr(1, t, "Animation de mariage", vbTextCompare) <> 0 Then
InterfaceMariageRenseignements
Else
InterfaceGeneraleRenseignements
End If

Mais maitenant il y a plusieur choix possible.

Comment puis-je faire cela, merci a vous, Jacques








Avatar
JB
-La méthode que j'ai suggéré fonctionne.
-Il est difficile de faire + simple (1 seule instruction):

Run Me.ComboBox1.Column(1) ' 2e colonne

http://cjoint.com/?kcuQXOcjmb

Liste Nom de la procédure
Animation de mariage InterfaceMariageRenseignements
Animation d'anniversaire 18 ans anniversaire18
Animation d'anniversaire 20 ans anniversaire20
Animation d'anniversaire groupés anniversairegroupés
Soirée association
interfaceAssociationRenseignements


JB

Salut, le forum

JB, lSteph, merci pour vos réponse.
Je vais expliquer plus clairement.

Dans une ComboBox, j'ai des choix.

Animation de mariage
Animation d'anniversaire 18 ans
Animation d'anniversaire 20 ans
Animation d'anniversaire groupés
Soirée association

L'UserForm n'est pas tout a fait le même, suivant le choix.

Quand je dit que l'UserForm change, c'est dimension de cellui-ci, le capt ion
des frames, placement des differants controls et boutons...etc.

Exemple 1 si le choix et Soirée association :

Sub InterfaceAssociationRenseignements()
With Me
With .frmCoordonneesOrganisateur1
.Visible = True
.Caption = "Organisateur"
End With
.frmCoordonneesOrganisateur2.Visible = False
With .frmCoordonneesGenerales
.Visible = True
.Top = 78
End With
With .FrameRenseignementsOrganisateurs
.Height = 198
.Caption = "Renseignement Président"
End With
LabelNbPersDessert.Visible = False
txtNbPersDessert.Visible = False
End With
End Sub

Exemple 2 si le choix et Animation de mariage :

Sub InterfaceMariageRenseignements()
With Me
With .frmCoordonneesOrganisateur1
.Visible = True
.Caption = "Marié"
End With
With .frmCoordonneesOrganisateur2
.Visible = True
.Caption = "Mariée"
End With
With .frmCoordonneesGenerales
.Visible = True
.Top = 150
End With
With .FrameRenseignementsOrganisateurs
.Height = 270
.Caption = "Renseignements Organisateurs"
End With
LabelNbPersDessert.Visible = True
txtNbPersDessert.Visible = True
End With
End Sub

Voila, j'espère que j'ai pu vous éclairer plus sur mon besoin, merci

Salutations, Jacques


Bonsoir,

http://cjoint.com/?kbwr0YFgGr

2 colonnes dans le combobox.
Dans la 2e colonne le nom de la procédure.

Liste Nom procédure
xxx mariages yyy mariage
xxx naissance yyy naissance
xxx bapteme yyy bapteme
xxx deces yyy deces

Private Sub ComboBox1_Change()
Run Me.ComboBox1.Column(1) ' 2e colonne
End Sub

Sub mariage()
MsgBox "mariage"
End Sub

Sub naissance()
MsgBox "naissance"
End Sub

Sub bapteme()
MsgBox "bapteme"
End Sub

Sub deces()
MsgBox "deces"
End Sub

Cordialement JB


Salut a toutes et tous

Voila, j'essaye de gérer l'inteface d'un UserForm suivant le résu lta d'une
ComboBox.
Quand j'avais deux choix cela allé trés bien, avec cela.

'Test si le controle a une donnée particulière pour gérer l'int erface
t = cbxTypeDeSoiree
If InStr(1, t, "Animation de mariage", vbTextCompare) <> 0 Then
InterfaceMariageRenseignements
Else
InterfaceGeneraleRenseignements
End If

Mais maitenant il y a plusieur choix possible.

Comment puis-je faire cela, merci a vous, Jacques








Avatar
Jacques
Le forum

JB, lSteph

Merci pour vos méthodes, je vais essayer cela de suite.
Mais, chose que je n'avait pas prévue, le faite de redimensionner
l'UserForm, me le décentre par rapport a l'écran, pas trés jolie.

Je vais voir.

Encore merci, Jacques



Salut a toutes et tous

Voila, j'essaye de gérer l'inteface d'un UserForm suivant le résulta d'une
ComboBox.
Quand j'avais deux choix cela allé trés bien, avec cela.

'Test si le controle a une donnée particulière pour gérer l'interface
t = cbxTypeDeSoiree
If InStr(1, t, "Animation de mariage", vbTextCompare) <> 0 Then
InterfaceMariageRenseignements
Else
InterfaceGeneraleRenseignements
End If

Mais maitenant il y a plusieur choix possible.

Comment puis-je faire cela, merci a vous, Jacques