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

Deux Worksheet_Change successifs

12 réponses
Avatar
Apitos
Bonjour,

Je voulais essaye si deux =E9v=E9nements Worksheet_Change fonctionne en
m=EAme temps.

Alors quand je tape une lettre dans la colonne A de Feuil1, elle sera
copi=E9e dans la colonne A de Feuil2 et se mette en majuscule.

J'ai donc dans la premi=E8re feuille Feuil1 le code poue copier les
lettres :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column =3D 1 And Target.Count =3D 1 Then
[A1:A100].AdvancedFilter Action:=3DxlFilterCopy, _
CopyToRange:=3DSheets("Feuil2").Range("A1"), Unique:=3DTrue
Sheets("Feuil2").Range("A1:A100").Sort
key1:=3DSheets("Feuil2").Range("A1")
End If

End Sub

Dans la deuxieme feuille Feuil2 le code pour mettre en majuscule :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column =3D 1 And Target.Count =3D 1 Then
Target =3D Application.Proper(Target)
End If
End Sub

Mais j'ai une erreur d'ex=E9cution '1004' :

"La m=E9thode AdvancedFilter de la classe Range a =E9chou=E9".

Merci.

10 réponses

1 2
Avatar
LSteph
Bonsoir,
Chaque feuille son évenement, pas de pb,
en revanche:
il y a beaucoup de touches qui ont été frappées sur les claviers des
contributeurs de ce forum
à ce sujet!

Où est défini le nom qui fait que la zone d'extraction puisse être
considérée comme faisant partie de la feuille?

Essaie sans macro de désigner une plage qui n'est pas dans la feuille
pour extraire et tu vas comprendre.

@+

lSteph


Bonjour,

Je voulais essaye si deux événements Worksheet_Change fonctionne en
même temps.

Alors quand je tape une lettre dans la colonne A de Feuil1, elle sera
copiée dans la colonne A de Feuil2 et se mette en majuscule.

J'ai donc dans la première feuille Feuil1 le code poue copier les
lettres :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
[A1:A100].AdvancedFilter Action:=xlFilterCopy, _
CopyToRange:=Sheets("Feuil2").Range("A1"), Unique:=True
Sheets("Feuil2").Range("A1:A100").Sort
key1:=Sheets("Feuil2").Range("A1")
End If

End Sub

Dans la deuxieme feuille Feuil2 le code pour mettre en majuscule :

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target.Count = 1 Then
Target = Application.Proper(Target)
End If
End Sub

Mais j'ai une erreur d'exécution '1004' :

"La méthode AdvancedFilter de la classe Range a échoué".

Merci.



Avatar
Apitos
On 11 avr, 21:23, LSteph wrote:
Bonsoir,
Chaque feuille son évenement, pas de pb,
en revanche:
il y a beaucoup de touches qui ont été frappées sur les claviers des
contributeurs de ce forum
à ce sujet!

Où est défini le nom qui fait que la zone d'extraction puisse être
considérée comme faisant partie de la feuille?

Essaie sans macro de désigner une plage qui n'est pas dans la feuille
pour extraire et tu vas comprendre.

@+

lSteph



Mais le code marchait avant.

les valeurs de la colonne A Feuil1 etaient copiées dans la colonne A
Feuil2.

seulement la mise en majuscule ne se faisait pas.

Mais maintenant le l'operation en tout n'est pas executable !!!!!

je n'ai rien change du tout ....

Avatar
LSteph
Bonjour,

Effectivement, oublie ce que j'ai dit qui ne correspond pas vraiment au
contexte.

Selon ce code...

J'ai testé, chez moi il fonctionne très bien!
Du moins tant que Feuil2 est vide
après c'est une autre histoire:
dans la mesure où c'est la modification de A1 qui provoque l'execution
et que A1 fait partie de la matrice titre de la plage à extraire
Je m'explique :
si en A1 il y avait nom et que l'on change pour noms de façon à
déclancher l'événement
dans feuil2 où il est déjà extrait une fois nom le champ ne correspond
plus et provoque une erreur.
De même si tu fais suppr a1.

Quoi qu'il en soit, quel est le but fondamental de ce procédé?
Cela éclairerait sans doute sur un moyen plus approprié.

Cordialement.

lSteph



