Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Probleme d'affectation de Valeur dans Combobox (up 12.08.11 8h15)

  • Initiateur de la discussion Initiateur de la discussion Maspalio
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Maspalio

XLDnaute Occasionnel
Bonjour,

Je reviens encore une fois vers vous 😀


https://www.excel-downloads.com/threads/erreur-380-vba-mhh-que-faire.168050/

Début de semaine, j'avais un petit souci ( cf. lien ci-dessus ).

Donc me revoilà, avec le même classeur mais un problème différent.
J'ai un souci avec l'affectation des valeurs dans le combobox 3.. J'ai obtenu aucun résultat, j'ai beau cherché mais en vain.

Merci,
 

Pièces jointes

Dernière édition:
Re : Probleme d'affectation de Valeur dans Combobox

Bonjour,

quand tu charges la combobo2, cible et source sont de type "String" et quand tu charges la combobox 3 cible est string et source (cellule) est numérique.

J'écrirais quelque chose comme ceci:

Code:
        If CbxIndex = 3 Then Cible = Val(Cible)
        For j = 3 To NbLignes
            If Ws.Cells(j, CbxIndex - 1) = Cible Then
                Obj = Ws.Cells(j, CbxIndex)
                If Obj.ListIndex = -1 Then Obj.AddItem Ws.Range("A" & j).Offset(0, CbxIndex - 1)
            End If
        Next j

Ou Alors en utilisant .text
Code:
              For j = 3 To NbLignes
            If Ws.Cells(j, CbxIndex - 1).Text = Cible Then
                Obj = Ws.Cells(j, CbxIndex)
                If Obj.ListIndex = -1 Then Obj.AddItem Ws.Range("A" & j).Offset(0, CbxIndex - 1)
            End If
        Next j

A+
 
Re : Probleme d'affectation de Valeur dans Combobox

Merci à toi 😉

A la fin de la macro d’initialisation des combobox , j'ai un "Obj.ListIndex = -1" ..
Cependant si je fais : Obj.ListIndex = 0 , j'ai aussi une erreur. Normale ?
 
Re : Probleme d'affectation de Valeur dans Combobox

Bonjour.
De mon coté j'ai résolu le problème en réécrivant:
VB:
Private Sub ComboBox2_Change()
    'Affectation des valeurs du ComboBox3
    If ComboBox2.Value <> "" Then Val_ComboBox 3, CDbl(ComboBox2.Value)
End Sub
Cordialement
 
Re : Probleme d'affectation de Valeur dans Combobox

Dranreb, 😉

Sympa aussi comme solution, de plus elle permet de faire : Obj.ListIndex = 0 à la fin de la macro.


Merci encore à tous les 2, pour vous être penché sur mon problème.
 
Re : Probleme d'affectation de Valeur dans Combobox (update 12.08.11 - 8:05 )

Je reviens vers vous, après avoir continuer a remplir ma "DB", je bute sur un nouveau problème avec mes combobox à choix conditionnels.

Si je sélectionne "FOODMASTER", Dans mon combobox3, j'ai 3 possibilités or il devrait y en avoir qu'une seule.

En testant les différentes méthodes proposés par Hasco et Dranreb, le résultat est le même.

Dur dur, le VBA 🙁

Le souci est que comme l'affectation des valeurs du combobox 3 se base sur le combobox 2.. ben il me selectionne tous les valeurs possible .. 🙁
 
Dernière édition:
Re : Probleme d'affectation de Valeur dans Combobox (up 12.08.11 8h15)

Bonjour.
Essayez comme ça:
VB:
Option Explicit
Dim Ws As Worksheet, EnPhaseDInitialisation As Boolean

Private Sub UserForm_Initialize()
    'Affectation des valeurs du ComboBox1
    Val_ComboBox 1
End Sub

Private Sub ComboBox1_Change()
   If EnPhaseDInitialisation Then Exit Sub
    'Affectation des valeurs du ComboBox2
    Val_ComboBox 2, ComboBox1.Value
End Sub

Private Sub ComboBox2_Change()
   If EnPhaseDInitialisation Then Exit Sub
    'Affectation des valeurs du ComboBox3
    Val_ComboBox 3, ComboBox1.Value, CDbl(ComboBox2.Value)
End Sub

'Procédure pour affecter des valeurs aux ComboBox
Private Sub Val_ComboBox(CbxIndex As Integer, ParamArray Cible() As Variant)

Dim NbLignes As Long, TV As Variant, Cbx As ComboBox, L As Long, ÀRetenir As Boolean, C As Long

'Définit la feuille contenant les données
    Set Ws = Worksheets("DB_Schlauch")
    'Définit le nombre de lignes dans la colonne A
    NbLignes = Ws.Range("A65536").End(xlUp).Row
'Met une bonne fois pour toutes en tableau dans un variant les valeurs des plages, pour limiter les requêtes Excel
    TV = Ws.Range("A3:C" & NbLignes).Value

    
