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: