Je déclenche une macro qui compte des ajouts ou des annulations, selon la
valeur de la cellule.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 8 Then
If Target.Value = "" Then
If MsgBox("S'agit-il d'une annulation?") = vbYes Then
Range("AB10").Value = Range("AB10").Value - 1
Else
Range("AB10").Value = Range("AB10").Value
End If
Else
Range("AB10").Value = Range("AB10").Value + 1
End If
J'ai deux problemes:
-cette macro se "re-déclenche" à la fermeture du classeur s'il y a
effectivement des cellules vides: le décompte devient fastidieux pour
l'utilisateur et donne alors des résultats faux car déjà comptabilisés.
- cette macro ne "voit pas" les cellules dont le contenu est " " ou " " ou
" " (etc, etc,) dans le cas où l'utilisateur a utilisé la souris et la
touche espace pour effacer le contenu de la cellule.
Puis-je éviter le 2eme décompte à la fermeture?
Quelle autre formulation puis-je utiliser pour détecter les cellules qui
contiennent des "espaces vides"?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
LSteph
Bonsoir,
Qu'y a-t-il dans ThisWorkbook?
...
Bonsoir à tous,
Je déclenche une macro qui compte des ajouts ou des annulations, selon la valeur de la cellule.
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 8 Then If Target.Value = "" Then If MsgBox("S'agit-il d'une annulation?") = vbYes Then Range("AB10").Value = Range("AB10").Value - 1 Else Range("AB10").Value = Range("AB10").Value End If Else Range("AB10").Value = Range("AB10").Value + 1 End If
J'ai deux problemes: -cette macro se "re-déclenche" à la fermeture du classeur s'il y a effectivement des cellules vides: le décompte devient fastidieux pour l'utilisateur et donne alors des résultats faux car déjà comptabilisés. - cette macro ne "voit pas" les cellules dont le contenu est " " ou " " ou " " (etc, etc,) dans le cas où l'utilisateur a utilisé la souris et la touche espace pour effacer le contenu de la cellule.
Puis-je éviter le 2eme décompte à la fermeture? Quelle autre formulation puis-je utiliser pour détecter les cellules qui contiennent des "espaces vides"?
Merci +++ de vos suggestions
Bonsoir,
Qu'y a-t-il dans ThisWorkbook?
...
Bonsoir à tous,
Je déclenche une macro qui compte des ajouts ou des annulations, selon la
valeur de la cellule.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 8 Then
If Target.Value = "" Then
If MsgBox("S'agit-il d'une annulation?") = vbYes Then
Range("AB10").Value = Range("AB10").Value - 1
Else
Range("AB10").Value = Range("AB10").Value
End If
Else
Range("AB10").Value = Range("AB10").Value + 1
End If
J'ai deux problemes:
-cette macro se "re-déclenche" à la fermeture du classeur s'il y a
effectivement des cellules vides: le décompte devient fastidieux pour
l'utilisateur et donne alors des résultats faux car déjà comptabilisés.
- cette macro ne "voit pas" les cellules dont le contenu est " " ou " " ou
" " (etc, etc,) dans le cas où l'utilisateur a utilisé la souris et la
touche espace pour effacer le contenu de la cellule.
Puis-je éviter le 2eme décompte à la fermeture?
Quelle autre formulation puis-je utiliser pour détecter les cellules qui
contiennent des "espaces vides"?
Je déclenche une macro qui compte des ajouts ou des annulations, selon la valeur de la cellule.
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 8 Then If Target.Value = "" Then If MsgBox("S'agit-il d'une annulation?") = vbYes Then Range("AB10").Value = Range("AB10").Value - 1 Else Range("AB10").Value = Range("AB10").Value End If Else Range("AB10").Value = Range("AB10").Value + 1 End If
J'ai deux problemes: -cette macro se "re-déclenche" à la fermeture du classeur s'il y a effectivement des cellules vides: le décompte devient fastidieux pour l'utilisateur et donne alors des résultats faux car déjà comptabilisés. - cette macro ne "voit pas" les cellules dont le contenu est " " ou " " ou " " (etc, etc,) dans le cas où l'utilisateur a utilisé la souris et la touche espace pour effacer le contenu de la cellule.
Puis-je éviter le 2eme décompte à la fermeture? Quelle autre formulation puis-je utiliser pour détecter les cellules qui contiennent des "espaces vides"?
Merci +++ de vos suggestions
Daniel
Bonsoir. Je n'ai pas bien compris pourquoi l'évènement se déclanchait à la fermeture du classeur. Ajoute application.enableeventsúlse en début de macro et application.enableevents=true à la fin. Pour les espaces : If trim(Target.Value) = "" Then au lieu de : If Target.Value = "" Then Cordialement. Daniel "ManBas" a écrit dans le message de news:
Bonsoir à tous,
Je déclenche une macro qui compte des ajouts ou des annulations, selon la valeur de la cellule.
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 8 Then If Target.Value = "" Then If MsgBox("S'agit-il d'une annulation?") = vbYes Then Range("AB10").Value = Range("AB10").Value - 1 Else Range("AB10").Value = Range("AB10").Value End If Else Range("AB10").Value = Range("AB10").Value + 1 End If
J'ai deux problemes: -cette macro se "re-déclenche" à la fermeture du classeur s'il y a effectivement des cellules vides: le décompte devient fastidieux pour l'utilisateur et donne alors des résultats faux car déjà comptabilisés. - cette macro ne "voit pas" les cellules dont le contenu est " " ou " " ou " " (etc, etc,) dans le cas où l'utilisateur a utilisé la souris et la touche espace pour effacer le contenu de la cellule.
Puis-je éviter le 2eme décompte à la fermeture? Quelle autre formulation puis-je utiliser pour détecter les cellules qui contiennent des "espaces vides"?
Merci +++ de vos suggestions
Bonsoir.
Je n'ai pas bien compris pourquoi l'évènement se déclanchait à la fermeture
du classeur.
Ajoute application.enableeventsúlse en début de macro et
application.enableevents=true à la fin.
Pour les espaces :
If trim(Target.Value) = "" Then
au lieu de :
If Target.Value = "" Then
Cordialement.
Daniel
"ManBas" <nonospamMaBas@wanadoo.fr> a écrit dans le message de news:
uOMSK7HeHHA.1388@TK2MSFTNGP05.phx.gbl...
Bonsoir à tous,
Je déclenche une macro qui compte des ajouts ou des annulations, selon la
valeur de la cellule.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 8 Then
If Target.Value = "" Then
If MsgBox("S'agit-il d'une annulation?") = vbYes Then
Range("AB10").Value = Range("AB10").Value - 1
Else
Range("AB10").Value = Range("AB10").Value
End If
Else
Range("AB10").Value = Range("AB10").Value + 1
End If
J'ai deux problemes:
-cette macro se "re-déclenche" à la fermeture du classeur s'il y a
effectivement des cellules vides: le décompte devient fastidieux pour
l'utilisateur et donne alors des résultats faux car déjà comptabilisés.
- cette macro ne "voit pas" les cellules dont le contenu est " " ou " "
ou " " (etc, etc,) dans le cas où l'utilisateur a utilisé la souris
et la touche espace pour effacer le contenu de la cellule.
Puis-je éviter le 2eme décompte à la fermeture?
Quelle autre formulation puis-je utiliser pour détecter les cellules qui
contiennent des "espaces vides"?
Bonsoir. Je n'ai pas bien compris pourquoi l'évènement se déclanchait à la fermeture du classeur. Ajoute application.enableeventsúlse en début de macro et application.enableevents=true à la fin. Pour les espaces : If trim(Target.Value) = "" Then au lieu de : If Target.Value = "" Then Cordialement. Daniel "ManBas" a écrit dans le message de news:
Bonsoir à tous,
Je déclenche une macro qui compte des ajouts ou des annulations, selon la valeur de la cellule.
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 8 Then If Target.Value = "" Then If MsgBox("S'agit-il d'une annulation?") = vbYes Then Range("AB10").Value = Range("AB10").Value - 1 Else Range("AB10").Value = Range("AB10").Value End If Else Range("AB10").Value = Range("AB10").Value + 1 End If
J'ai deux problemes: -cette macro se "re-déclenche" à la fermeture du classeur s'il y a effectivement des cellules vides: le décompte devient fastidieux pour l'utilisateur et donne alors des résultats faux car déjà comptabilisés. - cette macro ne "voit pas" les cellules dont le contenu est " " ou " " ou " " (etc, etc,) dans le cas où l'utilisateur a utilisé la souris et la touche espace pour effacer le contenu de la cellule.
Puis-je éviter le 2eme décompte à la fermeture? Quelle autre formulation puis-je utiliser pour détecter les cellules qui contiennent des "espaces vides"?
Merci +++ de vos suggestions
Jacky
Bonsoir,
J'ai pas bien saisie la nécessité de cette macro événementielle
En AB10 =NBVAL(H:H)
Selection de la colonne H Donnée validation Autoriser==> personnalisé Formule==> =GAUCHE(H1;1)<>" " -- Salutations JJ
"ManBas" a écrit dans le message de news:
Bonsoir à tous,
Je déclenche une macro qui compte des ajouts ou des annulations, selon la valeur de la cellule.
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 8 Then If Target.Value = "" Then If MsgBox("S'agit-il d'une annulation?") = vbYes Then Range("AB10").Value = Range("AB10").Value - 1 Else Range("AB10").Value = Range("AB10").Value End If Else Range("AB10").Value = Range("AB10").Value + 1 End If
J'ai deux problemes: -cette macro se "re-déclenche" à la fermeture du classeur s'il y a effectivement des cellules vides: le décompte devient fastidieux pour l'utilisateur et donne alors des résultats faux car déjà comptabilisés. - cette macro ne "voit pas" les cellules dont le contenu est " " ou " " ou " " (etc, etc,) dans le cas où l'utilisateur a utilisé la souris et la touche espace pour effacer le contenu de la cellule.
Puis-je éviter le 2eme décompte à la fermeture? Quelle autre formulation puis-je utiliser pour détecter les cellules qui contiennent des "espaces vides"?
Merci +++ de vos suggestions
Bonsoir,
J'ai pas bien saisie la nécessité de cette macro événementielle
En AB10
=NBVAL(H:H)
Selection de la colonne H
Donnée validation
Autoriser==> personnalisé
Formule==> =GAUCHE(H1;1)<>" "
--
Salutations
JJ
"ManBas" <nonospamMaBas@wanadoo.fr> a écrit dans le message de news:
uOMSK7HeHHA.1388@TK2MSFTNGP05.phx.gbl...
Bonsoir à tous,
Je déclenche une macro qui compte des ajouts ou des annulations, selon la
valeur de la cellule.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 8 Then
If Target.Value = "" Then
If MsgBox("S'agit-il d'une annulation?") = vbYes Then
Range("AB10").Value = Range("AB10").Value - 1
Else
Range("AB10").Value = Range("AB10").Value
End If
Else
Range("AB10").Value = Range("AB10").Value + 1
End If
J'ai deux problemes:
-cette macro se "re-déclenche" à la fermeture du classeur s'il y a
effectivement des cellules vides: le décompte devient fastidieux pour
l'utilisateur et donne alors des résultats faux car déjà comptabilisés.
- cette macro ne "voit pas" les cellules dont le contenu est " " ou " "
ou " " (etc, etc,) dans le cas où l'utilisateur a utilisé la souris
et la touche espace pour effacer le contenu de la cellule.
Puis-je éviter le 2eme décompte à la fermeture?
Quelle autre formulation puis-je utiliser pour détecter les cellules qui
contiennent des "espaces vides"?
J'ai pas bien saisie la nécessité de cette macro événementielle
En AB10 =NBVAL(H:H)
Selection de la colonne H Donnée validation Autoriser==> personnalisé Formule==> =GAUCHE(H1;1)<>" " -- Salutations JJ
"ManBas" a écrit dans le message de news:
Bonsoir à tous,
Je déclenche une macro qui compte des ajouts ou des annulations, selon la valeur de la cellule.
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 8 Then If Target.Value = "" Then If MsgBox("S'agit-il d'une annulation?") = vbYes Then Range("AB10").Value = Range("AB10").Value - 1 Else Range("AB10").Value = Range("AB10").Value End If Else Range("AB10").Value = Range("AB10").Value + 1 End If
J'ai deux problemes: -cette macro se "re-déclenche" à la fermeture du classeur s'il y a effectivement des cellules vides: le décompte devient fastidieux pour l'utilisateur et donne alors des résultats faux car déjà comptabilisés. - cette macro ne "voit pas" les cellules dont le contenu est " " ou " " ou " " (etc, etc,) dans le cas où l'utilisateur a utilisé la souris et la touche espace pour effacer le contenu de la cellule.
Puis-je éviter le 2eme décompte à la fermeture? Quelle autre formulation puis-je utiliser pour détecter les cellules qui contiennent des "espaces vides"?
Merci +++ de vos suggestions
LSteph
re,
(pour le moment pas de retour sur les questions et suggestions...) A l'aveugle, je complète Si dans Thisworkbook, il y a un beforesave qui intervient, il faudrait probablement mettre un application.enableevents = false dedans
@+
lSteph
re,
(pour le moment pas de retour sur les questions et suggestions...)
A l'aveugle, je complète
Si dans Thisworkbook, il y a un beforesave qui intervient, il faudrait
probablement mettre un application.enableevents = false dedans
(pour le moment pas de retour sur les questions et suggestions...) A l'aveugle, je complète Si dans Thisworkbook, il y a un beforesave qui intervient, il faudrait probablement mettre un application.enableevents = false dedans
@+
lSteph
Jacky
Re.....
A l'aveugle, je complète Non Steph, .....pas avec la canne blanche;o))
Ce Msgbox écrit de cette façon
MsgBox("S'agit-il d'une annulation?") = vbYes ne contrôle pas de vbYes
-- Salutations JJ
"LSteph" a écrit dans le message de news: %
re,
(pour le moment pas de retour sur les questions et suggestions...) A l'aveugle, je complète Si dans Thisworkbook, il y a un beforesave qui intervient, il faudrait probablement mettre un application.enableevents = false dedans
@+
lSteph
Re.....
A l'aveugle, je complète
Non Steph, .....pas avec la canne blanche;o))
Ce Msgbox écrit de cette façon
MsgBox("S'agit-il d'une annulation?") = vbYes
ne contrôle pas de vbYes
--
Salutations
JJ
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
%23LQ5t2IeHHA.2188@TK2MSFTNGP04.phx.gbl...
re,
(pour le moment pas de retour sur les questions et suggestions...)
A l'aveugle, je complète
Si dans Thisworkbook, il y a un beforesave qui intervient, il faudrait
probablement mettre un application.enableevents = false dedans
A l'aveugle, je complète Non Steph, .....pas avec la canne blanche;o))
Ce Msgbox écrit de cette façon
MsgBox("S'agit-il d'une annulation?") = vbYes ne contrôle pas de vbYes
-- Salutations JJ
"LSteph" a écrit dans le message de news: %
re,
(pour le moment pas de retour sur les questions et suggestions...) A l'aveugle, je complète Si dans Thisworkbook, il y a un beforesave qui intervient, il faudrait probablement mettre un application.enableevents = false dedans
@+
lSteph
ManBas
Bonjour Daniel, Pardon de n'avoir pas été là pour ta réponse hier soir. Merci beaucoup pour cet apport. Evidemment ça marche. A bientôt
"Daniel" a écrit dans le message de news:
Bonsoir. Je n'ai pas bien compris pourquoi l'évènement se déclanchait à la fermeture du classeur. Ajoute application.enableeventsúlse en début de macro et application.enableevents=true à la fin. Pour les espaces : If trim(Target.Value) = "" Then au lieu de : If Target.Value = "" Then Cordialement. Daniel "ManBas" a écrit dans le message de news:
Bonsoir à tous,
Je déclenche une macro qui compte des ajouts ou des annulations, selon la valeur de la cellule.
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 8 Then If Target.Value = "" Then If MsgBox("S'agit-il d'une annulation?") = vbYes Then Range("AB10").Value = Range("AB10").Value - 1 Else Range("AB10").Value = Range("AB10").Value End If Else Range("AB10").Value = Range("AB10").Value + 1 End If
J'ai deux problemes: -cette macro se "re-déclenche" à la fermeture du classeur s'il y a effectivement des cellules vides: le décompte devient fastidieux pour l'utilisateur et donne alors des résultats faux car déjà comptabilisés. - cette macro ne "voit pas" les cellules dont le contenu est " " ou " " ou " " (etc, etc,) dans le cas où l'utilisateur a utilisé la souris et la touche espace pour effacer le contenu de la cellule.
Puis-je éviter le 2eme décompte à la fermeture? Quelle autre formulation puis-je utiliser pour détecter les cellules qui contiennent des "espaces vides"?
Merci +++ de vos suggestions
Bonjour Daniel,
Pardon de n'avoir pas été là pour ta réponse hier soir.
Merci beaucoup pour cet apport.
Evidemment ça marche.
A bientôt
"Daniel" <dZZZcolardelle@free.fr> a écrit dans le message de news:
eTDmMWIeHHA.4128@TK2MSFTNGP05.phx.gbl...
Bonsoir.
Je n'ai pas bien compris pourquoi l'évènement se déclanchait à la
fermeture du classeur.
Ajoute application.enableeventsúlse en début de macro et
application.enableevents=true à la fin.
Pour les espaces :
If trim(Target.Value) = "" Then
au lieu de :
If Target.Value = "" Then
Cordialement.
Daniel
"ManBas" <nonospamMaBas@wanadoo.fr> a écrit dans le message de news:
uOMSK7HeHHA.1388@TK2MSFTNGP05.phx.gbl...
Bonsoir à tous,
Je déclenche une macro qui compte des ajouts ou des annulations, selon la
valeur de la cellule.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 8 Then
If Target.Value = "" Then
If MsgBox("S'agit-il d'une annulation?") = vbYes Then
Range("AB10").Value = Range("AB10").Value - 1
Else
Range("AB10").Value = Range("AB10").Value
End If
Else
Range("AB10").Value = Range("AB10").Value + 1
End If
J'ai deux problemes:
-cette macro se "re-déclenche" à la fermeture du classeur s'il y a
effectivement des cellules vides: le décompte devient fastidieux pour
l'utilisateur et donne alors des résultats faux car déjà comptabilisés.
- cette macro ne "voit pas" les cellules dont le contenu est " " ou " "
ou " " (etc, etc,) dans le cas où l'utilisateur a utilisé la souris
et la touche espace pour effacer le contenu de la cellule.
Puis-je éviter le 2eme décompte à la fermeture?
Quelle autre formulation puis-je utiliser pour détecter les cellules qui
contiennent des "espaces vides"?
Bonjour Daniel, Pardon de n'avoir pas été là pour ta réponse hier soir. Merci beaucoup pour cet apport. Evidemment ça marche. A bientôt
"Daniel" a écrit dans le message de news:
Bonsoir. Je n'ai pas bien compris pourquoi l'évènement se déclanchait à la fermeture du classeur. Ajoute application.enableeventsúlse en début de macro et application.enableevents=true à la fin. Pour les espaces : If trim(Target.Value) = "" Then au lieu de : If Target.Value = "" Then Cordialement. Daniel "ManBas" a écrit dans le message de news:
Bonsoir à tous,
Je déclenche une macro qui compte des ajouts ou des annulations, selon la valeur de la cellule.
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 8 Then If Target.Value = "" Then If MsgBox("S'agit-il d'une annulation?") = vbYes Then Range("AB10").Value = Range("AB10").Value - 1 Else Range("AB10").Value = Range("AB10").Value End If Else Range("AB10").Value = Range("AB10").Value + 1 End If
J'ai deux problemes: -cette macro se "re-déclenche" à la fermeture du classeur s'il y a effectivement des cellules vides: le décompte devient fastidieux pour l'utilisateur et donne alors des résultats faux car déjà comptabilisés. - cette macro ne "voit pas" les cellules dont le contenu est " " ou " " ou " " (etc, etc,) dans le cas où l'utilisateur a utilisé la souris et la touche espace pour effacer le contenu de la cellule.
Puis-je éviter le 2eme décompte à la fermeture? Quelle autre formulation puis-je utiliser pour détecter les cellules qui contiennent des "espaces vides"?
Merci +++ de vos suggestions
LSteph
Un peu à côté de la plaque Jacky... la prochaine fois fais comme moi!
;o))
Re.....
A l'aveugle, je complète Non Steph, .....pas avec la canne blanche;o))
Ce Msgbox écrit de cette façon
MsgBox("S'agit-il d'une annulation?") = vbYes ne contrôle pas de vbYes
Un peu à côté de la plaque Jacky...
la prochaine fois fais comme moi!
;o))
Re.....
A l'aveugle, je complète
Non Steph, .....pas avec la canne blanche;o))
Ce Msgbox écrit de cette façon
MsgBox("S'agit-il d'une annulation?") = vbYes
ne contrôle pas de vbYes
Un peu à côté de la plaque Jacky... la prochaine fois fais comme moi!
;o))
Re.....
A l'aveugle, je complète Non Steph, .....pas avec la canne blanche;o))
Ce Msgbox écrit de cette façon
MsgBox("S'agit-il d'une annulation?") = vbYes ne contrôle pas de vbYes
ManBas
Merci de ta réponse Jacky. C'est vrai qu'il y a une erreur de transcription.
"Jacky" a écrit dans le message de news: eOdAT$
Re.....
A l'aveugle, je complète Non Steph, .....pas avec la canne blanche;o))
Ce Msgbox écrit de cette façon
MsgBox("S'agit-il d'une annulation?") = vbYes ne contrôle pas de vbYes
-- Salutations JJ
"LSteph" a écrit dans le message de news: %
re,
(pour le moment pas de retour sur les questions et suggestions...) A l'aveugle, je complète Si dans Thisworkbook, il y a un beforesave qui intervient, il faudrait probablement mettre un application.enableevents = false dedans
@+
lSteph
Merci de ta réponse Jacky.
C'est vrai qu'il y a une erreur de transcription.
"Jacky" <dupont@marcel.fr> a écrit dans le message de news:
eOdAT$IeHHA.4964@TK2MSFTNGP04.phx.gbl...
Re.....
A l'aveugle, je complète
Non Steph, .....pas avec la canne blanche;o))
Ce Msgbox écrit de cette façon
MsgBox("S'agit-il d'une annulation?") = vbYes
ne contrôle pas de vbYes
--
Salutations
JJ
"LSteph" <lecocosteph@frite.fr> a écrit dans le message de news:
%23LQ5t2IeHHA.2188@TK2MSFTNGP04.phx.gbl...
re,
(pour le moment pas de retour sur les questions et suggestions...)
A l'aveugle, je complète
Si dans Thisworkbook, il y a un beforesave qui intervient, il faudrait
probablement mettre un application.enableevents = false dedans
Merci de ta réponse Jacky. C'est vrai qu'il y a une erreur de transcription.
"Jacky" a écrit dans le message de news: eOdAT$
Re.....
A l'aveugle, je complète Non Steph, .....pas avec la canne blanche;o))
Ce Msgbox écrit de cette façon
MsgBox("S'agit-il d'une annulation?") = vbYes ne contrôle pas de vbYes
-- Salutations JJ
"LSteph" a écrit dans le message de news: %
re,
(pour le moment pas de retour sur les questions et suggestions...) A l'aveugle, je complète Si dans Thisworkbook, il y a un beforesave qui intervient, il faudrait probablement mettre un application.enableevents = false dedans