Recherche d'une date dans une feuille variable en VBA
Voici une description de l'application:
- À partir de quelques Feuilles-Sources de travail, je génère la semaine de travail d'un livreur dans un Calendrier.
- Pour chaque livraison, des informations sont affichées dans une cellule et aussi dans les commentaires de celle-ci, dont le nom de la Feuille-Source et la Date.
- Dans les Feuilles-Sources, j'ai plein d'informations pour chacune des livraisons.
- Je désire à partir du Calendrier, en cliquant sur une cellule, accéder à la Source des données.
Mon problème:
J'extrait des commentaires d'une cellule, le nom de la Feuille-Source et la date.
J'accède à cette feuille, mais je ne réussi pas me positionner sur la date donnée avec la fonction Find.
Le format de date dans les Feuilles sources jjj aaaa-mm-jj. Extrait de la variable Commentaire, "aaaa-mm-jj"
Ma macro:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Retracer la Source
Dim Commentaire, Feuille As String
Dim Pos As Integer
Dim DateZ As Date
If ActiveCell.Address <> Range("SemaineDébutant").Address Then
Commentaire = ActiveCell.Comment.Text
Pos = InStr(1, Commentaire, Chr$(10))
Feuille = Left$(Commentaire, Pos - 1)
DateZ = CDate(Mid$(Commentaire, Pos + 1, 10))
If IsDate(DateZ) Then
Worksheets(Feuille).Activate
Cells.Find(What:=DateZ, LookAt:=xlPart).Activate
End If
End If
End Sub |
Merci à l'avance de l'attention que vous porterez à ma demande.
Recherche d'une date dans une feuille variable en VBA
J'ai finalement trouvé...
À Cells.Find(What:=DateZ, LookAt:=xlPart).Activate, j'ai ajouté le nom de la feuille. Donc:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'Retracer la Source
Dim Commentaire, Feuille As String
Dim Pos As Integer
Dim DateZ As Date
If ActiveCell.Address <> Range("SemaineDébutant").Address Then
If Not ActiveCell.Comment Is Nothing Then
Commentaire = ActiveCell.Comment.Text
Pos = InStr(1, Commentaire, Chr$(10))
Feuille = Left$(Commentaire, Pos - 1)
DateZ = CDate(Mid$(Commentaire, Pos + 1, 10))
If IsDate(DateZ) Then
Worksheets(Feuille).Activate
Worksheets(Feuille).Cells.Find(What:=DateZ, LookAt:=xlPart).Activate
End If
End If
End If
End Sub |