Code vba ne fonctionne pas

Résolu
Tireur50 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -  
Tireur50 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention   -

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. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 588
     

    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
  2. Tireur50 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
     

    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. yg_be Messages postés 23437 Date d'inscription   Statut Contributeur Dernière intervention   1 588
       

      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
  3. Tireur50 Messages postés 12 Date d'inscription   Statut Membre Dernière intervention  
     

    Le code fonctionne !

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

    Merci

    Bonne soirée

    0