On 11 avr, 21:23, LSteph wrote:
Bonsoir,
Chaque feuille son évenement, pas de pb,
en revanche:
il y a beaucoup de touches qui ont été frappées sur les claviers des
contributeurs de ce forum
à ce sujet!

Où est défini le nom qui fait que la zone d'extraction puisse être
considérée comme faisant partie de la feuille?

Essaie sans macro de désigner une plage qui n'est pas dans la feuille
pour extraire et tu vas comprendre.

@+

lSteph



Mais le code marchait avant.

les valeurs de la colonne A Feuil1 etaient copiées dans la colonne A
Feuil2.

seulement la mise en majuscule ne se faisait pas.

Mais maintenant le l'operation en tout n'est pas executable !!!!!

je n'ai rien change du tout ....




Avatar
Apitos
Bonjour L.Steph,

Bon ce je voudrais avoir avec ce code c'est que j'aimerais copier des
données de la colonne B Feuil1 dans La colonne A de Feuil2 et de la
colonne C Feuil1 dans la colonne D Feuil2.

en même temps dans la feuille2 on doit extraire des données de la
colonne A pour les mettre dans la colonne B ...

Le probleme qui se pose c'est que la colonne B n'est jamais documentée
par l'evenement Worksheet_Change.

C'est la cause pour laquelle j'aimerais comprendre si deux evenements
fonctionnent en même temps en execution ...

Comme tu m'as repondu que c'est tout a fait normal, alors pourqoui la
colonne B Feuil2 n'est jamais renseignée ?

Pour l'exemple cjoint n'est pas accessible pour le moment ...

je joindrais le fichier lorsqu'il est disponible.
Avatar
Apitos
Voilà :

http://cjoint.com/?emne40qjh5
Avatar
lSteph
heu...???
Comme tu m'as repondu que c'est tout a fait normal, alors pourqoui la
Je ne vois rien de cela dans cette ficelle?


C'est la cause pour laquelle j'aimerais comprendre si deux evenements
fonctionnent en même temp
Non, l'un après l'autre.


Les codes que tu emploie srenferment bien d'autres instruction que tu
ne pose dans le sujet

Dans la mesure où tu désactive les évènement en début de sub c'est
logique que l'évènnnement de feuil2 ne se déclenche pas et c'est
encore heureux!
vu les tris (qui modifient à leur tour...et re éxtraction et
redéclenchement.
Ce que tu tentes provoquerait une boucle infernale.

Pour la suite je ne comprends pas ce que tu cherche à obtenir en re
faisant des extractuions sans doblons sur chaque colonne , tes données
en feuille 2 n'auront plus rien à voir les unes avec les autres.
Autre source d'erreur désignation2 n'est pas un nom de champ dans
feuil1 il n'y a que désignation.

Ensuite tu refais des extractions dans le private sub de feuille2,
là désolé mais je ne vois vraiment pas où mène tout cela.

Je préfère cèder la place à qui comprendrait mieux.

Cordialement.

lSteph


On 12 avr, 12:57, "Apitos" wrote:
Bonjour L.Steph,

Bon ce je voudrais avoir avec ce code c'est que j'aimerais copier des
données de la colonne B Feuil1 dans La colonne A de Feuil2 et de la
colonne C Feuil1 dans la colonne D Feuil2.

en même temps dans la feuille2 on doit extraire des données de la
colonne A pour les mettre dans la colonne B ...

Le probleme qui se pose c'est que la colonne B n'est jamais documentée
par l'evenement Worksheet_Change.

C'est la cause pour laquelle j'aimerais comprendre si deux evenements
fonctionnent en même temps en execution ...

Comme tu m'as repondu que c'est tout a fait normal, alors pourqoui la
colonne B Feuil2 n'est jamais renseignée ?

Pour l'exemple cjoint n'est pas accessible pour le moment ...

je joindrais le fichier lorsqu'il est disponible.


Avatar
Apitos
heu...???
Comme tu m'as repondu que c'est tout a fait normal, alors pourqoui la
Je ne vois rien de cela dans cette ficelle?


C'est la cause pour laquelle j'aimerais comprendre si deux evenements
fonctionnent en même temp
Non, l'un après l'autre.


Les codes que tu emploie srenferment bien d'autres instruction que tu
ne pose dans le sujet

Dans la mesure où tu désactive les évènement en début de sub c' est
logique que l'évènnnement de feuil2 ne se déclenche pas et c'est
encore heureux!
vu les tris (qui modifient à leur tour...et re éxtraction et
redéclenchement.
Ce que tu tentes provoquerait une boucle infernale.

Pour la suite je ne comprends pas ce que tu cherche à obtenir en re
faisant des extractuions sans doblons sur chaque colonne , tes données
en feuille 2 n'auront plus rien à voir les unes avec les autres.
Autre source d'erreur désignation2 n'est pas un nom de champ dans
feuil1 il n'y a que désignation.

Ensuite tu refais des extractions dans le private sub de feuille2,
là désolé mais je ne vois vraiment pas où mène tout cela.

Je préfère cèder la place à qui comprendrait mieux.

Cordialement.

lSteph



Les données Désignation sur feuil1 sont de syntaxe : X-yyyy-# (par
exemple : Bt-Fromage-1)
Dans la feuil2 elles seront copiées dans la colonne A juste pour voir
les différents PrixU de chaque X-yyyy-# (par exemple :
Désignation Désignation2 PrixU Qté PrixT
Bt-Fromage-1 Fromage 4 2 8
Bt-Fromage-2 Fromage 4.5 3 13.5

Pour designation2 dans feuil2 on extrait que ce qu'il y'a entre les
(-) et (-). Ca veut dire yyyy.
Ces données servent d'intermédiaire pour alimenter la colonne J de
feuil2 mais cette fois pour voir les Qté total d'une désignation ainsi
que PrixT de celui-ci.

Par exemple :

Produit Qté PrixT
Fromage 8.5 21.5

Et puis tout le code que j'utilise vient d'un precieux membre de ce
forum.

Voilà.


Avatar
Apitos
Les données Désignation sur feuil1 sont de syntaxe : X-yyyy-# (par
exemple : Bt-Fromage-1)
Dans la feuil2 elles seront copiées dans la colonne A juste pour voir
les différents PrixU de chaque X-yyyy-# (par exemple :
Désignation Désignation2 PrixU Qté PrixT
Bt-Fromage-1 Fromage 4 2 8
Bt-Fromage-2 Fromage 4.5 3 13.5

