[RESOLU] - Combobox 2 colonnes et modification

boudha74

XLDnaute Nouveau
Bonjour à tous,

j'ai reutilisé un formulaire du site. Il y a une combobox qui definit les autres textbox.

Il permet ensuite de modifier les différentes valeurs de ces textbox

Je souhaite afficher dans la combobox deux colonnes A et B.

J'ai trouvé comment faire en modifiant les propriétés source et columncount de la combobox.

En revanche, la modification ne fonctionne plus que pour la colonne A, plus pour les autres.

Je vous joints un fichier avec les deux cas.

Merci de votre aide
 
Dernière édition:

tototiti2008

XLDnaute Barbatruc
Re : Combobox 2 colonnes et modification

Bonjour boudha,

dans l'userform original, en haut du code tu as la ligne

Code:
Public Lig As Integer

Qui permet d'utiliser la valeur de Lig dans toutes les procédures du Userform

Cette ligne manque dans la 2ème version
 

tototiti2008

XLDnaute Barbatruc
Re : Combobox 2 colonnes et modification

Re,

Oui, visiblement c'est plus compliqué que ça
Alors, ta combobox a une Rowsourcede A3 à B20
Or la validation modifie le contenu d'une cellule de la colonne B, et il considère que ça modifie la Rowsource de ta combobox et donc il relance Combobox1_Change lors de la modification de cette valeur, ce qui réinitialise les données du Userform.

2 possibilités :

1) ne plus utiliser Rowsource mais remplir ta combobox avec des AddItem lors de l'initialisation du Userform (à mon avis le plus "propre")
ou
2) désactiver les évènements pendant que tu écris dans la feuille de calcul, ce qui évitera de relancer Combobox1_Change (moins propre mais plus rapide)
 

Si...

XLDnaute Barbatruc
Re : Combobox 2 colonnes et modification

Salut

tu peux utiliser une variable (booléenne) pour libérer ou coincer la suite lors du changement dans la liste
Code:
Dim  oui As Boolean 'ICI, false à cette l'initialisation

Private Sub ComboBox1_Change()
    If oui = True Then Exit Sub
    ...   
End Sub
Private Sub CommandButton1_Click()
    oui = True 'pour éviter la suite du ComboBox1_Change
    ...
End Sub
 

boudha74

XLDnaute Nouveau
Re : Combobox 2 colonnes et modification

Bonjour SI...

je testé ton code, la modification fonctionne pour le premier enregistrement, en revanche lorsque l'on selectionne un autre enregistrement les données liées ne s'affichent plus.
Peut etre n'ais je pas mis le code au bon endroit.
 

Pièces jointes

  • Excel Download.xls
    121.5 KB · Affichages: 121
  • Excel Download.xls
    121.5 KB · Affichages: 128
  • Excel Download.xls
    121.5 KB · Affichages: 126

Si...

XLDnaute Barbatruc
Re : Combobox 2 colonnes et modification

Re,

je poursuivais autrement après la correction, ajoute une ligne :
Code:
Private Sub CommandButton1_Click()
    oui = True    'pour éviter la suite du ComboBox1_Change
    ...    
    oui = False   'pour autoriser la suite du ComboBox1_Change
End Sub
 

tototiti2008

XLDnaute Barbatruc
Re : Combobox 2 colonnes et modification

Bonjour Si...,
Re,

Autre possibilité, tu vides la propriété RowSource de ta Combobox1
et tu modifies Userform_Initialize comme ça (plus court que AddItem)

Code:
Private Sub UserForm_Initialize()
Dim i As Integer
visu False
ComboBox1.List = Range("A3:B22").Value
End Sub
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 505
Messages
2 089 070
Membres
104 020
dernier inscrit
Mzghal