XL 2010 Ajouter dans une Listbox uniquement les infos qui respectes certaine conditions (VBA)

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 !

hiddens

XLDnaute Nouveau
Bonjour,

je cherche à afficher dans ma Listbox uniquement les ouvriers qui ne sont pas occupés entre les dates de la tache sélectionner dan mon Userforme.

exemple : si ouvrier 1 est occupé du 27/02/2020 au 29/02/2020 je veux qu'il n'apparaisse pas dans ma Liste ouvriers si je choisi une tache qui doit ce dérouler du du 25/02/2020 au 28/02/2020.
mon code :
VB:
Option Explicit
Dim i As Integer
Dim Lig As Integer
Dim Ligtache As Integer
Dim c As Integer


Private Sub Label5_Click()

End Sub

Sub UserForm_Activate()   'va chercher les projet en cours
   
    For i = 8 To 1000
    If Projet.ListIndex = -1 And Range("A" & i) <> "" Then _
        Projet.AddItem Sheets("Feuil1").Range("A" & i).Value
    Next
    If choix_Boite.ListIndex = -1 Then _
    choix_Boite.List = WorksheetFunction.Transpose(ActiveSheet.Range("G7:H7"))
   
    If Spe.ListIndex = -1 Then _
        Spe.Clear
        Spe.AddItem "Soudage"
End Sub

Private Sub Projet_Change()   'va chercher les diferente taches du projet selectionné
    If Projet.ListIndex = -1 Then _
        Me.TacheZone.Clear
   
        With Sheets("Feuil1")
            Lig = .Columns(1).Cells.Find(Me.Projet.List(Me.Projet.ListIndex)).Row
            Me.TacheZone.Clear
            For i = Lig + 1 To Range("B" & Lig + 1).End(xlDown).Row
                Me.TacheZone.AddItem Sheets("Feuil1").Range("B" & i).Value
            Next
        End With
    Exit Sub
End Sub

Private Sub Spe_Change()   'pas utile dand l'example
    If Spe.Value = "Soudage" Then
        Me.Label4.Visible = True
        Me.choix_Boite.Visible = True
        Me.Label5.Visible = True
        Me.List_Ouvr.Visible = True
        Label5.Caption = "Soudeurs :"
        Me.List_Ouvr.Clear
    End If
End Sub

Private Sub choix_Boite_Change()   'va chercher la liste des ouvriers en foction de la boite et la transpose dans la Listbox
    If choix_Boite.Value = "Boite 1" Then   'code que je veux modifier
        Me.List_Ouvr.Clear
        List_Ouvr.List = WorksheetFunction.Transpose(ActiveSheet.Range("I7:T7"))
       
'_____________________Partie du code que je n'arrive pas a ecrire __________________________________
'        For i = 8 To 21
'        Ligtache = Columns(2).Cells.Find(Me.TacheZone.List(Me.TacheZone.ListIndex)).Row
'          
'         If Range("C" & i) >= Range("C" & Ltache) Or Range("E" & i) <= ("E" & Ltache) Then
'                For c = 9 To 20
'                    If Cells(c, i) = "" Then
'                        List_Ouvr.List = WorksheetFunction.Transpose(ActiveSheet.Cells(c, 7))
'                    End If
'                Next
'            End If
'        Next
'__________________________________________________________________________________________________
    End If


    If choix_Boite.Value = "Boite 2" Then   'code sans filtrer les ouvriers occupés
        Me.List_Ouvr.Clear
        List_Ouvr.List = WorksheetFunction.Transpose(ActiveSheet.Range("U7:AP7"))
    End If
End Sub

je vous joint des captures d’écran et je peux vous fournir le fichier en exemple si besoin.
image demande1.jpgimage demande2.jpg
Merci d’avance pour votre aide et bonne journée.
 
Dernière édition:
- 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

Réponses
4
Affichages
360
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
247
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
76
Retour