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

aide sur macro : target.value

5 réponses
Avatar
Nicoh
Bonjour à tous,

J’utilise la macro suivante, développée par Stéphane il y a un an :

Application.EnableEvents = False
For lig = 95 To 482 Step 2
If Feuil2.Cells(lig, 1) = "" Then Exit For
Next
If lig > 482 Then MsgBox "complet": Application.EnableEvents =
True: Exit Sub
mycol = Array(0, 1, 9, 24, 39, 45, 51)
For k = 1 To 6
Feuil2.Cells(lig, mycol(k)) = Feuil1.Cells(Target.Row, mycol(k))
If Feuil1.Range("AF" & Target.Row) = "" Then Feuil1.Cells(Target.Row,
mycol(k)) = ""
Next
Target.Value = ""
Application.EnableEvents = True
End If

Si je comprends bien, Target.value = "" efface tout à la fin dans la feuille
active le contenu de la cellule active.
J’aurais besoin de remplacer cette « fonction ».
Au lieu que le contenu seul de la cellule active s’efface, il faudrait que
les cellules 39, 45 et 51 (que l’on retrouve dans l’array) de la ligne active
s’effacent.
Par exemple, actuellement la macro s’exécute et en toute fin efface le
contenu de la cellule (95,39). Il faudrait que la macro se termine en
effaçant les cellules (95,39), (95,45) et (95,51).

Question subsidiaire, quelqu’un pourrait-il m’expliquer les termes :
Application.EnableEvents = False
Application.EnableEvents = True

Je ne comprends pas ce qu’ils impliquent dans la macro.

D’avance, je vous remercie pour vos réponses et vous souhaite une bonne
soirée.

Nicoh

5 réponses

Avatar
isabelle
bonjour Nicoh,

Application.Union(Target, Cells(Target.Row, 45), Cells(Target.Row, 95)).Clear

isabelle

Bonjour à tous,

J’utilise la macro suivante, développée par Stéphane il y a un an :

Application.EnableEvents = False
For lig = 95 To 482 Step 2
If Feuil2.Cells(lig, 1) = "" Then Exit For
Next
If lig > 482 Then MsgBox "complet": Application.EnableEvents =
True: Exit Sub
mycol = Array(0, 1, 9, 24, 39, 45, 51)
For k = 1 To 6
Feuil2.Cells(lig, mycol(k)) = Feuil1.Cells(Target.Row, mycol(k))
If Feuil1.Range("AF" & Target.Row) = "" Then Feuil1.Cells(Target.Row,
mycol(k)) = ""
Next
Target.Value = ""
Application.EnableEvents = True
End If

Si je comprends bien, Target.value = "" efface tout à la fin dans la feuille
active le contenu de la cellule active.
J’aurais besoin de remplacer cette « fonction ».
Au lieu que le contenu seul de la cellule active s’efface, il faudrait que
les cellules 39, 45 et 51 (que l’on retrouve dans l’array) de la ligne active
s’effacent.
Par exemple, actuellement la macro s’exécute et en toute fin efface le
contenu de la cellule (95,39). Il faudrait que la macro se termine en
effaçant les cellules (95,39), (95,45) et (95,51).

Question subsidiaire, quelqu’un pourrait-il m’expliquer les termes :
Application.EnableEvents = False
Application.EnableEvents = True

Je ne comprends pas ce qu’ils impliquent dans la macro.

D’avance, je vous remercie pour vos réponses et vous souhaite une bonne
soirée.

Nicoh



Avatar
Nicoh
Merci beaucoup Isabelle pour ta réponse,

J'ai un souci en ce sens que mes cellules sont fusionnées, donc la macro ne
s'exécute pas.
En défusionnant les cellules cela fonctionne parfaitement, mais j'ai besoin
de garder la fusion des cellules.

Existe-t-il un remède ?

D'avance je te remercie.

Nicoh


bonjour Nicoh,

Application.Union(Target, Cells(Target.Row, 45), Cells(Target.Row, 95)).Clear

isabelle

Bonjour à tous,

J’utilise la macro suivante, développée par Stéphane il y a un an :

Application.EnableEvents = False
For lig = 95 To 482 Step 2
If Feuil2.Cells(lig, 1) = "" Then Exit For
Next
If lig > 482 Then MsgBox "complet": Application.EnableEvents =
True: Exit Sub
mycol = Array(0, 1, 9, 24, 39, 45, 51)
For k = 1 To 6
Feuil2.Cells(lig, mycol(k)) = Feuil1.Cells(Target.Row, mycol(k))
If Feuil1.Range("AF" & Target.Row) = "" Then Feuil1.Cells(Target.Row,
mycol(k)) = ""
Next
Target.Value = ""
Application.EnableEvents = True
End If

