j'ai un petit souci pour programmer la chose suivante :
J'ai sur une page d'un userform deux séries de combobox qui ne s'affichent
que lorsque je remplie une valeur dans un textBox.
(cette valeur est le nombre de lignes de ComboBox à afficher)
Chaque ligne de ComboBox comporte deux comboBox dont chacun à un contenu
différent.
Et c'est là que je bloque. Je n'arrive pas à définir la liste à afficher
pour chacun des Combobox.
J'ai pour l'instant le code suivant :
Sub boucleprestations()
Dim Ctrl As Control
Dim Nb As Integer
Dim b As Integer
Nb = 10 'Nombre de rangée dans le formulaire
On Error Resume Next
'Cint est une fonction de conversion de
'Texte en nombre de type entier
'Si l'usager tape une valeur non désiré
'cela provoque une erreur qui est intercepté
'et on sort de la procédure.
b = CInt(Txbprestations)
If Err > 0 Then
Err = 0
Exit Sub
End If
If b <= 0 Or b > Nb Then Exit Sub
For Each Ctrl In Me.MultiPage1.Pages(3).Controls
Select Case TypeName(Ctrl)
Case Is = "ComboBox"
Ctrl.Visible = False
If Val(Right(Ctrl.Name, 1)) < b Then
Ctrl.Visible = True
End If
Case Is = "TextBox"
Ctrl.Visible = False
If Val(Right(Ctrl.Name, 1)) < b Then
Ctrl.Visible = True
End If
Case Is = "CheckBox"
Ctrl.Visible = False
If Val(Right(Ctrl.Name, 1)) < b Then
Ctrl.Visible = True
End If
End Select
Next
For Each Ctrl In Me.MultiPage1.Pages(3).Controls
If TypeOf Ctrl Is ComboBox Then <----
c'est ici qu'il faut que je change quelque chose mais je
n'arrive pas à trouver la syntaxe
Ctrl.RowSource = "Donnees!Tab_prestations"
End If
Next
End Sub
En fait je cherche un truc du genre :
Si le texte du combobox contient ComboBox1... alors remplir avec ...
Sinon remplir avec ....
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
Jackadit
J'ai trouvé une solution ... c'est peut-être un peu "bidouille" mais ça fonctionne.
si quelqu'un à une solution plus "propre" je suis preneur.
Sub boucleprestations()
Dim Ctrl As Control Dim Nb As Integer Dim b As Integer Nb = 10 'Nombre de rangée dans le formulaire
On Error Resume Next 'Cint est une fonction de conversion de 'Texte en nombre de type entier 'Si l'usager tape une valeur non désiré 'cela provoque une erreur qui est intercepté 'et on sort de la procédure. b = CInt(Txbprestations) If Err > 0 Then Err = 0 Exit Sub End If
If b <= 0 Or b > Nb Then Exit Sub
For Each Ctrl In Me.MultiPage1.Pages(4).Controls Select Case TypeName(Ctrl) Case Is = "ComboBox" Ctrl.Visible = False If Val(Right(Ctrl.Name, 1)) < b Then Ctrl.Visible = True End If
Case Is = "TextBox" Ctrl.Visible = False If Val(Right(Ctrl.Name, 1)) < b Then Ctrl.Visible = True End If
Case Is = "CheckBox" Ctrl.Visible = False If Val(Right(Ctrl.Name, 1)) < b Then Ctrl.Visible = True End If End Select Next
For Each Ctrl In Me.MultiPage1.Pages(3).Controls If TypeOf Ctrl Is ComboBox Then
If Left(Ctrl.Name, 9) = "ComboBox4" Then Ctrl.RowSource = "Formateurs!Tab_prestations" End If
If Left(Ctrl.Name, 9) = "ComboBox5" Then Ctrl.RowSource = "Formateurs!Tab_vacataires" End If End If Next
End Sub
Mes combobox se nommant ComboBox40, ComboBox41, ComboBox42, etc et pour la deuxième série ComboBox50, ComboBox51, ComboBox52, etc
Voilà je mets ma solution en espérant que cela puisse servir...
jackadit
"jackadit" a écrit dans le message de groupe de discussion :
Bonjour,
j'ai un petit souci pour programmer la chose suivante :
J'ai sur une page d'un userform deux séries de combobox qui ne s'affichent que lorsque je remplie une valeur dans un textBox. (cette valeur est le nombre de lignes de ComboBox à afficher)
Chaque ligne de ComboBox comporte deux comboBox dont chacun à un contenu différent.
Et c'est là que je bloque. Je n'arrive pas à définir la liste à afficher pour chacun des Combobox.
J'ai pour l'instant le code suivant :
Sub boucleprestations()
Dim Ctrl As Control Dim Nb As Integer Dim b As Integer Nb = 10 'Nombre de rangée dans le formulaire
On Error Resume Next 'Cint est une fonction de conversion de 'Texte en nombre de type entier 'Si l'usager tape une valeur non désiré 'cela provoque une erreur qui est intercepté 'et on sort de la procédure. b = CInt(Txbprestations) If Err > 0 Then Err = 0 Exit Sub End If
If b <= 0 Or b > Nb Then Exit Sub
For Each Ctrl In Me.MultiPage1.Pages(3).Controls Select Case TypeName(Ctrl) Case Is = "ComboBox" Ctrl.Visible = False If Val(Right(Ctrl.Name, 1)) < b Then Ctrl.Visible = True End If
Case Is = "TextBox" Ctrl.Visible = False If Val(Right(Ctrl.Name, 1)) < b Then Ctrl.Visible = True End If
Case Is = "CheckBox" Ctrl.Visible = False If Val(Right(Ctrl.Name, 1)) < b Then Ctrl.Visible = True End If End Select Next
For Each Ctrl In Me.MultiPage1.Pages(3).Controls If TypeOf Ctrl Is ComboBox Then <---- c'est ici qu'il faut que je change quelque chose mais je n'arrive pas à trouver la syntaxe Ctrl.RowSource = "Donnees!Tab_prestations" End If Next
End Sub
En fait je cherche un truc du genre :
Si le texte du combobox contient ComboBox1... alors remplir avec ... Sinon remplir avec ....
Quelle serait la piste à suivre ?
Merci de vos conseils
jackadit
J'ai trouvé une solution ...
c'est peut-être un peu "bidouille" mais ça fonctionne.
si quelqu'un à une solution plus "propre" je suis preneur.
Sub boucleprestations()
Dim Ctrl As Control
Dim Nb As Integer
Dim b As Integer
Nb = 10 'Nombre de rangée dans le formulaire
On Error Resume Next
'Cint est une fonction de conversion de
'Texte en nombre de type entier
'Si l'usager tape une valeur non désiré
'cela provoque une erreur qui est intercepté
'et on sort de la procédure.
b = CInt(Txbprestations)
If Err > 0 Then
Err = 0
Exit Sub
End If
If b <= 0 Or b > Nb Then Exit Sub
For Each Ctrl In Me.MultiPage1.Pages(4).Controls
Select Case TypeName(Ctrl)
Case Is = "ComboBox"
Ctrl.Visible = False
If Val(Right(Ctrl.Name, 1)) < b Then
Ctrl.Visible = True
End If
Case Is = "TextBox"
Ctrl.Visible = False
If Val(Right(Ctrl.Name, 1)) < b Then
Ctrl.Visible = True
End If
Case Is = "CheckBox"
Ctrl.Visible = False
If Val(Right(Ctrl.Name, 1)) < b Then
Ctrl.Visible = True
End If
End Select
Next
For Each Ctrl In Me.MultiPage1.Pages(3).Controls
If TypeOf Ctrl Is ComboBox Then
If Left(Ctrl.Name, 9) = "ComboBox4" Then
Ctrl.RowSource = "Formateurs!Tab_prestations"
End If
If Left(Ctrl.Name, 9) = "ComboBox5" Then
Ctrl.RowSource = "Formateurs!Tab_vacataires"
End If
End If
Next
End Sub
Mes combobox se nommant ComboBox40, ComboBox41, ComboBox42, etc
et pour la deuxième série ComboBox50, ComboBox51, ComboBox52, etc
Voilà je mets ma solution en espérant que cela puisse servir...
jackadit
"jackadit" <jackadit@hotmail.com> a écrit dans le message de groupe de
discussion : 27950D01-C02D-4B7D-A382-F979FDEBADC7@microsoft.com...
Bonjour,
j'ai un petit souci pour programmer la chose suivante :
J'ai sur une page d'un userform deux séries de combobox qui ne s'affichent
que lorsque je remplie une valeur dans un textBox.
(cette valeur est le nombre de lignes de ComboBox à afficher)
Chaque ligne de ComboBox comporte deux comboBox dont chacun à un contenu
différent.
Et c'est là que je bloque. Je n'arrive pas à définir la liste à afficher
pour chacun des Combobox.
J'ai pour l'instant le code suivant :
Sub boucleprestations()
Dim Ctrl As Control
Dim Nb As Integer
Dim b As Integer
Nb = 10 'Nombre de rangée dans le formulaire
On Error Resume Next
'Cint est une fonction de conversion de
'Texte en nombre de type entier
'Si l'usager tape une valeur non désiré
'cela provoque une erreur qui est intercepté
'et on sort de la procédure.
b = CInt(Txbprestations)
If Err > 0 Then
Err = 0
Exit Sub
End If
If b <= 0 Or b > Nb Then Exit Sub
For Each Ctrl In Me.MultiPage1.Pages(3).Controls
Select Case TypeName(Ctrl)
Case Is = "ComboBox"
Ctrl.Visible = False
If Val(Right(Ctrl.Name, 1)) < b Then
Ctrl.Visible = True
End If
Case Is = "TextBox"
Ctrl.Visible = False
If Val(Right(Ctrl.Name, 1)) < b Then
Ctrl.Visible = True
End If
Case Is = "CheckBox"
Ctrl.Visible = False
If Val(Right(Ctrl.Name, 1)) < b Then
Ctrl.Visible = True
End If
End Select
Next
For Each Ctrl In Me.MultiPage1.Pages(3).Controls
If TypeOf Ctrl Is ComboBox Then <----
c'est ici qu'il faut que je change quelque chose mais je n'arrive pas à
trouver la syntaxe
Ctrl.RowSource = "Donnees!Tab_prestations"
End If
Next
End Sub
En fait je cherche un truc du genre :
Si le texte du combobox contient ComboBox1... alors remplir avec ...
Sinon remplir avec ....
J'ai trouvé une solution ... c'est peut-être un peu "bidouille" mais ça fonctionne.
si quelqu'un à une solution plus "propre" je suis preneur.
Sub boucleprestations()
Dim Ctrl As Control Dim Nb As Integer Dim b As Integer Nb = 10 'Nombre de rangée dans le formulaire
On Error Resume Next 'Cint est une fonction de conversion de 'Texte en nombre de type entier 'Si l'usager tape une valeur non désiré 'cela provoque une erreur qui est intercepté 'et on sort de la procédure. b = CInt(Txbprestations) If Err > 0 Then Err = 0 Exit Sub End If
If b <= 0 Or b > Nb Then Exit Sub
For Each Ctrl In Me.MultiPage1.Pages(4).Controls Select Case TypeName(Ctrl) Case Is = "ComboBox" Ctrl.Visible = False If Val(Right(Ctrl.Name, 1)) < b Then Ctrl.Visible = True End If
Case Is = "TextBox" Ctrl.Visible = False If Val(Right(Ctrl.Name, 1)) < b Then Ctrl.Visible = True End If
Case Is = "CheckBox" Ctrl.Visible = False If Val(Right(Ctrl.Name, 1)) < b Then Ctrl.Visible = True End If End Select Next
For Each Ctrl In Me.MultiPage1.Pages(3).Controls If TypeOf Ctrl Is ComboBox Then
If Left(Ctrl.Name, 9) = "ComboBox4" Then Ctrl.RowSource = "Formateurs!Tab_prestations" End If
If Left(Ctrl.Name, 9) = "ComboBox5" Then Ctrl.RowSource = "Formateurs!Tab_vacataires" End If End If Next
End Sub
Mes combobox se nommant ComboBox40, ComboBox41, ComboBox42, etc et pour la deuxième série ComboBox50, ComboBox51, ComboBox52, etc
Voilà je mets ma solution en espérant que cela puisse servir...
jackadit
"jackadit" a écrit dans le message de groupe de discussion :
Bonjour,
j'ai un petit souci pour programmer la chose suivante :
J'ai sur une page d'un userform deux séries de combobox qui ne s'affichent que lorsque je remplie une valeur dans un textBox. (cette valeur est le nombre de lignes de ComboBox à afficher)
Chaque ligne de ComboBox comporte deux comboBox dont chacun à un contenu différent.
Et c'est là que je bloque. Je n'arrive pas à définir la liste à afficher pour chacun des Combobox.
J'ai pour l'instant le code suivant :
Sub boucleprestations()
Dim Ctrl As Control Dim Nb As Integer Dim b As Integer Nb = 10 'Nombre de rangée dans le formulaire
On Error Resume Next 'Cint est une fonction de conversion de 'Texte en nombre de type entier 'Si l'usager tape une valeur non désiré 'cela provoque une erreur qui est intercepté 'et on sort de la procédure. b = CInt(Txbprestations) If Err > 0 Then Err = 0 Exit Sub End If
If b <= 0 Or b > Nb Then Exit Sub
For Each Ctrl In Me.MultiPage1.Pages(3).Controls Select Case TypeName(Ctrl) Case Is = "ComboBox" Ctrl.Visible = False If Val(Right(Ctrl.Name, 1)) < b Then Ctrl.Visible = True End If
Case Is = "TextBox" Ctrl.Visible = False If Val(Right(Ctrl.Name, 1)) < b Then Ctrl.Visible = True End If
Case Is = "CheckBox" Ctrl.Visible = False If Val(Right(Ctrl.Name, 1)) < b Then Ctrl.Visible = True End If End Select Next
For Each Ctrl In Me.MultiPage1.Pages(3).Controls If TypeOf Ctrl Is ComboBox Then <---- c'est ici qu'il faut que je change quelque chose mais je n'arrive pas à trouver la syntaxe Ctrl.RowSource = "Donnees!Tab_prestations" End If Next
End Sub
En fait je cherche un truc du genre :
Si le texte du combobox contient ComboBox1... alors remplir avec ... Sinon remplir avec ....