Bonjour,
J'ai une feuille 1 dans laquelle j'ai une liste d'élèves notés absent ou présent.
J'utilise dans ma feuille 2 une macro pour importer la liste des élèves absents de la feuille 1 dans le tableau de ma feuille 2.
J'aimerais ensuite, dans ma macro, marquer le message suivant automatiquement à côté du prénom de l'elève absent :
"en attente du justificatif d'absence"
Pour cela je voulais utiliser un équivalent de la RechercheV en VBA sur le critère "absent" : Que, si la recherchev trouve absent dans la colonne 2 de la feuille 1, qu'il écrive le message "en attente du justificatif d'absence" dans la colonne 2 de la feuille 2.
La dernière difficulté serait que si jamais il n'y a pas d'élève absent (donc si la recherchev ne trouve pas de champs absent), qu'il écrive un message en colonne 1 "aucun éleve absent".
Comme je suis débutant en VBA je ne maîtrise pas trop l'utilisation des IF et des IFNOT.
Le code VBA de ma macro actuel est le suivant :
Quelqu'un aurait-il une idée de comment faire ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 Sub Test() ' ' Test Macro ' Application.ScreenUpdating = False Dim sh As Worksheet On Error Resume Next For Each sh In Sheets sh.ShowAllData Next sh Dim derlig As Long Dim derlig2 As Long Dim F1 As Worksheet Dim F2 As Worksheet Set F1 = Sheets("Feuil1") Set F2 = Sheets("Feuil2") derlig = F2.Range("A" & Rows.Count).End(xlUp).Row derlig2 = F1.Range("A" & Rows.Count).End(xlUp).Row F2.Range("A2:A" & derlig).ClearContents F2.Range("A2") = F1.Range("A1") 'F2.Range("B2") = F1.Range("D1") F1.Range("A2", "C" & F1.Range("B" & F1.Rows.Count).End(xlUp).Row).AutoFilter Field:=2, Criteria1:="=Absent", Operator:=xlOr F1.Range("A2:A" & derlig2).SpecialCells(xlCellTypeVisible).Copy Destination:=F2.Range("A3") Application.ScreenUpdating = True ' End Sub
Merci d'avance pour vos retours.
PS : Vous trouverez le fichier de travail en pièce jointe.
Partager