Bonjour,
merci pour ce forum qui permet de bien se perfectionner mais là je bloque :
Mon objectif est de copier les nom de salariés actifs sur un mois donné entre entre 2 documents.
L'objectif est donc d'avoir:
- Staff List.xlsx avec la liste des salariés, date d'entrée et éventuellement de sortie
- Master.xlsm dans lequel on entre une date dans F1 et basé sur cette dernière le macro génère une liste des personnes qui ont travaillé durant ce mois.
Pour le moment le macro fonctionne quand je reste dans le même classeur mais je n'arrive pas à le faire entre 2 classeurs.
Sub refresh_staff_list()
Dim DerniereLigne As Long 'dans la feuille à écrire
Dim LigneActive As Long 'dans la feuille à lire
Dim jourDeb As Date, jourFin As Date, FirstDayOfMonth As Date, LastDayOfMonth As Date
Sheets("Horaires").Select
Range("A2: E200").Select
Selection.ClearContents
FirstDayOfMonth = DateSerial(Year(Range("F1")), Month(Range("F1")), 1) 'calcul la date de fin de mois
LastDayOfMonth = DateSerial(Year(Range("F1")), Month(Range("F1")) + 1, 1) - 1 'calcul la date de fin de mois
Sheets("Liste Staff").Select
Range("A2").Select
While ActiveCell.Value <> Empty
LigneActive = ActiveCell.Row 'n° de la ligne "à lire"
If Cells(LigneActive, 4).Value <= LastDayOfMonth And (Cells(LigneActive, 5).Value >= FirstDayOfMonth Or Cells(LigneActive, 5).Value = Empty) Then 'calcul si toujours actif
'écriture dans la feuille "Horaires"
With Sheets("Horaires")
DerniereLigne = .Range("A65536").End(xlUp).Offset(1, 0).Row 'n° de la ligne "à écrire"
.Cells(DerniereLigne, 1).Value = Cells(LigneActive, 1).Value 'écrit dans la 1ère colonne la valeur trouvée dans la colonne A
.Cells(DerniereLigne, 2).Value = Cells(LigneActive, 2).Value 'écrit dans la 2è colonne la valeur trouvée dans la colonne B
.Cells(DerniereLigne, 3).Value = Cells(LigneActive, 4).Value 'écrit dans la 3è colonne la valeur trouvée dans la colonne D
.Cells(DerniereLigne, 4).Value = Cells(LigneActive, 5).Value 'écrit dans la 4è colonne la valeur trouvée dans la colonne E
End With
End If
ActiveCell.Offset(1, 0).Activate
Wend
End Sub
Merci d'avance et meilleurs voeux