Pour designation2 dans feuil2 on extrait que ce qu'il y'a entre les
(-) et (-). Ca veut dire yyyy.
Ces données servent d'intermédiaire pour alimenter la colonne J de
feuil2 mais cette fois pour voir les Qté total d'une désignation ainsi
que PrixT de celui-ci.

Par exemple :

Produit Qté PrixT
Fromage 8.5 21.5

Le code que j'utilise vient d'un brave membre de ce forum.

Voilà !
Avatar
LSteph
Bonsoir Apitos,

Le code que j'utilise vient d'un brave membre de ce forum.


Oui, ou adapté de plusieurs cela je l'ai bien compris, mais très
sincèrement ne m'en veux pas,
je m'y perds dans ce que tu souhaites et peu de temps ce jour pour
regarder davantage c'est pour cela que je préfères laisser ce sujet à
qui aurait mieux cerné.

Amicalement.

lSteph



Les données Désignation sur feuil1 sont de syntaxe : X-yyyy-# (par
exemple : Bt-Fromage-1)
Dans la feuil2 elles seront copiées dans la colonne A juste pour voir
les différents PrixU de chaque X-yyyy-# (par exemple :
Désignation Désignation2 PrixU Qté PrixT
Bt-Fromage-1 Fromage 4 2 8
Bt-Fromage-2 Fromage 4.5 3 13.5

Pour designation2 dans feuil2 on extrait que ce qu'il y'a entre les
(-) et (-). Ca veut dire yyyy.
Ces données servent d'intermédiaire pour alimenter la colonne J de
feuil2 mais cette fois pour voir les Qté total d'une désignation ainsi
que PrixT de celui-ci.

Par exemple :

Produit Qté PrixT
Fromage 8.5 21.5

Le code que j'utilise vient d'un brave membre de ce forum.

Voilà !



Avatar
Daniel
Bonjour.
La macro évènementielle de Feuil2 ne peut être déclenchée par la copie d'une
cellule de Feuil1 sur Feuil2, l'instruction :
Application.EnableEvents est positionnée à "False"
Cordialement.
Daniel
"Apitos" a écrit dans le message de news:

Voilà :

http://cjoint.com/?emne40qjh5
1 2