Set Rg = Intersect(Target, Range([B2], Range("B" & Rows.Count).End(xlUp )))
Mais pourquoi écrire cette ligne :
For Each C In Rg
Parce que Rg est toujours une seule cellule ? non ?
MichD
| Mais pourquoi écrire cette ligne :
| > For Each C In Rg
**** Que penses-tu qu'il se passe si lors d'un copier-coller de plusieurs cellules dans la plage de destination si tu ne boucles pas sur toutes les cellules qui ont été copiées?
**** Que penses-tu qu'il se passe si lors d'un copier-coller de plusieurs cellules dans la
plage de destination
si tu ne boucles pas sur toutes les cellules qui ont été copiées?
**** Que penses-tu qu'il se passe si lors d'un copier-coller de plusieurs cellules dans la plage de destination si tu ne boucles pas sur toutes les cellules qui ont été copiées?
Le dimanche 6 mai 2012 15:43:44 UTC+1, MichD a écrit :
| Mais pourquoi écrire cette ligne :
| > For Each C In Rg
**** Que penses-tu qu'il se passe si lors d'un copier-coller de plusieurs cellules dans la plage de destination si tu ne boucles pas sur toutes les cellules qui ont été copiées?
Le dimanche 6 mai 2012 15:43:44 UTC+1, MichD a écrit :
| Mais pourquoi écrire cette ligne :
| > For Each C In Rg
**** Que penses-tu qu'il se passe si lors d'un copier-coller de plusieurs cellules dans la
plage de destination
si tu ne boucles pas sur toutes les cellules qui ont été copiées?
Le dimanche 6 mai 2012 15:43:44 UTC+1, MichD a écrit :
| Mais pourquoi écrire cette ligne :
| > For Each C In Rg
**** Que penses-tu qu'il se passe si lors d'un copier-coller de plusieurs cellules dans la plage de destination si tu ne boucles pas sur toutes les cellules qui ont été copiées?
**** Que penses-tu qu'il se passe si lors d'un copier-coller de plusieurs cellules dans la plage de destination si tu ne boucles pas sur toutes les cellules qui ont été copiées?
Dans mons cas, la fonction/Procédure n'est appelée que pour mettre le c ontenu de la cellule active en majuscule, dans le Worksheet_Change.
Mais je souffre toujours de l'exécution de la fonction avec l'ancienne va leur de la cellule précédente !!!?
Bonsoir,
**** Que penses-tu qu'il se passe si lors d'un copier-coller de plusieurs cellules dans la
plage de destination
si tu ne boucles pas sur toutes les cellules qui ont été copiées?
Dans mons cas, la fonction/Procédure n'est appelée que pour mettre le c ontenu de la cellule active en majuscule, dans le Worksheet_Change.
Mais je souffre toujours de l'exécution de la fonction avec l'ancienne va leur de la cellule précédente !!!?
**** Que penses-tu qu'il se passe si lors d'un copier-coller de plusieurs cellules dans la plage de destination si tu ne boucles pas sur toutes les cellules qui ont été copiées?
Dans mons cas, la fonction/Procédure n'est appelée que pour mettre le c ontenu de la cellule active en majuscule, dans le Worksheet_Change.
Mais je souffre toujours de l'exécution de la fonction avec l'ancienne va leur de la cellule précédente !!!?
MichD
| Mais je souffre toujours de l'exécution de la fonction avec l'ancienne valeur de la cellule précédente !!!?
Si j'ouvre un nouveau classeur en gardant celui de cette fonction, et j'act ive ces macros, je verrais que la fonction commence à sexécuter tout e seule sans que le nouveau classeur fait appel à cette fonction.
Elle fonctionne comme si elle se charge et s'exécute toute seule !
Salut,
Si j'ouvre un nouveau classeur en gardant celui de cette fonction, et j'act ive ces macros, je verrais que la fonction commence à sexécuter tout e seule sans que le nouveau classeur fait appel à cette fonction.
Elle fonctionne comme si elle se charge et s'exécute toute seule !
Si j'ouvre un nouveau classeur en gardant celui de cette fonction, et j'act ive ces macros, je verrais que la fonction commence à sexécuter tout e seule sans que le nouveau classeur fait appel à cette fonction.
Elle fonctionne comme si elle se charge et s'exécute toute seule !
MichD
| Elle fonctionne comme si elle se charge et s'exécute toute seule !
J'ai fait le test. Chez moi, la fonction s'exécute seulement et seulement s’il y a une modification d'une cellule de la colonne B:B de la feuille où l'action se déroule. Serait-ce que Microsoft a élaboré une version seulement pour toi? ;-)
As-tu réellement copié cette procédure dans le module de la feuille où l'action se déroule?
Attention, si le classeur que tu ouvres en second vient modifier par macro une cellule de la plage "B:B" du classeur déjà ouvert, cela lancera la macro. À défaut de cela, la fonction ne devrait pas s'exécuter.
'-------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) Dim Rg As Range, C As Range Set Rg = Intersect(Target, Range([B2], Range("B" & Rows.Count).End(xlUp))) If Not Rg Is Nothing Then Application.EnableEvents = False For Each C In Rg If C <> "" Then C.Value = LesMajuscules(C) End If Next Application.EnableEvents = True End If End Sub '--------------------------------
| Elle fonctionne comme si elle se charge et s'exécute toute seule !
J'ai fait le test. Chez moi, la fonction s'exécute seulement et seulement s’il y a une
modification
d'une cellule de la colonne B:B de la feuille où l'action se déroule. Serait-ce que
Microsoft a
élaboré une version seulement pour toi? ;-)
As-tu réellement copié cette procédure dans le module de la feuille où l'action se
déroule?
Attention, si le classeur que tu ouvres en second vient modifier par macro une cellule de
la
plage "B:B" du classeur déjà ouvert, cela lancera la macro. À défaut de cela, la fonction
ne
devrait pas s'exécuter.
'--------------------------------
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rg As Range, C As Range
Set Rg = Intersect(Target, Range([B2], Range("B" & Rows.Count).End(xlUp)))
If Not Rg Is Nothing Then
Application.EnableEvents = False
For Each C In Rg
If C <> "" Then
C.Value = LesMajuscules(C)
End If
Next
Application.EnableEvents = True
End If
End Sub
'--------------------------------
| Elle fonctionne comme si elle se charge et s'exécute toute seule !
J'ai fait le test. Chez moi, la fonction s'exécute seulement et seulement s’il y a une modification d'une cellule de la colonne B:B de la feuille où l'action se déroule. Serait-ce que Microsoft a élaboré une version seulement pour toi? ;-)
As-tu réellement copié cette procédure dans le module de la feuille où l'action se déroule?
Attention, si le classeur que tu ouvres en second vient modifier par macro une cellule de la plage "B:B" du classeur déjà ouvert, cela lancera la macro. À défaut de cela, la fonction ne devrait pas s'exécuter.
'-------------------------------- Private Sub Worksheet_Change(ByVal Target As Range) Dim Rg As Range, C As Range Set Rg = Intersect(Target, Range([B2], Range("B" & Rows.Count).End(xlUp))) If Not Rg Is Nothing Then Application.EnableEvents = False For Each C In Rg If C <> "" Then C.Value = LesMajuscules(C) End If Next Application.EnableEvents = True End If End Sub '--------------------------------