Macro activer cellule hier

Résolu
mchotard Messages postés 491 Statut Membre -  
mchotard Messages postés 491 Statut Membre -

Bonjour

Mon fichier comporte en A tous les jours de l'année et en B les montant que je dois entrer

Voilà j'ai cette macro qui me sélection bien la cellule à coté de la date d'aujourd'hui.

Sub Aujourdhui()
Dim i As Integer
i = Application.WorksheetFunction.Match(CLng(Date) - 1, Range("A:A"), 0)
Range("A" & i).Activate
ActiveCell.Offset(1, 1).Select
End Sub

Mais comme je rentre mes données à la date d'hier, je ne vois pas comment modifier ma macro.

J'ai tout essayé 

ActiveCell.Offset(-1, 1).Select et autre mais rien ne fonctionne.

Pouvez-vous corriger ma macro

Grand merci

A voir également:

6 réponses

PapyLuc51 Messages postés 5089 Statut Membre 1 491
 

Bonjour

Si j'ai bien compris il faut sélectionner la cellule B en face de la date du 23 mai par rapport à la date d''aujourd'hui 22 mai.

Je ne suis pas un cador en macro mais après plusieurs essais j'ai trouvé ceci : remplacer le -1 en +1 après (date) et le 1 par 0 sur la dernière ligne

Sub Aujourdhui()
Dim i As Integer
i = Application.WorksheetFunction.Match(CLng(Date) + 1, Range("A:A"), 0)
Range("A" & i).Activate
ActiveCell.Offset(0, 1).Select
End Sub

Cordialement
 

0
mchotard Messages postés 491 Statut Membre 43
 

Merci Papyluc51

J'ai appliquer ta formule, mais sans succès. Par contre j'ai bien pris en compte de mettre +1

mais dans par contre j'ai 

ActiveCell.Offset(0, 1).Select par ActiveCell.Offset(-2, 1).Select

Et cela fonctionne bien désormais. Merci de m'avoir mis sur la bonne route

Bonne soirée et au plaisir peut-être

0
PapyLuc51 Messages postés 5089 Statut Membre 1 491
 

Bonjour mchotard

Tout dépend de ce que tu veux réellement mais entre ton premier code (où il faut remplacer le 1 par 0 pour le décalage des lignes : ActiveCell.Offset(0, 1)) et celui que tu expliques dans ton dernier post c'est la même chose.

Voici les différents essais que j'ai fait :

Sub Aujourdhui()
Dim i As Integer
i = Application.WorksheetFunction.Match(CLng(Date) + 1, Range("A:A"), 0)
Range("A" & i).Activate 'sélectionne la date d'aujourd'hui + 1 jour
ActiveCell.Offset(0, 1).Select 'déplace la sélection d' 1 colonne vers la droite
End Sub

Ça sélectionne la cellule B en regard de la date de demain

Sub Aujourdhui()
Dim i As Integer
i = Application.WorksheetFunction.Match(CLng(Date) , Range("A:A"), 0)
Range("A" & i).Activate 'sélectionne la date d'aujourd'hui
ActiveCell.Offset(0, 1).Select 'déplace la sélection d' 1 colonne vers la droite
End Sub

Ça sélectionne la cellule B en regard de la date d'aujourd'hui

Sub Aujourdhui()
Dim i As Integer
i = Application.WorksheetFunction.Match(CLng(Date) - 1, Range("A:A"), 0)
Range("A" & i).Activate 'sélectionne la date d'aujourd'hui - 1 jour
ActiveCell.Offset(0, 1).Select 'déplace la sélection d' 1 colonne vers la droite
End Sub

Ça sélectionne la cellule B en regard de la date d'hier

Sub Aujourdhui()
Dim i As Integer
i = Application.WorksheetFunction.Match(CLng(Date) + 1, Range("A:A"), 0)
Range("A" & i).Activate 'sélectionne la date d'aujourd'hui + 1 jour
ActiveCell.Offset(-2, 1).Select 'déplace la sélection de 2 lignes vers le haut et d' 1 colonne vers la droite
End Sub

Ça sélectionne la cellule B en regard de la date d'hier

Avec les deux derniers codes ça te mène au même endroit

Cordialement

0
mchotard Messages postés 491 Statut Membre 43
 

Un très cordial merci PapyLuc51 pour ces explications que je vais conserver très précieusement. Car elle sont très claires

Bonne journée

mchotard

0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
PapyLuc51 Messages postés 5089 Statut Membre 1 491
 

Bonjour mchotard

J'ai continué à chercher et finalement il 'y a qu'un seul code à conserver

Sub Aujourdhui()

Dim i As Integer

i = Application.WorksheetFunction.Match(CLng(Date) , Range("A:A"), 0) 
'la valeur de i est le numéro de la ligne où se trouve la date d'aujourd'hui

Range("A" & i).Activate 
'sélectionne la cellule contenant la date d'aujourd'hui (il suffit d'ajouter ou enlever des valeurs à i pour faire remonter ou descendre la sélection ; exemples : Range("A" & i - 1) pour remonter ou Range("A" & i + 1) pour descendre

ActiveCell.Offset(0, 1).Select 
'déplace la sélection d' 1 colonne vers la droite

End Sub

Cordialement

0
mchotard Messages postés 491 Statut Membre 43
 

merci PapyLuc54 pour tes recherches, mais je suis satisfait de tes précédentes réponses et maintenant cela fonctionne comme je le souhaitais.

Bon WE

0