Afficher la première cellule Macro

Résolu
lalalie3 Messages postés 45 Statut Membre -  
Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   -
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. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    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. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
       
      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. lalalie3 Messages postés 45 Statut Membre
       
      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. lalalie3 Messages postés 45 Statut Membre
       
      Au secours,
      A moi,
      A l'aide
      Je suis en calle seche ...
      0
  2. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    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
  3. lalalie3 Messages postés 45 Statut Membre
     
    Bonjour, et MERCI !!!!
    Ca fonctionne parfaitement bien.
    Encore merci pour ton implication et gentillesse.
    0
  4. Patrice33740 Messages postés 8400 Date d'inscription   Statut Membre Dernière intervention   1 784
     
    De rien, au plaisir de te relire sur le forum
    0