Selection ligne date du jour

Résolu
Bonjour,
Je débute dans VBA et j apprécierai grandement un peu d'aide.
Dans un fichier excel avec en colonne A la date ( que je remplis chaque jour) je cherche a selectionner la ligne correspondant a la date du jour et pouvoir identifier les valeurs négatives dans chaque colonne (B,C etc..)

merci d'avance

2 réponses

  1. Contributeur
    Bonjour,
    Comprend pas: Si tu écris la date du jour dans la colonne A...

    a mon avis, il manque quelque chose dans ton énoncé

    au besoin:
    Mettre le classeur sans données confidentielles en pièce jointe sur https://www.cjoint.com/
    et coller le raccourci proposé (clic droit) dans le message de réponse
    Dans l'attente

    1. Bonjour,

      Ce code va te permettre déjà de ne pas rentrer la date chaque jour, elle se rentrera toute seule. Ensuite, le code identifie les valeurs négatives de chaque colonne et les colore en rouge.

      A copier directement dans Feuil1 (A condition que tu ailles sur ton fichier tous les jours)

      Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      
      Dim D As Integer
      
      D = DateDiff("d", Cells(1, 1), Date) 'Si la première date que tu as mise dans ton tableau est dans A1, si par exemple elle est en A2, écrire Cells(2, 1)
      
      Cells(D + 1, 1) = Date
      
      End Sub


      Si tu ne vas pas sur ton fichier tous les jours, alors :

      Dim DL As Long
      
      DL = Cells(Application.Rows.Count, 1).End(xlUp).Row
      
      If DL = Date Then
      
      Exit Sub
      
      Else : Cells(DL + 1, 1) = Date
      
      End If
      
      End Sub
      


      Si tu veux colorer les cellules de la ligne qui sont négatives face à la date d'aujourd'hui ou une autre date, à copier dans un nouveau module pour faire un bouton d'exécution :

      Sub TEST()
      
      Dim DL As Long, Ma_Date As Date
      
      DL = Cells(Application.Rows.Count, 1).End(xlUp).Row
      
      If MsgBox("Voulez-vous trouver les valeurs négatives pour la date d'aujourd'hui?", vbYesNo) = vbYes Then
          For i = 1 To DL
              If Range("A" & i) = Date Then
                  Rows(i).Select
                  For Each C In Selection
                      If C < 0 Then
                          C.Font.Color = RGB(255, 0, 0)
                      End If
                  Next C
              Cells(i, 1).Select
              End If
          Next i
      Else
      Ma_Date = InputBox("Entrez la date pour laquelle vous voulez trouver les valeurs négatives en format jj/mm/aaaa")
              For j = 1 To DL
                  If Range("A" & j) = Ma_Date Then
                  Rows(j).Select
                      For Each C In Selection
                          If C < 0 Then
                              C.Font.Color = RGB(255, 0, 0)
                          End If
                      Next C
                      Cells(j, 1).Select
                  End If
              Next j
      End If
      End Sub


      Petit fichier exemple : https://www.cjoint.com/c/EIqjYmRVlhf

      Cordialement.
      1. Merci beaucoup ca marche super !!