Code vba ne fonctionne pas

Résolu
Tireur50 Messages postés 12 Date d'inscription vendredi 14 avril 2023 Statut Membre Dernière intervention 8 mai 2023 - 7 mai 2023 à 10:47
Tireur50 Messages postés 12 Date d'inscription vendredi 14 avril 2023 Statut Membre Dernière intervention 8 mai 2023 - 7 mai 2023 à 18:39

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

A voir également:

3 réponses

yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
7 mai 2023 à 12:41

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
Tireur50 Messages postés 12 Date d'inscription vendredi 14 avril 2023 Statut Membre Dernière intervention 8 mai 2023
7 mai 2023 à 16:21

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
yg_be Messages postés 22707 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 19 avril 2024 1 471
7 mai 2023 à 17:44

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
Tireur50 Messages postés 12 Date d'inscription vendredi 14 avril 2023 Statut Membre Dernière intervention 8 mai 2023
7 mai 2023 à 18:39

Le code fonctionne !

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

Merci

Bonne soirée

0