Afficher la première cellule Macro

Résolu
Bonjour,

J'ai trouvé une macro qui m'effectue ce que je lui demande ou presque.
Le presque est elle ne m'affiche pas la première ligne correspondante.

Cette commande a pour effet de trouver la date du jour dans un tableau contenant un certain nombre de colonnes et de lignes.

Voila le code :

Private Sub CommandButton3_Click()
'bouton aujourd'hui

Sheets("Planning").Select

Range("a1") = "=MATCH(TODAY(),F:F)"
Cells(Range("a1"), "F").Activate
Range("a1").ClearContents

End Sub

Le truc est qu'elle va bien la date du jour mais qu'elle va a la dernière cellule correspondante alors que je voudrais qu'elle aille a la première.

Que rajouter je ne trouve pas ...

A votre disposition si je ne suis pas assez clair.

4 réponses

  1. Bonjour,

    Je suis un peu surpris que le code que tu donnes puisse fonctionner !

    De toutes façons, il serait plus propre d'écrire :

    Option Explicit
    Private Sub CommandButton3_Click()
    'bouton aujourd'hui
    Dim w As Worksheet
    Dim c As Range
    
      Set w = Worksheets("Planning")
      Set c = w.Columns("F").Find(Date, LookIn:=xlValues)
      w.Activate
      c.Activate
      Set w = Nothing
      Set c = Nothing
    
    End Sub

    0
    1. PS: ta macro ne fonctionne pas car il faudrait écrire "=MATCH(TODAY(),F:F;0)" mais ce n'est pas une bonne solution que de conserver ce code.
      0
    2. Bonjour,
      Merci pour cette information.
      Malheureusement j'ai une erreur a l'execution

      Private Sub CommandButton3_Click()
      'Bouton aujourd'hui
      Dim w As Worksheet
      Dim c As Range

      Set w = Worksheets("Planning")
      Set c = w.Columns("F").Find(Date, LookIn:=xlValues)
      w.Activate
      c.Activate
      'Erreur d'execution '91' :
      'Variable objet ou variable de bloc With non définie.

      Set w = Nothing
      Set c = Nothing
      End Sub

      Je suis novice dans la macro...
      Merci pour votre aide.
      0
    3. Au secours,
      A moi,
      A l'aide
      Je suis en calle seche ...
      0
  2. Bonjour,

    Excuse-moi, j'ai été un peu rapide : la fonction Find ne fonctionne pas avec tous les format de date et d'autre part je n'ai pas pris en compte le fait que la date cherchée puisse être absente du planning.

    Finalement l'emploi de la fonction Match est plus judicieux, voici donc un code qui devrait fonctionner nettement mieux :

    Option Explicit
    Private Sub CommandButton3_Click()
    'Bouton aujourd'hui
    Dim w As Worksheet
    Dim l As Double
      Set w = Worksheets("Planning")
      On Error Resume Next
      l = Application.WorksheetFunction.Match(CDbl(Date), w.Range("F:F"), 0)
      On Error GoTo 0
      If l = 0 Then
        MsgBox "La date d'aujourd'hui n'a pas été trouvée dans le planning"
        Exit Sub
      End If
      w.Activate
      w.Cells(l, "F").Activate
      Set w = Nothing
    End Sub
    0
    1. Bonjour, et MERCI !!!!
      Ca fonctionne parfaitement bien.
      Encore merci pour ton implication et gentillesse.
      0
      1. De rien, au plaisir de te relire sur le forum
        0