[excel] visual basic, compteur

Résolu
thierry -  
 thierry -
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. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    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
    0
  2. thierry
     
    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
    0
  3. Bidouilleu_R Messages postés 1209 Statut Membre 296
     
    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
    0
  4. thierry
     
    super merci beaucoup, grâce à toi je peux maintenant créer des fenêtres de dialogue et des compteurs

    à la prochaine, thierry
    0