Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Comment arrêter une macro ?

4 réponses
Avatar
Bre
Bonjour,

Maintenant que je sais faire qq macros sous VB, comme par exemple suivant la
valeur d'une cellule, deux problèmes nouveaux me font face :
- si une cellule a tel caractéristique, une msgbox vient m'en avertir.
Très bien, sauf qu'après, à chaque fois que je me déplace ou que j'écris
dans une autre cellule, la même msgbox réapparait, ennuyeux mais cela me
paraît tout de même logique (...Worksheet_Change). Comment faire alors pour
qu'une fois que j'ai cliqué "Ok" sur ma msgbox (lui disant alors que j'ai
bien été avertit), celle-ci n'apparaisse plus ?

- autre soucis, dans une autre macro, une image clipart apparaît suivant
la valeur d'une autre cellule, c'est bien, c'est ce que je voulais.
Maintenant que je l'ai vu, comment faire pour qu'elle disparaisse (soit au
bout de qq secondes, soit par un clic ou autre solution) ?

A l'avance merci,

Bre

PS : plus que débutant...

4 réponses

Avatar
AlainGG
Essaie donc quelque chose du type :

Dim DéjàDit As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
If Not DéjàDit Then MsgBox "Ceci sera le seul avertissement de la session"
DéjàDit = True
End Sub
--
Alain



Bonjour,

Maintenant que je sais faire qq macros sous VB, comme par exemple suivant la
valeur d'une cellule, deux problèmes nouveaux me font face :
- si une cellule a tel caractéristique, une msgbox vient m'en avertir.
Très bien, sauf qu'après, à chaque fois que je me déplace ou que j'écris
dans une autre cellule, la même msgbox réapparait, ennuyeux mais cela me
paraît tout de même logique (...Worksheet_Change). Comment faire alors pour
qu'une fois que j'ai cliqué "Ok" sur ma msgbox (lui disant alors que j'ai
bien été avertit), celle-ci n'apparaisse plus ?

- autre soucis, dans une autre macro, une image clipart apparaît suivant
la valeur d'une autre cellule, c'est bien, c'est ce que je voulais.
Maintenant que je l'ai vu, comment faire pour qu'elle disparaisse (soit au
bout de qq secondes, soit par un clic ou autre solution) ?

A l'avance merci,

Bre

PS : plus que débutant...





Avatar
Bre
Merci Alain, seulement, j'ai essayé de copier ta macro à la suite de la
mienne, et là ça ne marche plus. Je me dis donc qu'il faut certainement
nommer ma 1ère macro, ou changer le DéjàDit que tu as mis... ? En réalité,
je ne sais pas trop comment faire.
Ma première macro était :

Private Sub Worksheet_Change(ByVal Target As Range)
If [e16] < 10 Then MsgBox ("Attention, minimum de 10 dépassé")
End Sub

Alain lui a répondu:

"AlainGG" a écrit dans le message de
news:
Essaie donc quelque chose du type :

Dim DéjàDit As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
If Not DéjàDit Then MsgBox "Ceci sera le seul avertissement de la
session"

DéjàDit = True
End Sub
--
Alain



Bonjour,

Maintenant que je sais faire qq macros sous VB, comme par exemple
suivant la


valeur d'une cellule, deux problèmes nouveaux me font face :
- si une cellule a tel caractéristique, une msgbox vient m'en
avertir.


Très bien, sauf qu'après, à chaque fois que je me déplace ou que j'écris
dans une autre cellule, la même msgbox réapparait, ennuyeux mais cela me
paraît tout de même logique (...Worksheet_Change). Comment faire alors
pour


qu'une fois que j'ai cliqué "Ok" sur ma msgbox (lui disant alors que
j'ai


bien été avertit), celle-ci n'apparaisse plus ?

- autre soucis, dans une autre macro, une image clipart apparaît
suivant


la valeur d'une autre cellule, c'est bien, c'est ce que je voulais.
Maintenant que je l'ai vu, comment faire pour qu'elle disparaisse (soit
au


bout de qq secondes, soit par un clic ou autre solution) ?

A l'avance merci,

Bre

PS : plus que débutant...







Avatar
AlainGG
Ceci fonctionne :

Dim DéjàDit As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
If [e16]< 10 And Not DéjàDit Then
MsgBox ("Attention, la valeur saisie en E16 est inférieure à 10 !!!")
DéjàDit = True
End If
End Sub

