Soucis avec ce petit code

dudulleray -  
 dudulleray -
Bonjour, a toutes et tous, forum



Voila ce petit code est sensé effectuer une action en début de chaque mois (le 1)
(1) Décocher des checkboxs(14)
(2) Remettre de couleur bleu des labels(168)

cela a fonctionner aujourd'hui mais a chaque fois que je ferme et réouvre mon fichier
l'action se redéclenche.

j'ai placer une variable Boolean mais soit mon code déconne ou j'ai mal placer quelque chose.

PS: l'action ne doit fonctionner qu'une seule fois par mois.

si quelqu'un svp a le temps de regarder, je l'en remercie par avance.

je vous souhaite une très bonne journée a tous et merci pour votre aide

Cordialement

'*** TEST DATE EFFACER AUTOMATIQUEMENT LABELS ET DECOCHER CHECKBOXS

Public Vider As Boolean

'*** Pour décocher les 14 checkboxs
If Day(Date) = 1 And Not Vider Then
For I = 0 To 13
   Me.Frame5(I) = False
Next I

'*** Pour remettre en bleu les labels (1 à 168)
For I = 1 To 168
   Me.Controls("Label" & I).BackColor = vbBlue
Next I
End If

End With

'*** Pour éviter d'effacer a chaque ouverture du fichier
Vider = True
End Sub
A voir également:

1 réponse

eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonjour,

Vider étant une variable tu la perds à chaque fermeture.
Sert toi plutôt de la propriété Tag d'un des contrôles pour sauvegarder la dernière date de réinit.
Ca sera sauvegardé à l'enregistrement du fichier et tu pourras tester si c'est déjà fait ou non.

eric
0
dudulleray
 
Salut Eric,

Merci pour ta réponse, c'est sympa a toi, mon fichier de compta a un module de classe, pour mes 14 checkboxs et je ne l'ai pas fait seul et ça je ne sais pas faire.

donc le code n'ai pas bon alors ??

Ray
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Dans vbe tu affiche le userform.
Tu affiches les propriétés de TextBox1, tu y vois une propriété Tag qui est à notre disposition pour y mettre ce qu'on veut.
A l'ouverture tu compares la date avec son contenu : si on est un mois après la date mémorisée tu sais qu'il faut que tu nettoies. Et tu stockes la date du jour dans CheckBox1.Tag pour la mémoriser (attention, CheckBox1.Tag est une chaine, il faudra convertir en date avec cdate(), et utiliser format() pour la stocker de façon lisible).
Ton code n'est pas faux, mais il faut le modifier en conséquence...
CheckBox1.Tag sera à utiliser en remplacement de Vider qui est perdu à chaque fermeture du fichier

Si tout ça est du chinois pour toi ou si tu as du mal dépose ton fichier sur cjoint.com et colle ici le lien fourni.

eric
0
dudulleray
 
Re Eric,

Merci pour ton aide et ta réponse, j'ai imprimer tes conseils, je vais faire des essais, après je verrai bien mais pas facile d'envoyer mon fichier compta sans le bricoler un peu beaucoup pour rester discret

question tout de mème svp

supposons que ce soit bon pour le code, que se passe t'il si le fichier n'ai pas ouvert régulièrement

et de surcroi le jour (J) ??

Encore merci bon W-end a toi

Cordialement Raymond
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Ben si tu fais bien les choses il y aura une raz à l'ouverture.
eric
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Heu, je t'ai filé une fausse piste, le tag n'est pas sauvegardé comme je le pensais.
Il faut sauvegarder la date de maj dans une cellule.
Je te met un exemple prochainement.
0