Remplir Combobox evec données d'une colonne sous condition

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

tchou

XLDnaute Nouveau
Bonjour,
je découvre VBA excel et mon souci est le suivant :
je récupère les données d'une colonne excel que j'affiche dans un Combobox. Ce que j'aimerai, afficher les résultats que si dans une autre colonne du même classeur le cellule est vide (pas de date enregistrée).
Selection dum est le combobox, colonne "G" et l'autre colonne à prendre en compte est "J" (date cloture)
Je n'arrive pas à trouver d'exemple facile à mettre en place dans l'Userform, certainement parce que je suis débutant.
Merci d'avance.

Voici le code que j'utilise :

Private Sub UserForm_Initialize()
Dim I As Integer, nbLignes As Long, Tableau() As String

Application.Visible = True

Sheets("matériel en stock").Select
nbLignes = DerniereLignePleine(1)

If nbLignes < 2 Then
MsgBox "Il n'y a pas encore de numéro de DUM rentré"
Exit Sub
End If

selection_dum.Clear

'Dimensionner le tableau un nombre de lignes trouvées moins une pour l'entête
ReDim Tableau(nbLignes - 1)

For I = 0 To nbLignes - 1
'+2 parce que le tableau commence à 0 et les données à la ligne 2
Tableau(I) = Range("G" & I + 2).Value

'ajoute les valeurs trouver dans le tableau
selection_dum.AddItem Tableau(I)
Next

If selection_dum.ListCount > 0 Then selection_dum.ListIndex = 0
End Sub
 
Re : Remplir Combobox evec données d'une colonne sous condition

Bonjour,

Teste si ça convient :
Code:
Private Sub UserForm_Initialize()

    Dim Plage As Range
    Dim I As Integer
    
    With Worksheets("matériel en stock")
        
        'en colonne G à partir de la ligne 2
        Set Plage = .Range(.Cells(2, 7), .Cells(.Rows.Count, 7).End(xlUp))
    
    End With
    
    selection_dum.Clear
    
    For I = 1 To Plage.Count
        
        'si cellule en colonne J est vide
        If Plage(I).Offset(, 3) = "" Then
        
            selection_dum.AddItem Plage(I)
            
        End If
    Next

End Sub

Hervé.
 
- 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