Programmation VBA pour Excel

Bonjour.
Dans un classeur Excel, j’aurais besoin de sélectionner automatiquement la ligne à hauteur de la date du jour (dans la colonne A).
ON m’a donné ce qui devrait fonctionner mais ne fonctionne pas.
Je vous le copie :

Sub HighlightTodayRow()
Dim ws As Worksheet
Dim todayDate As Date
Dim targetRow As Range
’ Spécifiez le nom de la feuille de calcul où vous souhaitez appliquer cette fonctionnalité
Set ws = ThisWorkbook.Sheets(« Plantes »)
’ Récupère la date du jour
todayDate = Date
’ Recherche la ligne correspondante à la date du jour dans la colonne spécifiée (par exemple, colonne A)
Set targetRow = ws.Columns(« A »).Find(What:=todayDate, LookIn:=xlValues, LookAt:=xlWhole)
’ Vérifie si la ligne a été trouvée, puis la sélectionne et la met en surbrillance si c’est le cas
If Not targetRow Is Nothing Then
targetRow.Select
targetRow.EntireRow.Interior.Color = RGB(221, 221, 221) ’ Remplacez par la couleur de surbrillance souhaitée
End If
End Sub

Je n’y connais absolument rien. Si quelqu’un pouvait me dire pourquoi cela ne fonctionne pas, ce serait sympa.
On a essayé aussi avec la mise en forme conditionnelle mais pas plus de succès.
Merci à qui saura me dépanner.

Bonjour
J’ai pas bricolé avec ça depuis depuis des années (je suis bien rouillé fait presque mal comme j’ai eu du mal)
Faut savoir que la date c’est un truc un peu spécial, on a parfois dumal à savoir comment excel va la mettre (dépend des parametres de la region )
Après tu peux faire des essais simplement, par exemple avec une macro, je pars d’un enregistrement bidon et j’ouvre la macro
Pour permettre de comprendre le problème on peut essayer de piger le souci en mettant des espions

Donc pour tester : je met la date via la formule aujourdhui en A7 (et du contenu autour )
et je mets un espion sur « Ladresse » qui va prend la position si cela trouve la date

Je mets ensuite un point d’arret sur cette même ligne en cliquant là ou il y a le point rouge
image
Pareil pour celle en dessous

Pour être sur d’avoir une bonne date j’en met une en A13 moi même, au pire cela devrait la trouver


Execution : On arrive au premier point d’arret, on est dans le If donc cela a forcement trouvé la date
Ladresse n’a pas encore de valeur dans la case espion en bas à droite
La date est bien apparue en A13 mais il y en a une autre au dessus
F5 pour passer à la suite

L’espion a changé c’est A7 qui a été trouvé

F5 pour continuer
Le for each continue car je ne suis pas sorti du mode recherche
On arrive a nouveau dans le IF pour A13

image

Avec espion et point d’arret + l’ajout de valeur test il y a moyen de trouver ce qui cloche

Le problème le plus probable c’est le format de la date, c’est régional, c’est sous plein de forme c’est l’un des trucs casse pieds sous excel. Donc si ta todayDate=Date ne prend pas le bon format de « date » cela ne risque pas de trouver: donc mettre un espion la dessus et un point d’arret juste apres la ligne pour voir sa valeur
Ensuite excel reagit parfois comme si c’etait du texte hors on cherche un truc au format Date
Regarde peut être si tes cellules sont vu au format date ou non, il y a moyen que cela joue aussi
image

le texte de l’essai

Option Explicit

Sub Macro1()
    Dim c As Range
    Dim Laddresse As String
    Range("A1").Select
    Dim MyDate
    MyDate = Date
    Range("A13").Value = MyDate
    For Each c In [A:A]
        If c.Value Like Date Then
            Laddresse = c.Address
            Range(Laddresse).Interior.Color = RGB(221, 0, 0)
        End If
        
    Next
    
End Sub

Hello. merci pour ces explications. je vais essayer de vous suivre demain car, comme dit, je n’y comprend rien dans ces macros et autres :laughing:
J’essaie demain et vous tiens au courant.
Merci et bonne soirée.

Salut. pas encore eu le temps de mettre ma tête là-dedans mais je n’oublie pas de la faire…rapidement.
Bon WE

Salut. j’ai enfin un peu de temps pour mettre ma tête là-dedans.
Mais je suis déjà bloqué car je ne vois pas comment insérer un espion. Je ne parviens pas à avoir le même affichage que toi.
Déjà, si j’emploie la formule AUJOUD’HUI pour une cellule, elle va changer tous les jours.
Je mets une copie d’écran de mon fichier.

J’ai fait ALT-F11 et arrive dans Microsoft Visual Basic mais après ???
Je l’ai dit : je n’y ai jamais rien compris.

J’ai pas ma suite office pour qq jours.
Le plus simple c’est d’enregistrer une « macro »
Faut trouver « Enregistrement d’une macro » et la lancer
on clique sur une case puis on va stopper l’enregistrement de la macro
On peut ensuite l’editer , ce qui mene sur l’outil dans mes captures au dessus

Mais c’est le chemin indirect ça, que j’ai utilisé, pour le chemin le plus direct faut ajouter le « développeur » dans le ruban

1 « J'aime »

OK pour l’option Développeur.
J’ai suivi la première partie de ce que tu m’as expliqué.
Le résultat est que toutes mes dates en colonne A se grises en foncé et celle du jour en rouge…


Après ça, je n’y comprends plus rien :laughing:
Je recommence demain car là, j’ai la tête qui va exploser.
Merci à toi pour ton aide.

Salut à toi.
J’ai abandonné car trop complexe pour mes petites connaissances.
Chaque jour, à la fermeture du fichier, je sélectionne la date du lendemain et l’enregistre tel quel. Ca fonctionne et c’est tout ce qui m’intéressait.
Merci quand même pour ton aide.