Code vba ne fonctionne pas

Résolu

Bonjour,

le code ne s'exécute pas à l'ouverture du classeur. 

Voici le code:

Private Sub Workbook_Open()
    Dim todayDate As Date
    todayDate = Date
    
    ' Vérifier si la date est entre le 5 et le 15 de chaque mois
             If Day(todayDate) >= 5 And Day(todayDate) <= 15 Then
             Dim lastRow As Long
            lastRow = Cells(Rows.Count, "A").End(xlUp).Row
        
        ' Vérifier si l'opération n'a pas déjà été enregistrée pour ce mois
               If Month(Cells(lastRow, "A").Value) <> Month(todayDate) Then
        ' Ajouter une nouvelle ligne avec les informations
              Cells(lastRow + 1, "A").Value = todayDate
              Cells(lastRow + 1, "C").Value = "hfdhgfhff"
              Cells(lastRow + 1, "D").Value = "plltisqkjs"
              Cells(lastRow + 1, "F").Value = "aamnxfekl"
              Cells(lastRow + 1, "I").Value = "128"
        End If
    End If
End Sub

Merci de votre aide,
Windows / Edge 113.0.1774.35

3 réponses

  1. Contributeur

    bonjour,

    et ainsi?

    Option Explicit
    
    Private Sub Workbook_Open()
        Dim todayDate As Date
        todayDate = Date
        ' Vérifier si la date est entre le 5 et le 15 de chaque mois
        If Day(todayDate) >= 5 And Day(todayDate) <= 15 Then
                 Dim lastRow As Long
                lastRow = Cells(Rows.Count, "A").End(xlUp).Row
            
            ' Vérifier si l'opération n'a pas déjà été enregistrée pour ce mois
            If Month(Cells(lastRow, "A").Value) <> Month(todayDate) Then
            ' Ajouter une nouvelle ligne avec les informations
                  Cells(lastRow + 1, "A").Value = todayDate
                  Cells(lastRow + 1, "C").Value = "hfdhgfhff"
                  Cells(lastRow + 1, "D").Value = "plltisqkjs"
                  Cells(lastRow + 1, "F").Value = "aamnxfekl"
                  Cells(lastRow + 1, "I").Value = "128"
                  MsgBox ("travail fait, voir ligne " + CStr(lastRow + 1))
            Else
                MsgBox ("deja fait pour ce mois")
            End If
        Else
            MsgBox ("pas le bon jour")
        End If
    End Sub
    
    1. Bonjour,

      Les MsgBox fonctionnent, mais le code ne se lance pas à l'ouverture du classeur.

      Je vais arrêter de me prendre la tête et je vais recommencer un autre code.

      Merci pour votre intervention,

      Bon week end

      1. Contributeur

        Le code ne serait-il pas placé au bon endroit?  Dans l'éditeur VBA, il se trouve bien dans le classeur, pas dans un module de code indépendant?

    2. Le code fonctionne !

      J'ai tout effacé et recommencé, en prenant soin de bien placer le code.

      Merci

      Bonne soirée