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