aide sur macro : target.value

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #5334841
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



Nicoh
Le #5334791
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






isabelle
Le #5334741
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


Nicoh
Le #5334681
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





Philippe.R
Le #5334551
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" 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








Publicité
Poster une réponse
Anonyme