Si je comprends bien, Target.value = "" efface tout à la fin dans la feuille
active le contenu de la cellule active.
J’aurais besoin de remplacer cette « fonction ».
Au lieu que le contenu seul de la cellule active s’efface, il faudrait que
les cellules 39, 45 et 51 (que l’on retrouve dans l’array) de la ligne active
s’effacent.
Par exemple, actuellement la macro s’exécute et en toute fin efface le
contenu de la cellule (95,39). Il faudrait que la macro se termine en
effaçant les cellules (95,39), (95,45) et (95,51).

Question subsidiaire, quelqu’un pourrait-il m’expliquer les termes :
Application.EnableEvents = False
Application.EnableEvents = True

Je ne comprends pas ce qu’ils impliquent dans la macro.

D’avance, je vous remercie pour vos réponses et vous souhaite une bonne
soirée.

Nicoh






Avatar
isabelle
bonjour Nicoh,

remplace le par :

Application.Union(Target, Cells(Target.Row, 45), Cells(Target.Row, 95)) = ""

isabelle

Merci beaucoup Isabelle pour ta réponse,

J'ai un souci en ce sens que mes cellules sont fusionnées, donc la macro ne
s'exécute pas.
En défusionnant les cellules cela fonctionne parfaitement, mais j'ai besoin
de garder la fusion des cellules.

Existe-t-il un remède ?

D'avance je te remercie.

Nicoh


Avatar
Nicoh
J'ai honte de ne pas avoir trouver la solution tout seul, comme quoi j'ai
encore énormément de progrès à faire.

Merci de ton aide, je vais pouvoir finaliser ma macro en adaptant le code
aux nombreux cas qui la compose.

bonne soirée,

Nicoh


bonjour Nicoh,

remplace le par :

Application.Union(Target, Cells(Target.Row, 45), Cells(Target.Row, 95)) = ""

isabelle

Merci beaucoup Isabelle pour ta réponse,

J'ai un souci en ce sens que mes cellules sont fusionnées, donc la macro ne
s'exécute pas.
En défusionnant les cellules cela fonctionne parfaitement, mais j'ai besoin
de garder la fusion des cellules.

Existe-t-il un remède ?

D'avance je te remercie.

Nicoh





Avatar
Philippe.R
Bonjour,
En défusionnant les cellules cela fonctionne parfaitement, mais j'ai
besoin
de garder la fusion des cellules.


Si d'aventure les cellules fusionnées sont horizontales, remplace la fusion
par "centrer sur plusieurs colonnes" dans l'alignement horizontal au niveau
de la mise en forme de cellule.
Tu y gagneras en efficacité.
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"Nicoh" a écrit dans le message de
news:
Merci beaucoup Isabelle pour ta réponse,

J'ai un souci en ce sens que mes cellules sont fusionnées, donc la macro
ne
s'exécute pas.
En défusionnant les cellules cela fonctionne parfaitement, mais j'ai
besoin
de garder la fusion des cellules.

Existe-t-il un remède ?

D'avance je te remercie.

Nicoh


bonjour Nicoh,

Application.Union(Target, Cells(Target.Row, 45), Cells(Target.Row,
95)).Clear

isabelle

Bonjour à tous,

J’utilise la macro suivante, développée par Stéphane il y a un an :

Application.EnableEvents = False
For lig = 95 To 482 Step 2
If Feuil2.Cells(lig, 1) = "" Then Exit For
Next
If lig > 482 Then MsgBox "complet":
Application.EnableEvents >> > True: Exit Sub
mycol = Array(0, 1, 9, 24, 39, 45, 51)
For k = 1 To 6
Feuil2.Cells(lig, mycol(k)) = Feuil1.Cells(Target.Row,
mycol(k))
If Feuil1.Range("AF" & Target.Row) = "" Then Feuil1.Cells(Target.Row,
mycol(k)) = ""
Next
Target.Value = ""
Application.EnableEvents = True
End If

Si je comprends bien, Target.value = "" efface tout à la fin dans la
feuille
active le contenu de la cellule active.
J’aurais besoin de remplacer cette « fonction ».
Au lieu que le contenu seul de la cellule active s’efface, il faudrait
que
les cellules 39, 45 et 51 (que l’on retrouve dans l’array) de la ligne
active
s’effacent.
Par exemple, actuellement la macro s’exécute et en toute fin efface le
contenu de la cellule (95,39). Il faudrait que la macro se termine en
effaçant les cellules (95,39), (95,45) et (95,51).

Question subsidiaire, quelqu’un pourrait-il m’expliquer les termes :
Application.EnableEvents = False
Application.EnableEvents = True

Je ne comprends pas ce qu’ils impliquent dans la macro.

D’avance, je vous remercie pour vos réponses et vous souhaite une bonne
soirée.

Nicoh