Je suis en train d'essayer de rajouter une fonction à un de mes fichiers excel mais je bute un peu sur les évènements en VBA, je m'explique :
Je voudrais qu'un msgbox survienne que dans des conditions bien précises, c'est à dire :
-A la modification d'une cellule d'une feuille
-Qu'une seule fois par feuille mais si l'on change de feuille et l'on revien sur la feuille précédente le message revient à la modification d'une cellule de celle-ci
-Lorsque le mois de l'année de la date d'aujourd'hui ne correspond pas au mois de la feuille => j'ai une feuille par mois (ça j'ai pas de souci j'ai réussi à le coder)
Je sais que pour la modification d'une cellule il faut que j'utilise l'évènement :
Sub Worksheet_Change(Target as Range)
Mais comment faire en sorte qu'il marche qu'une seule fois et que lorsque l'on change de feuille il puisse revenir ?
Re : [VBA] Code évènementiel qui fonctionne qu'une fois par feuille
Bonjour
sans avoir testé :
tu utilises une cellule, quand elle est vide tu actives le code, sinon tu sors de ton code
quand le code es il fonctionne tu écris un 1 dans la cellule
quand tu quittes la feuille (deactivate) ou que tu l'actives tu efface ce 1
Code:
Private Sub Worksheet_Activate()
Range("G1").ClearContents
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$G$1" Then Exit Sub
If Range("G1").Value = "" Then
Range("G1").Value = 1
MsgBox "code actif"
End If
End Sub
Re : [VBA] Code évènementiel qui fonctionne qu'une fois par feuille
Bon bah ça marche très bien merci !
Juste une chose ça ma rajouté une bibliothèque "funcres" dans visual basic
Je suppose qu'elle est utile pour ces fonctions.
Suis-je sûr de ne pas avoir de souci de compatibilité avec des versions plus récentes que excel 2003 et des pc avec excel configuré en anglais, chinois ou autre langue ?