[VBA] Macro evenementielle lors changement
Résolu
Merenptah44
Messages postés
625
Date d'inscription
Statut
Membre
Dernière intervention
-
Merenptah44 Messages postés 625 Date d'inscription Statut Membre Dernière intervention -
Merenptah44 Messages postés 625 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
j'ai une petite question excel enffin plus présisément vba,
précisons le contexte
j'ai une feuille j'ai des constantes dite "environnement"
une autre feuille ou je rentre certaines données dite "input data"
une fois que j'ai rentré mes trucs sur Input data je clique sur un bouton pour lancer des calculs.
jusque là tout va bien
le truc c'est que les données "environnement" serve à un pré-calcul qui ne se fait qu'une seule fois, quel que soit ce qu'on fait sous "input data". Il faut juste relancer ce pré-calcul en cas de modif de "environnement"
ce que je voudrais faire:
que excel reconnaisse que j'ai modif qqch dans "environnement"
que qd je clic sur le bouton dans "input data", il me propose de lancer le pré calcul en me disant que j'ai modif "environnement".
j'ai bien essayé :
dans ma feuille environnement avec bien sur une initialisatio ndans workbook avec :
puis une petit conditionnelle dans la macro associée au bouton sous "input data" du genre :
mais nada ça marcha pas
si quelqu'un à une idée ça m'aiderait pas mal
merci d'avance et bonne journée
j'ai une petite question excel enffin plus présisément vba,
précisons le contexte
j'ai une feuille j'ai des constantes dite "environnement"
une autre feuille ou je rentre certaines données dite "input data"
une fois que j'ai rentré mes trucs sur Input data je clique sur un bouton pour lancer des calculs.
jusque là tout va bien
le truc c'est que les données "environnement" serve à un pré-calcul qui ne se fait qu'une seule fois, quel que soit ce qu'on fait sous "input data". Il faut juste relancer ce pré-calcul en cas de modif de "environnement"
ce que je voudrais faire:
que excel reconnaisse que j'ai modif qqch dans "environnement"
que qd je clic sur le bouton dans "input data", il me propose de lancer le pré calcul en me disant que j'ai modif "environnement".
j'ai bien essayé :
Private Sub Worksheet_Change(ByVal Target As Excel.Range)modif = True End Sub
dans ma feuille environnement avec bien sur une initialisatio ndans workbook avec :
Public modif As Boolean Private Sub Workbook_Open() modif = False End Sub
puis une petit conditionnelle dans la macro associée au bouton sous "input data" du genre :
If (modif = True) Then MsgBox "modif"End If
mais nada ça marcha pas
si quelqu'un à une idée ça m'aiderait pas mal
merci d'avance et bonne journée
A voir également:
- [VBA] Macro evenementielle lors changement
- Changement dns - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Jitbit macro recorder - Télécharger - Confidentialité
- Changement d'écriture facebook - Guide
- Changement d'heure - Guide
2 réponses
bonjour,
bien que ta variable modif soit déclarée en public elle est invisible dans une autre feuille. (j'ai testé)
Pour que ta variable modif soit réellement publique il faut la déclarer dans un module.
Sinon je ne vois pas d'autre erreur dans ton exposé.
A+
louis
bien que ta variable modif soit déclarée en public elle est invisible dans une autre feuille. (j'ai testé)
Pour que ta variable modif soit réellement publique il faut la déclarer dans un module.
Sinon je ne vois pas d'autre erreur dans ton exposé.
A+
louis
juste un petit truc pour détecter de telle erreurs.
mettre un arrèt dés le premier accès au feuille, dans le cas présent dans activesheet ou sheetchange, le point d'arrèt est disponnible en cliquant sur le côté gauche de la fenêtre ou en tapant F9 ( au cas ou tu ne le saurais pas), la ligne est marquée en brun. ensuite taper F8 pour avancé d'un pas après passage d'une variable amener la souris sur le nom de la variable et la valeur est affichée dans une bulle.
pour terminer le pas a pas taper F5.
louis
mettre un arrèt dés le premier accès au feuille, dans le cas présent dans activesheet ou sheetchange, le point d'arrèt est disponnible en cliquant sur le côté gauche de la fenêtre ou en tapant F9 ( au cas ou tu ne le saurais pas), la ligne est marquée en brun. ensuite taper F8 pour avancé d'un pas après passage d'une variable amener la souris sur le nom de la variable et la valeur est affichée dans une bulle.
pour terminer le pas a pas taper F5.
louis
Impeccable, tu avais raison ça marhce
je précise aussi que j'ai fait une petite modif:
Private Sub Worksheet_Change(ByVal target As Excel.Range)
If not(Intersect(target, Range("a1:n37")) Is Nothing) Then
modif = True
End If
End Sub
merci pour ton aide donc je rappelle à celu ique ça pourrait intéresser : penser à mettre modif e nvariable public mais dans un module !!
Merci
je précise aussi que j'ai fait une petite modif:
Private Sub Worksheet_Change(ByVal target As Excel.Range)
If not(Intersect(target, Range("a1:n37")) Is Nothing) Then
modif = True
End If
End Sub
merci pour ton aide donc je rappelle à celu ique ça pourrait intéresser : penser à mettre modif e nvariable public mais dans un module !!
Merci