'Définit le ComboBox à remplir
    Set Cbx = Me.Controls("ComboBox" & CbxIndex)
    
EnPhaseDInitialisation = True ' Pour ne plus provoquer de récursions
'Supprime les anciennes données
    Cbx.Clear

'Boucle sur les lignes de la colonne A (à partir de la 3eme ligne)
    For L = 1 To UBound(TV)
   'Remplit le ComboBox sans doublons
       Cbx.Value = TV(L, CbxIndex): ÀRetenir = Cbx.ListIndex = -1
'Alimentation conditionnelle du Combobox en fonction de ce qui est sélectionnée dans les contrôles précédents éventuels:
       For C = 1 To CbxIndex - 1 ' 1 to -1 ==> ne passe du tout dans la boucle
          If Not ÀRetenir Then Exit For
          ÀRetenir = TV(L, C) = Cible(C - 1) ' Parce qu'un ParamArray démarre à 0
          Next C
       If ÀRetenir Then Cbx.AddItem TV(L, CbxIndex)
       Next L
       
EnPhaseDInitialisation = False

'Positionne sur le premier élément si la liste n'est pas vide
If Cbx.ListCount > 0 Then Cbx.ListIndex = 0

End Sub
Achtung der is der CommandButtonKalkulieren_Click... derrière que je n'ai pas reproduite.
À+
 
Re : Probleme d'affectation de Valeur dans Combobox (up 12.08.11 8h15)

Awesome \o/

Dranreb, t'es un Dieu ... (je me prosterne devant tant de génie 😛)

Question bête, si je veux rajouter une 4ieme combobox ? ou plus 😀 (on sait jamais.. selon l’évolution du programme).

Car j'ai essayé de comprendre ton bout de code, mais malheureusement j'ai pas tout compris 🙁
De ce que j'ai compris c'est pas faisable, car faudrait modifier à nouveau tout le code de la procédure pour affecter des valeurs aux ComboBox. Juste ?

Merci encore,
 
Re : Probleme d'affectation de Valeur dans Combobox (up 12.08.11 8h15)

Faux en partie, c'est au contraire conçu pour en ajouter d'autres en rajoutant chaque fois au dernier l'avant dernier critère en plus des précédents.
Toutefois la procédure ne récupère que 3 colonnes. Il faudrait qu'elle en récupère le nombre de TextBox. Ou si les colonnes ne sont plus contiguës à partir de la A il faudrait le programmer autrement.
À+
 
Re : Probleme d'affectation de Valeur dans Combobox (up 12.08.11 8h15)

pour les 3 colonnes j'ai compris..


Code:
TV = Ws.Range("A3:D" & NbLignes).Value

Cependant pour le reste, je plane complétement. J'ai testé différentes solutions, mais en vain.


Code:
Private Sub ComboBox3_Change()
   If EnPhaseDInitialisation Then Exit Sub
    'Affectation des valeurs du ComboBox3
   Val_ComboBox 4, ComboBox1.Value, CDbl(ComboBox3.Value)
End Sub

dans ces eaux la ?
 
Re : Probleme d'affectation de Valeur dans Combobox (up 12.08.11 8h15)

mhhh.. Je doute la, vu que dans la fonction tu ne passes que 2 paramètres

Code:
Private Sub Val_ComboBox(CbxIndex As Integer, ParamArray Cible() As Variant)

Donc faudrait un Cible1 .. ce qui par la suite modifie tout le code vu qu'il doit être pris en compte dans le IF.

non ?
 
Re : Probleme d'affectation de Valeur dans Combobox (up 12.08.11 8h15)

mhhh.. Je doute la, vu que dans la fonction tu ne passes que 2 paramètres
j'en passais déjà 3 à la Combobox2: tu oublie que le 1er n'est que le N° de ComboBox. Où est le problème ?
Extrait de l'aide sur l'instruction Sub: À+
 
Re : Probleme d'affectation de Valeur dans Combobox (up 12.08.11 8h15)

Edit : effectivement ca marche, Je viens de comprendre que tout dépend en faite de :
Code:
 Val_ComboBox 4, ComboBox1.Value, CDbl(ComboBox2.Value), ComboBox3.Value

pas de CDbl cette fois ci 😉 comme toujours ce sont les petites finesses du code qui sont souvent le plus complexe.

Merci encore ,

Si jamais je peux quelque chose pour toi, fait moi signe 😉
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

C
Réponses
4
Affichages
2 K
C
L
Réponses
2
Affichages
514
Laguich
L
T
Réponses
3
Affichages
1 K
T
T
Réponses
1
Affichages
1 K
thisisonehood
T
P
Réponses
4
Affichages
1 K
P
Réponses
22
Affichages
5 K
D
Réponses
7
Affichages
20 K
Darvek
D
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…