[excel] visual basic, compteur

Résolu
Bonjour,

J'aimerais que une macro s'active UNE SEUL FOIS du 1 au 15 janvier de chaque année. J'ai donc penser à un compteur mais je n'arrive pas à le programmer.
voila le programme:
Sub Macro4()
If (Month(Now) = 12 And Day(Now) = 31 Or Day(Now) = 17 Or Day(Now) = 18 Or Day(Now) = 19 Or Day(Now) = 20 Or Day(Now) = 21 Or Day(Now) = 22 Or Day(Now) = 23 Or Day(Now) = 24 Or Day(Now) = 25 Or Day(Now) = 26 Or Day(Now) = 27 Or Day(Now) = 28 Or Day(Now) = 29 Or Day(Now) = 30) Then
x = 0
End If
If (x = 0 And Month(Now) = 1 And (Day(Now) = 1 Or Day(Now) = 2 Or Day(Now) = 3 Or Day(Now) = 4 Or Day(Now) = 5 Or Day(Now) = 6 Or Day(Now) = 7 Or Day(Now) = 8 Or Day(Now) = 9 Or Day(Now) = 10 Or Day(Now) = 11 Or Day(Now) = 12 Or Day(Now) = 13 Or Day(Now) = 14 Or Day(Now) = 15)) Then
For x = 0 To 0
MARCRO4()
x = x + 1
Next x
End If
End Sub
Configuration: Windows XP Internet Explorer 6.0

4 réponses

  1. En plaçant ce code à l'ouverture ...workbook_open

    Sub test()

    Dim Date1 As Date

    Date1 = Date

    If Day(Date1) < 16 And Month(Date1) = 1 Then
    'entre le 1er et le 15 /01
    MsgBox ("avant le 15 du mois " & Month(Date1))
    'execute la macro
    Else
    MsgBox ("on est apres... en fait le " & Day(Date1) & " / " & Month(Date1))
    ne fait rien
    End If
    End sub
    1. Ok c'est super ce que tu me dit de pouvoir affiché le message. cependant j'airemais que ce message apparaisse une seul fois pendans les 15 jours. En fait je vais faire en sorte que le message indique "réinitialiser le tableau" mais il faut le faire que une foi. (en fait c'est un rappel pour réinitialiser que je veux).
      est ce que c'est possible...
      merci d'avance
      1. Désolé j'en ai oublié un bout.

        il faut garder en mémoire sur une feuille l'état du compteur.
        pour simplifier on va dire sur la feuil1 en A1

        Sub test()

        Dim Compteur As Integer
        Dim Date1 As Date

        Date1 = Date
        Compteur = Sheets("Feuil1").Range("A1").Value

        If Day(Date1) < 16 And Month(Date1) = 1 Then
        'entre le 1er et le 15 /01
        MsgBox ("avant le 15 du mois " & Month(Date1))
        If Compteur > 0 Then Exit Sub
        Else
        MsgBox ("on est apres... en fait le " & Day(Date1) & " / " & Month(Date1))
        'Le compteur est remis à zéro
        Sheets("Feuil1").Range("A1").Value = 0
        End If

        End Sub
        1. super merci beaucoup, grâce à toi je peux maintenant créer des fenêtres de dialogue et des compteurs

          à la prochaine, thierry