[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. super merci beaucoup, grâce à toi je peux maintenant créer des fenêtres de dialogue et des compteurs

    à la prochaine, thierry
    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. 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. 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