Combobox dynamique

jopont

XLDnaute Impliqué
Bonsoir

Je cherche des informations sur la crétaion d'un combobox, dans lequel les valeurs de ce combo s'ajoute au fur et à mesure que l'utilisateur en rentre.
Je ne trouve pas d'info sur ce sujet

merci
 

Akeya06

XLDnaute Occasionnel
Bonsoir Jopont, le forum

Tout dépend avec quelles infos tu vas alimenter ce combo. s'agit il de données dans des cellules, des noms d'onglets...
Pourrais tu être plus précis, ca nous aiderai pour pouvoir t'éguiller au mieux...

Bonne continuation

Akeya06 ;)
 

Robert

XLDnaute Barbatruc
Bonsoir Jopont, Akeya, bonsoir le forum,

Si tu utilises une ComboBox dans un UserForm, tu peux par l'événement Initialise de l'UserForm actualiser la plage édité avec un code du style

Private Sub UserForm_Initialize()
Dim Cel As Range 'décalre la variable Cel

'remplissage de la ComboBox1
'boucle sur toutes les cellules éditées de la colonne A (en partant de A2)
For Each Cel In Range('A2:A' & Range('A65536').End(xlUp).Row)
ComboBox1.AddItem Cel.Value
Next Cel
End Sub

À adapter à ton cas en changeant la colonne et éventuellement la première cellule de la colonne.
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir jopont, Akeya06, Robert,

Si j'ai bien interprété la question, ci-joint un exemple de ComboBox qui s'alimente de façon dynamique par l'utilisateur (validation d'une expression par la touche Entrée)...

J'utilise l'évènement KeyDown() du ComboBox pour détecter la frappe de la touche Entrée, laquelle touche déclenche l'ajout de l'expression dans la liste...
Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
      If KeyCode = 13 Then
            With ComboBox1
                  If .Text <> '' And .ListIndex < 0 Then
                        .AddItem .Text
                        .ListIndex = -1
                        KeyCode = 0
                  End If
            End With
      End If
End Sub
Cordialement, [file name=mDF_ComboDynamique.zip size=11277]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/mDF_ComboDynamique.zip[/file]
 

Pièces jointes

  • mDF_ComboDynamique.zip
    11 KB · Affichages: 50

myDearFriend!

XLDnaute Barbatruc
Bonsoir Jopont, le fil, le Forum,

Comment mettre ces valeurs en majuscule ?
Il convient de modifier dans ce cas la procédure comme suit :
Private Sub ComboBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
      If KeyCode = 13 Then
            With ComboBox1
                  If .Text <> '' And .ListIndex < 0 Then
                        .AddItem UCase(.Text)
                        .ListIndex = -1
                        KeyCode = 0
                  End If
            End With
      End If
End Sub

... dans le combobox, lorsque je rentre des données et que je ferme le fichier, je ne peux pas récupérer les valeurs à une nouvelle ouverture ?
Effectivement Jopont, comme souvent dans ce genre de bricolage, 'Dynamique' veut dire éphémère...
Cela dit, si tu veux pouvoir conserver les valeurs pour une utilisation future, tu peux rajouter dans le module de code de l'USF, les 2 procédures suivantes :
Private Sub UserForm_Initialize()
'Alimente le ComboBox avec la liste stockée précédemment
Dim L As Long
      With Sheets('Param')
            L = .Range('A65536').End(xlUp).Row
            If L = 1 And .Cells(1, 1) = '' Then Exit Sub
            ComboBox1.List() = .Range(.Cells(1, 1), .Cells(L, 2)).Value '(merci Hervé!)
      End With
End Sub


Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
      With Sheets('Param')
            'Recopie la liste dans la feuille 'Param' pour stockage
            .Cells.Delete
            .Range(.Cells(1, 1), .Cells(ComboBox1.ListCount, 1)) = ComboBox1.List()
      End With
End Sub
Ci-joint, l'exemple modifié en conséquence...

Cordialement, [file name=mDF_ComboDynamique_20051006000637.zip size=15762]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/mDF_ComboDynamique_20051006000637.zip[/file]
 

Pièces jointes

  • mDF_ComboDynamique_20051006000637.zip
    15.4 KB · Affichages: 62

jopont

XLDnaute Impliqué
bonjour j'ai intégré le code du combobox dynamique dans mon projet, mais seulement il semble y avoir un bug.
En effet, sur la feuille menu, lorsque je clique sur le bouton cmdNewplongee, le formulaire ne s'ouvre pas.

Cela est-il lié au code ajouté.
?
merci [file name=SALPontarlier_20051010084755.zip size=37170]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/SALPontarlier_20051010084755.zip[/file]

Message édité par: jopont, à: 10/10/2005 08:47
 

Pièces jointes

  • SALPontarlier_20051010084755.zip
    36.3 KB · Affichages: 73

myDearFriend!

XLDnaute Barbatruc
Bonsoir jopont, le fil, le Forum,

Oui, avec moi ici à l'instant :angry:, deux autres personnes se sont penchés sur la même question dans ton autre fil Lien supprimé !!!

Jopont, tu es membre XLD donc je suppose que tu as lu La Charte du Forum... Tu serais bien inspiré de faire preuve d'un peu de patience et de ne pas multiplier les fils à l'avenir... merci.

Bonne fin de soirée.
 

Statistiques des forums

Discussions
300 892
Messages
1 988 192
Membres
210 098
dernier inscrit
sidimouh