Macro activer cellule hier

Résolu
mchotard Messages postés 474 Date d'inscription   Statut Membre Dernière intervention   -  
mchotard Messages postés 474 Date d'inscription   Statut Membre Dernière intervention   -

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

6 réponses

  1. PapyLuc51 Messages postés 4569 Date d'inscription   Statut Membre Dernière intervention   1 511
     

    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
  2. mchotard Messages postés 474 Date d'inscription   Statut Membre Dernière intervention   44
     

    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
  3. PapyLuc51 Messages postés 4569 Date d'inscription   Statut Membre Dernière intervention   1 511
     

    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
  4. mchotard Messages postés 474 Date d'inscription   Statut Membre Dernière intervention   44
     

    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. PapyLuc51 Messages postés 4569 Date d'inscription   Statut Membre Dernière intervention   1 511
     

    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
  7. mchotard Messages postés 474 Date d'inscription   Statut Membre Dernière intervention   44
     

    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