Userform + combobox + textbox - Cellules excel fusionnees

Signaler
Messages postés
13
Date d'inscription
mercredi 1 décembre 2010
Statut
Membre
Dernière intervention
30 décembre 2010
-
Messages postés
75
Date d'inscription
mercredi 17 août 2011
Statut
Membre
Dernière intervention
27 septembre 2011
-
--------------------------------------------------------------------------------

Bonjour à vous,

Je souhaite faciliter l'utilisation d'une feuille excel de devis par l'utilisation d'une userform. Celle-ci est composée de combobox permettant de selectionner les prestations, et de textbox permettant d'afficher les prix.
Cependant je me retrouve confronter à un probléme qui me bloque depuis un moment, celui des cellules fusionnées.
Je vous joint un fichier exemple qui est plus parlant. C'est ici
J'éspére obtenir de l'aide de votre part.

Merci Beaucoup.

Cordialement.

4 réponses

Messages postés
75
Date d'inscription
mercredi 17 août 2011
Statut
Membre
Dernière intervention
27 septembre 2011
2
Bonsoir,

Que met on dans le premier combobox ? (valeur des colonnes)
Que met on dans le deuxième combobox ? (valeur des colonnes)

Lorsque l'on sélectionne un libelle que doit on avoir dans le second combobox ?

Un petit exemple s'il vous plait.

Merci
Messages postés
75
Date d'inscription
mercredi 17 août 2011
Statut
Membre
Dernière intervention
27 septembre 2011
2
Bonsoir,

J'ai téléchargé votre fichier excel, ci-dessous un petit bout de code qui permet de :

- Charger dans le combobox les cellules de B4 à B7
- Libelle
- Prix
- Visite par an

Lors d'un changement de valeur (sélection) dans le combobox, les 2 textbox sont alimentés.

Manque le deuxième combobox, il faut plus d'explication.

Didier

__________________________________________________


'Code lors d'une sélection de la première Combobox
'
Private Sub ComboBox1_Change()

Dim k23 As Integer
k23 = Me.ComboBox1.ListIndex

Me.TextBox2.Text = Me.ComboBox1.List(k23, 1)
Me.TextBox1.Text = Me.ComboBox1.List(k23, 2)

End Sub

'Code lors de l'ouverture de la feuille
Private Sub UserForm_Activate()

'Premier combobox
'
'B4

Dim Ilibelle(3, 0 To 2) As String
Dim I As Integer, rwindex As Integer

rwindex = 4

For I = 0 To 3

Ilibelle(I, 0) = Application.Worksheets("Feuil1").Cells(rwindex, 2).Value
Ilibelle(I, 1) = Application.Worksheets("Feuil1").Cells(rwindex, 5).Value
Ilibelle(I, 2) = Application.Worksheets("Feuil1").Cells(rwindex, 7).Value

rwindex = rwindex + 1

Next I

Me.ComboBox1.List = Ilibelle


End Sub
Messages postés
13
Date d'inscription
mercredi 1 décembre 2010
Statut
Membre
Dernière intervention
30 décembre 2010

Bonjour Marion,

Je te remercie pour ce bout de code.
Concernant le deuxieme combobox, je souhaite qu'il contienne les differentes hauteurs lorsque je choisi dans le premier "Portes ou Portails".
Cependant la je ne t'ai envoyé qu'une toute petite partie de mon fichier. Je souhaite une solution qui pourra s'étendre à un long fichier de ce type.

Merciii Beaucoup!
Messages postés
75
Date d'inscription
mercredi 17 août 2011
Statut
Membre
Dernière intervention
27 septembre 2011
2
Bonsoir,

Ci-dessous le code modifié (en rouge).

On clique dans le premier combobox1 et dans le deuxième combobox2 la valeur est affichée en relation avec le premier combobox.

Un autre variante , on peut charger seulement le combobox2 en fonction du premier.

Didier

'
Private Sub ComboBox1_Change()

Dim k23 As Integer
k23 = Me.ComboBox1.ListIndex

Me.TextBox2.Text = Me.ComboBox1.List(k23, 1)
Me.TextBox1.Text = Me.ComboBox1.List(k23, 2)

Me.ComboBox2.ListIndex = k23
End Sub

Private Sub UserForm_Activate()

'Premier combobox
'
'B4

Dim Ilibelle(3, 0 To 3) As String
Dim Ilibelle1(3) As String
Dim I As Integer, rwindex As Integer

rwindex = 4

For I = 0 To 3

Ilibelle(I, 0) = Application.Worksheets("Feuil1").Cells(rwindex, 2).Value
Ilibelle(I, 1) = Application.Worksheets("Feuil1").Cells(rwindex, 5).Value
Ilibelle(I, 2) = Application.Worksheets("Feuil1").Cells(rwindex, 7).Value

If I > 0 Then

Ilibelle1(I) = Application.Worksheets("Feuil1").Cells(rwindex, 4).Value
Else
Ilibelle1(I) = ""
End If
rwindex = rwindex + 1

Next I

Me.ComboBox1.List = Ilibelle
Me.ComboBox2.List = Ilibelle1
End Sub