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
    
    0
    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

      0
      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?

        0
    2. Le code fonctionne !

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

      Merci

      Bonne soirée

      0