enlever les trous dans les combobox

zepeto

XLDnaute Occasionnel
Bonjour au forum, je fais appel à vous car j'ai des combobox dans mon userfom avec des trou et je me demandé si quelq'un savais comment les faire disparaitre ?
Je vous met mon code en Piéce Jointe.
De plus je suis sous excel 97.
Merci par avance
 

Pièces jointes

  • PJ.zip
    29.9 KB · Affichages: 43
  • PJ.zip
    29.9 KB · Affichages: 40
  • PJ.zip
    29.9 KB · Affichages: 43

jp14

XLDnaute Barbatruc
Re : enlever les trous dans les combobox

Bonjour

Pour supprimer les ligne vides il suffit de faire un test sur le contenu de c

Code:
For Each c In plage.Cells
        If c.Row <> plage.Range("A1").Row Then
            cbDenomination.Text = Trim(c.Text)            'cette ligne entraine l'évènement cbNoms_Click()
            If cbDenomination.ListIndex = -1 Then
                If c <> "" Then cbDenomination.AddItem c
            End If
        End If
    Next

A tester

JP
 

zepeto

XLDnaute Occasionnel
Re : enlever les trous dans les combobox

Merci beaucoup tu viens de résoudre mon probléme.
Si je peux en profiter vu que tu as regarder mon code je me demander si tu ne saurais pas comment résoudre mon second probléme qui est :
Sur mon userform j'ai 2 combobox permettant de faire des recherches, l'une sur la dénomination et l'autre sur l'adresse, mon probléme c'est que le code que j'ai fonctionnait bien quand je n'avais que la recherche sur la dénomination, et depuis que j'ai rajouté celle sur l'adresse, la premiére recherche ne fonctionne plus et la seconde beug de temps en temps alors si tu as une idée ou une méthode à me proposer se serait avec plaisir et encore merci?
 
Dernière édition:

zepeto

XLDnaute Occasionnel
Re : enlever les trous dans les combobox

En fait je voudrais savoir comment mettre dans mon UserForm_initialize() une condition me permettant de faire la recherche sur la combobox que je veux?

mon idée :
Private Sub UserForm_Initialize()
Dim c As Range
Dim d As Range

If "on choisi de rechercher avec la combobox1" Then
Set plage = Feuil1.Range("b1:b" & Feuil1.Range("b65536").End(xlUp).Row)
'On ajoute des occurences uniques à la combobox des noms
bChargementListe = True
For Each d In plage.Cells
If d.Row <> plage.Range("b1").Row Then
ComboBox1.Text = Trim(d.Text) 'cette ligne entraine l'évènement cbNoms_Click()
If ComboBox1.ListIndex = -1 Then
' test de la valeur de d si elle vaut rien alors on affiche pas comme sa sa enléve les trou dans les combobox
If d <> "" Then ComboBox1.AddItem d
End If
End If
Next
ComboBox1.ListIndex = -1
bChargementListe = False
Else
If "on choisi de rechercher avec cbDenomination" Then
Set plage = Feuil1.Range("A1:A" & Feuil1.Range("A65536").End(xlUp).Row)
'On ajoute des occurences uniques à la combobox des noms
bChargementListe = True
For Each c In plage.Cells
If c.Row <> plage.Range("A1").Row Then
cbDenomination.Text = Trim(c.Text) 'cette ligne entraine l'évènement cbNoms_Click()
If cbDenomination.ListIndex = -1 Then
' test de la valeur de c si elle vaut rien alors on affiche pas comme sa sa enléve les trou dans les combobox
If c <> "" Then cbDenomination.AddItem c
End If
End If
Next
cbDenomination.ListIndex = -1
bChargementListe = False
End If
End If


End Sub


Je ne trouve pas par quoi remplacer ce qui est en rouge pour que sa fonctionne correctement?
Merci pour votre aide
 

jp14

XLDnaute Barbatruc
Re : enlever les trous dans les combobox

Bonsoir

Ci dessous l'userform avec des modifications pour simplifier l'ajout de données dans les combobox ( une procédure paramétrable).

L'utilisateur sélectionne une donnée dans l'un des deux combobox , le deuxième est rempli lorsque le focus est transféré au combo ( "Private Sub ComboBox1_Enter()" par exemple).

A tester

JP
 

Pièces jointes

  • PJ.zip
    29.5 KB · Affichages: 43
  • PJ.zip
    29.5 KB · Affichages: 43
  • PJ.zip
    29.5 KB · Affichages: 41

Discussions similaires

Réponses
1
Affichages
219

Statistiques des forums

Discussions
312 337
Messages
2 087 392
Membres
103 536
dernier inscrit
komivi