Cette macro fonctionne sous Excel 2010 et ne fonctionne pas sous Excel 2016

Sub Scroll()

Sheets(1).Select

Ligne = 1

While Range("A" & Ligne) <> Date

Ligne = Ligne + 1

Wend

Range("A" & Ligne).Select

End Sub

Merci pour toute info utile.

Bonjour,
A priori la date du jour n'existe pas pas dans tes données.
Essaie ainsi :

Sub Scroll()
Dim dt As Long, rw
    dt = CLng(Date)
    With Worksheets(1)
        rw = Application.Match(dt, .Columns(1), 0)
        If IsError(rw) Then
            MsgBox "date du jour inexistante", 64, "Information"
        Else
            .Cells(rw, 1).Select
        End If
    End With
End Sub

Bonjour,

merci pour ta réponse, mais le problème vient de la méthode Range, le message d'erreur est "la méthode Range a échoué".

La date est issue d'une autre macro et est bien valide, vérifiée par un Msgbox, la variable Ligne est aussi OK.

????????

re,

votre macro ne trouve pas la date et dépasse le max des lignes

Sub Scroll()

Sheets(1).Select

ligne = 1

While Range("A" & ligne) <> Date And ligne < Rows.Count

ligne = ligne + 1

Wend

Range("A" & ligne).Select

End Sub

c'est dangereux d'utiliser un variable nommé "date" quand VBA utilise aussi ce nom. Je préfères la macro de Jean-Eric pour chercher ce valeur. Elle montre un msgbox en cas d'erreur (et est plus vite).

Bonjour,
Bonjour BsAlv
Une petite mise à jour !?
Mais à mon avis, je p***e dans un violon !...
Cdlt.

Option Explicit

Dim dt As Date  '?

Sub Scroll()
Dim rw
    dt = CLng(dt)
    With Worksheets(1)
        rw = Application.Match(dt, .Columns(1), 0)
        If IsError(rw) Then
            MsgBox "date du jour inexistante", 64, "Information"
        Else
            .Cells(rw, 1).Select
        End If
    End With
End Sub

re,

Pisser dans un violon, quelle belle expression

BatyBaty assigne sa date dans une autre macro, alors je pense qu'on doit le faire comme ça, mais je ne déclare presque jamais (par conviction) mes variables ...

Public MaDate  'As Date

Sub AssignerDate()
     MaDate = DateSerial(2023, 1, 1)
End Sub

Sub Scroll()
     Dim rw, dt As Long
     dt = MaDate
     With Worksheets(1)
          rw = Application.Match(dt, .Columns(1), 0)
          If IsError(rw) Then
               MsgBox "date du jour inexistante", 64, "Information"
          Else
               .Cells(rw, 1).Select
          End If
     End With
End Sub

Merci pour la réponse, je vais essayer ta macro.

cependant je signale que tout marche super sur un ordi avec Excel de MS Office 2010.

Je suis passé à Excel 2016 sur un autre ordi et là j'ai ce problème.

Cordialement

re, okay, à la prochaine ..

Bonjour,

Autant pour moi, je dois perdre la tête.

en fait, cette appli me permet de suivre des évènements depuis l'an 2000.

j'ai donc toutes les dates au delà de la date du jour.

Sur le PC qui me sert de test, les données disponibles s'arrêtaient à la fin de 2022 et donc les dates de 2023 étaient absentes.

J'ai recopié la version à jour de mon PC de travail sur mon PC de test et plus de problèmes.

Désolé de vous avoir fait perdre du temps.

Merci à tous.

Cordialement

Bonjour,
Merci de ce retour !...
Cdlt.

Rechercher des sujets similaires à "cette macro fonctionne 2010 pas 2016"