XL 2019 Ignorer cellule vide liste combobox

  • Initiateur de la discussion Initiateur de la discussion Did25
  • 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 !

Did25

XLDnaute Occasionnel
Bonjour le forum XLD , je reviens vers le forum dans la continuité de l'élaboration de mon fichier de suivi de stock et je souhaiterais trouver une solution pour mon USF de recherche de colis ,j'utilise pour ma combobox , la formule suivante :
Private Sub ComboBox1_Change()
'à chaque changement de la référence, met à jour les datas correspondantes
New_col = ComboBox1.Value
Set Rayon = Worksheets("Entrée").Range("A1:AC350").Find(New_col, LookIn:=xlValues)
If Rayon Is Nothing Then Exit Sub
lg = Rayon.Row + 1: col = Rayon.Column
place_col = ComboBox1.Value
Set Rayon = Worksheets("Entrée").Range("A1:AC350").Find(place_col, LookIn:=xlValues)
If Rayon Is Nothing Then Exit Sub
lg = Rayon.Row + 1: col = Rayon.Column
With Worksheets("Entrée")
TextBox1.Value = .Cells(lg - 2, col)
TextBox2.Value = .Cells(lg + 1, col)
TextBox3.Value = .Cells(lg + 2, col)
TextBox4.Value = .Cells(lg + 3, col)
TextBox5.Value = .Cells(lg + 4, col)
TextBox6.Value = .Cells(lg + 6, col)
End With
End Sub

Mais dans ma liste ,il y a des espaces vides en raison du fait de l'absence normale de colis sur certains rayons et je souhaiterais pouvoir faire apparaitre dans ma liste que les colis présents et ignorer les espaces vides .Merci de votre aide
 
Bonjour le forum XLD , je reviens vers le forum dans la continuité de l'élaboration de mon fichier de suivi de stock et je souhaiterais trouver une solution pour mon USF de recherche de colis ,j'utilise pour ma combobox , la formule suivante :
Private Sub ComboBox1_Change()
'à chaque changement de la référence, met à jour les datas correspondantes
New_col = ComboBox1.Value
Set Rayon = Worksheets("Entrée").Range("A1:AC350").Find(New_col, LookIn:=xlValues)
If Rayon Is Nothing Then Exit Sub
lg = Rayon.Row + 1: col = Rayon.Column
place_col = ComboBox1.Value
Set Rayon = Worksheets("Entrée").Range("A1:AC350").Find(place_col, LookIn:=xlValues)
If Rayon Is Nothing Then Exit Sub
lg = Rayon.Row + 1: col = Rayon.Column
With Worksheets("Entrée")
TextBox1.Value = .Cells(lg - 2, col)
TextBox2.Value = .Cells(lg + 1, col)
TextBox3.Value = .Cells(lg + 2, col)
TextBox4.Value = .Cells(lg + 3, col)
TextBox5.Value = .Cells(lg + 4, col)
TextBox6.Value = .Cells(lg + 6, col)
End With
End Sub

Mais dans ma liste ,il y a des espaces vides en raison du fait de l'absence normale de colis sur certains rayons et je souhaiterais pouvoir faire apparaitre dans ma liste que les colis présents et ignorer les espaces vides .Merci de votre aide
Bonjour,

où est ton fichier?
 
Bonsoir Did25
ce que j'ai mis dans le Initialize du Userform
VB:
Dim Tbl
Dim Lgn As Long
Private Sub CommandButton1_Click()
Unload Me
End Sub
Private Sub UserForm_Initialize()
Dim Cell As Range
Dim AdrC As String
With Sheets("Bdd")
DerLgn = .Cells(.Rows.Count, 1).End(xlUp).Row 'on détermine la ddernière ligne non vide de la Colonne 1
   Tbl = .Range(.Cells(2, 1), .Cells(DerLgn, 9)) 'On récupére les données de la plage ainsi définie
End With
With Me
ok_change = False 'on met la variable a False
  With .ComboBox1 'avec le Combobox
For Lgn = 1 To UBound(Tbl, 1) 'pour chaque ligne du tableau
 If Tbl(Lgn, 2) <> Empty Then 'si la colonne 2 n'est pas vide 
       .Text = Tbl(Lgn, 2) 'On affiche dans le Combobox cette valeur
     If .ListIndex = -1 Then 'si index du Combobox et -1 c'est que cettevaleur n'est pas dans la Liste
        .AddItem Tbl(Lgn, 2) 'on l'ajoute donc
        .List(.ListCount - 1, 1) = Lgn 'On récuépre la Ligne source
     End If 'fin de test 
 End If 'fin de Condition
Next Lgn
        .Text = Empty 'On vide la partie Text du Combobox
    End With
ok_change = True 'on met la variable a True
End With
End Sub
Bonne fin de Soirée
Jean marie
 
Bonjour,

J'arrive encore à la bourre, mais maintenant que je l'ai pondu le voici tout de même :

VB:
Private Sub UserForm_Initialize()
'
Dim MaCellule As Range

    With Sheets("Bdd")
        For Each MaCellule In Sheets("Bdd").Range("B3:B" & .Cells(Rows.Count, 1).End(xlUp).Row)
            If MaCellule.Value <> 0 Then Me.ComboBox1.AddItem MaCellule.Value
        Next MaCellule
    End With

End Sub


/!\ Il me semble que tu as inversé Rd et Re dans ton UserForm.
 
Dernière édition:
Bonsoir @ChTi160 😉, @Marcel32 😉, @Did25 😉,

Si j'ai compris ton problème du formulaire 'Recherche' pour alimenter la combobox, remplace la procédure initialize par la suivante et /!\ n'oublie pas de vider le champ de la propriété 'RowSource'
VB:
Private Sub UserForm_Initialize()
    Dim Cell As Range, dl As Long
    With Sheets("Bdd")
        dl = .Cells(Rows.Count, 1).End(xlUp).Row
        For Each Cell In .Range("B2:B" & dl)
            If Cell.Value <> "" And Cell.Value <> 0 Then
                Me.ComboBox1.AddItem Cell
            End If
        Next Cell
    End With
End Sub
Bonne soirée.
 
Bonsoir @ChTi160 😉, @Marcel32 😉, @Did25 😉,

Si j'ai compris ton problème du formulaire 'Recherche' pour alimenter la combobox, remplace la procédure initialize par la suivante et /!\ n'oublie pas de vider le champ de la propriété 'RowSource'
VB:
Private Sub UserForm_Initialize()
    Dim Cell As Range, dl As Long
    With Sheets("Bdd")
        dl = .Cells(Rows.Count, 1).End(xlUp).Row
        For Each Cell In .Range("B2:B" & dl)
            If Cell.Value <> "" And Cell.Value <> 0 Then
                Me.ComboBox1.AddItem Cell
            End If
        Next Cell
    End With
End Sub
Bonne soirée.
Parfait ça fonctionne ,merci
 
/!\ n'oublie pas de vider le champ de la propriété 'RowSource'
Ah oui, pardon, j'avais oublié de le préciser quand j'ai posté ma solution. 🙁


Ca plante direct et me ramène sur le module de démarrage avec erreur d'éxécution 70 accès refusé
cp4 a donné la solution à ce problème : vider la propriété RowSource de la ComboBox. 😉
 
- 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

Retour