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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55
|
Dim message As Date, Plage, LaDate
Do
LaDate = InputBox("Saisir la date à rechercher", "SAISIE DE LA DATE", "jj/mm/aaaa")
If Not IsDate(LaDate) Then Exit Sub 'vérifie que la saisie est bien une date
'si la date a été saisie sous une autre forme (ex. 01-02-2005) mais qu'on cherche 01/02/2005
'on doit formater la date
message = CVar(Format(CDate(LaDate), "dd/mm/yyyy")) ' donne "01/02/2005")
'recherche sur la date formatée comme sur la feuille
Set Plage = ActiveCell.CurrentRegion
With Plage
.Find(What:=message, After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
End With
Set Plage = Nothing
'sélection de toute la ligne
Selection.EntireRow.Select
'recopie de la ligne sur la fuille n°2
'permet de copier et coller une ligne sur une autre feuille
Selection.Copy
Sheets("Feuil2").Select
k = ActiveSheet.UsedRange.SpecialCells(xlLastCell).End(xlToLeft).Row + 1
Cells(k, 1).Select
ActiveSheet.Paste
'supprime les lignes vides dans une plage.
Sheets("feuil2").Select
DerniereLigne = ActiveSheet.UsedRange.Rows.Count
Application.ScreenUpdating = False
For R = DerniereLigne To 1 Step -1
If Application.CountA(Rows(R)) = 0 Then Rows(R).Delete
Next R
'permet de resélectionner la dernière cellule sélectionnée (afin de pouvoir réexécuter une nouvelle recherche à partir de l'endroit précédent)
Sheets("feuil1").Select
Set Plage = ActiveCell.CurrentRegion
With Plage
.Find(What:=message, After:=ActiveCell, LookIn:=xlFormulas _
, LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False).Activate
End With
Set Plage = Nothing
'boucle "tant que message= valeur dans la cellule sélectionnée, recommence la recherche"
Loop While message = ActiveCell.Value |
Partager