Note : si tu testes <10, pourquoi ton message devrait-il dire "minimum de 10
dépassé" ?

--
Alain



Merci Alain, seulement, j'ai essayé de copier ta macro à la suite de la
mienne, et là ça ne marche plus. Je me dis donc qu'il faut certainement
nommer ma 1ère macro, ou changer le DéjàDit que tu as mis... ? En réalité,
je ne sais pas trop comment faire.
Ma première macro était :

Private Sub Worksheet_Change(ByVal Target As Range)
If [e16] < 10 Then MsgBox ("Attention, minimum de 10 dépassé")
End Sub

Alain lui a répondu:

"AlainGG" a écrit dans le message de
news:
Essaie donc quelque chose du type :

Dim DéjàDit As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
If Not DéjàDit Then MsgBox "Ceci sera le seul avertissement de la
session"

DéjàDit = True
End Sub
--
Alain



Bonjour,

Maintenant que je sais faire qq macros sous VB, comme par exemple
suivant la


valeur d'une cellule, deux problèmes nouveaux me font face :
- si une cellule a tel caractéristique, une msgbox vient m'en
avertir.


Très bien, sauf qu'après, à chaque fois que je me déplace ou que j'écris
dans une autre cellule, la même msgbox réapparait, ennuyeux mais cela me
paraît tout de même logique (...Worksheet_Change). Comment faire alors
pour


qu'une fois que j'ai cliqué "Ok" sur ma msgbox (lui disant alors que
j'ai


bien été avertit), celle-ci n'apparaisse plus ?

- autre soucis, dans une autre macro, une image clipart apparaît
suivant


la valeur d'une autre cellule, c'est bien, c'est ce que je voulais.
Maintenant que je l'ai vu, comment faire pour qu'elle disparaisse (soit
au


bout de qq secondes, soit par un clic ou autre solution) ?

A l'avance merci,

Bre

PS : plus que débutant...












Avatar
Bre
Merci, ça marche. Pour le contenu de mon msgbox, je n'ai pas fait attention.

"AlainGG" a écrit dans le message de
news:
Ceci fonctionne :

Dim DéjàDit As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
If [e16]< 10 And Not DéjàDit Then
MsgBox ("Attention, la valeur saisie en E16 est inférieure à 10
!!!")

DéjàDit = True
End If
End Sub

Note : si tu testes <10, pourquoi ton message devrait-il dire "minimum de
10

dépassé" ?

--
Alain



Merci Alain, seulement, j'ai essayé de copier ta macro à la suite de la
mienne, et là ça ne marche plus. Je me dis donc qu'il faut certainement
nommer ma 1ère macro, ou changer le DéjàDit que tu as mis... ? En
réalité,


je ne sais pas trop comment faire.
Ma première macro était :

Private Sub Worksheet_Change(ByVal Target As Range)
If [e16] < 10 Then MsgBox ("Attention, minimum de 10 dépassé")
End Sub

Alain lui a répondu:

"AlainGG" a écrit dans le message de
news:
Essaie donc quelque chose du type :

Dim DéjàDit As Boolean
Private Sub Worksheet_Change(ByVal Target As Range)
If Not DéjàDit Then MsgBox "Ceci sera le seul avertissement de la
session"

DéjàDit = True
End Sub
--
Alain



Bonjour,

Maintenant que je sais faire qq macros sous VB, comme par exemple
suivant la


valeur d'une cellule, deux problèmes nouveaux me font face :
- si une cellule a tel caractéristique, une msgbox vient m'en
avertir.


Très bien, sauf qu'après, à chaque fois que je me déplace ou que
j'écris




dans une autre cellule, la même msgbox réapparait, ennuyeux mais
cela me




paraît tout de même logique (...Worksheet_Change). Comment faire
alors




pour
qu'une fois que j'ai cliqué "Ok" sur ma msgbox (lui disant alors que
j'ai


bien été avertit), celle-ci n'apparaisse plus ?

- autre soucis, dans une autre macro, une image clipart apparaît
suivant


la valeur d'une autre cellule, c'est bien, c'est ce que je voulais.
Maintenant que je l'ai vu, comment faire pour qu'elle disparaisse
(soit




au
bout de qq secondes, soit par un clic ou autre solution) ?

A l'avance merci,

Bre

PS : plus que débutant...