Excel Downloads
Forum

Précédent   Excel Downloads Forums > Excel > Forum Excel


Réponse
 
LinkBack Outils de la discussion
Vieux 08/07/2006, 21h25   #1 (permalink)
XLDnaute Junior
 
Date d'inscription: juillet 2006
Messages: 85
Par défaut créer 2 macros evenementielles de meme type sur le workbook??

Voilà, j'ai deux macros evenementielles de type worksheet_change , mais avec des target différentes.
Et visiblement, on ne peut pas en créer plusieurs. Pour la deuxieme, excel me dit que le nom de la macro est ambigu.
Tonino7 est déconnecté   Réponse avec citation
ANNONCES
Vieux 08/07/2006, 21h33   #2 (permalink)
XLDnaute Barbatruc
 
Avatar de jmps
 
Date d'inscription: février 2005
Localisation: Saint Philbert de Grand Lieu
Version Excel : Excel XP (PC)
Messages: 4 597
Par défaut Re : créer 2 macros evenementielles de meme type sur le workbook??

Re Tonino,

Ca m'a l'air d'être la suite de ta question précédente.

Si tu posais ta question en entier, ça nous avancerait.

Tu n'as droit qu'à un seul évènement Worksheet_Change par feuille (bah oui c'est comme ça). A toi de tester l'adresse de la Target pour agir en conséquence dans ta macro.

Bonne soirée.
__________________

A+

jmps est déconnecté   Réponse avec citation
Vieux 08/07/2006, 21h46   #3 (permalink)
XLDnaute Barbatruc
 
Avatar de jmps
 
Date d'inscription: février 2005
Localisation: Saint Philbert de Grand Lieu
Version Excel : Excel XP (PC)
Messages: 4 597
Par défaut Re : créer 2 macros evenementielles de meme type sur le workbook??

Je m'explique avant qu'on ne me soupçonne d'avoir "la grosse tête" une fois de plus :

Si tu fais deux Sub Worksheet_Change(blabla...), je ne vois pas comment Excel saurait vers lequel se diriger en cas de changement.

Il faut tester l'adresse de ta cellule modifiée qui est donnée par l'argument Target pour agir en conséquence. Exemple :

Private Sub Worksheet_Change(ByVal Target As Range)
Select Case Target.Address
Case "$A$1"
' Ton traitement pour A1
Case "$A$2"
' Ton traitement pour A2
Case Else
' Ton traitement pour autre chose
End Select
End Sub

Il y a d'autres façons de faire, mais c'est le principe.

Je suis à ta disposition si tu as besoin de plus de précisions.

Bonne soirée.

EDIT : Ceci-dit, c'est vrai que j'ai une grosse tête (sur l'avatar), mais les chevilles ça va...
__________________

A+


Dernière modification par jmps ; 08/07/2006 à 21h49.
jmps est déconnecté   Réponse avec citation
Vieux 09/07/2006, 00h25   #4 (permalink)
XLDnaute Junior
 
Date d'inscription: juillet 2006
Messages: 85
Par défaut Re : créer 2 macros evenementielles de meme type sur le workbook??

lol , nan c'est bon, y'a aucun souci avec la grosse tête. Etant un gros posteurs sur d'autres forums, j'ai l'habitude de casser les nouveaux lol

bon ben, en fait, j'vais te montrer ce que j'ai fait comme macro, parce que là, je bloque et ça m'énerve.



Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim c As Variant
If Target.Address = "$C$5" And Range("C5") <> "" Then
Application.EnableEvents = False
For Each c In Range("f1:f45")
If c <> vide Then
With c.Offset(0, 2)
.Value = c.Value
.Font.Bold = True
c.Offset(0, 1).Value = "Perfect"
End With
Sheets("Feuil2").Range(c.Address) = c.Offset(0, 2).Value
End If
Next c
Else
Range("G:G").Clear
Range("H:H").Clear
Sheets("feuil2").Range("F:F").Clear
End If
Application.EnableEvents = True
End Sub


Là où ça bloque, c'est la derniere partie, avec les "clear". C'est justement ça que j'voulais mettre dans une deuxieme macro evenementielle identique.
En fait, quand j'inscris quelque chose en C5, y'a toutes mes cellules non-vides qui se copient, et puis 2,3 conneries qui s'effectuent. Et ce que je veux, c'est que quand j'efface ce que j'ai marqué en C5, et bien, tout ce qui s'est copié précedemment dans les colonnes s'efface également. Et là, en l'occurence, j'ai 3 colonnes à supprimer, mais j'ai l'impression que la boucle met fait un vilain non-retour, ça s'arrete jamais.(hormis quand je n'ai qu'une seule colonne à effacer, mais 2 ou 3 en meme temps ça marche pas).


vOILà, j'te remercie.
Tonino7 est déconnecté   Réponse avec citation
Vieux 09/07/2006, 00h35   #5 (permalink)
XLDnaute Junior
 
Date d'inscription: juillet 2006
Messages: 85
Par défaut Re : créer 2 macros evenementielles de meme type sur le workbook??

Bon j'ai réussi à faire un clear sur les 2 colonnes G et H, en modifiant la plage comme ceci : Range("G:G", "H:H").clear
mais pour la colonne de la feuil2 à effacer, c'est une autre paire de manche. J'attends ton coup d'main.
Tonino7 est déconnecté   Réponse avec citation
Vieux 09/07/2006, 00h35   #6 (permalink)
XLDnaute Junior
 
Date d'inscription: juillet 2006
Messages: 85
Par défaut Re : créer 2 macros evenementielles de meme type sur le workbook??

Bon j'ai réussi à faire un clear sur les 2 colonnes G et H, en modifiant la plage comme ceci : Range("G:G", "H:H").clear
mais pour la colonne de la feuil2 à effacer, c'est une autre paire de manche. J'attends ton coup d'main.
Tonino7 est déconnecté   Réponse avec citation
Vieux 09/07/2006, 00h55   #7 (permalink)
XLDnaute Barbatruc
 
Date d'inscription: février 2005
Messages: 3 100
Par défaut Re : créer 2 macros evenementielles de meme type sur le workbook??

Bonsoir Amigo José, bonsoir Tonino7, le Forum

Juste une Question, ton évènementielle concerne quelle Feuille ? la Feuil2 ?

Ensuite "Application.EnableEvents = False" est toujours à consommer avec modération car dangereux dans les plantage si il n'est pas restauré....

Bonne Soirée
@+Thierry
_Thierry est déconnecté   Réponse avec citation
Vieux 09/07/2006, 01h00   #8 (permalink)
XLDnaute Junior
 
Date d'inscription: juillet 2006
Messages: 85
Par défaut Re : créer 2 macros evenementielles de meme type sur le workbook??

en fait l'evenementiel, j'lai fait sur le workbook.
Tonino7 est déconnecté   Réponse avec citation
Vieux 09/07/2006, 01h07   #9 (permalink)
Dan
XLDnaute Barbatruc
 
Avatar de Dan
 
Date d'inscription: février 2005
Localisation: Liège
Version Excel : Excel 2004 (MAC)
Messages: 3 551
Par défaut Re : créer 2 macros evenementielles de meme type sur le workbook??

Hello,

Comme le dit Thierry... "Application.EnableEvents = False"...faire gaffe... en tout cas FALSE à remettre à TRUE à la fermeture du fichier !!
Dan est déconnecté   Réponse avec citation
Vieux 09/07/2006, 01h13   #10 (permalink)
XLDnaute Barbatruc
 
Date d'inscription: février 2005
Messages: 3 100
Par défaut Re : créer 2 macros evenementielles de meme type sur le workbook??

Bonsoir Dan, re Tonino7

Oui comme dit Dan

Oui j'ai vu que c'était "Workbook_SheetChange" mais j'ai mal formulé ma question, est-ce que cette évènementielle (la partie "Global all sheets")doit intervenir sur cette fameuse "Feuil2" ?, sinon c'est simple, un test suffit en début de code

Citation:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim c As Range

If Sh.Name <> "Feuil2" Then
Tu noteras "C" as Range mieux que Variant dans ce cas de figure...

Bonne Soirée
@+Thierry
_Thierry est déconnecté   Réponse avec citation
Vieux 09/07/2006, 01h19   #11 (permalink)
XLDnaute Junior
 
Date d'inscription: juillet 2006
Messages: 85
Par défaut Re : créer 2 macros evenementielles de meme type sur le workbook??

j'ai pas tres bien compris ce que tu appelles par GLOBAL ALL SHEETS, mais, en tout cas, l'evenementielle intervient sur la feuil1. Tout se passe sur la feuil1. Et le probleme, c'est que je souhaite que 3 colonnes s'effacent dont 1 colonne de la feuil2 , si une cellule de la feuil1 s'efface.
Tonino7 est déconnecté   Réponse avec citation
Vieux 09/07/2006, 01h28   #12 (permalink)
XLDnaute Barbatruc
 
Date d'inscription: février 2005
Messages: 3 100
Par défaut Re : créer 2 macros evenementielles de meme type sur le workbook??

Re Tonino7

"Global All Sheets" est une expression inventée pour indiquer que cette évènementielle "Workbook_SheetChange" va Interagier sur Toutes les Feuilles Contenues dans la Globalité du Classeur... (c'est comme "Fast Food" et "Restaurant de Restauration Rapide" lol)

Donc si tu n'as pas besoin de faire intervenir ce code sur "GAS" (ça c'est style américain, trois initiales disent tout tout lol) il te suffit de faire une évènementielle en Feuille "Feuil1" (Voir mon Post pour Sacha ce soir "Majuscule", je lui en ai fait une avec le mode d'emploi)


Bonne Soirée
@+Thierry

_Thierry est déconnecté   Réponse avec citation
Vieux 09/07/2006, 01h47   #13 (permalink)
XLDnaute Accro
 
Avatar de Gorfael
 
Date d'inscription: avril 2006
Localisation: Basse Goulaine
Version Excel : Excel 2003 (PC)
Messages: 1 408
Par défaut Re : créer 2 macros evenementielles de meme type sur le workbook??

Salut
le problème est tout simple :
ta macro est activée par une modification de la feuille
comme elle-même modifie la feuille, elle lance une deuxième instance d'elle-même. etc.
il existe une commande VBA qui bloque le lancement des macros événements, mais je ne la retrouve plus
Donc, une solution palliative
Citation:
Public Flag_Var as boolean

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
if Flag_var = true then exit sub
Flag_var = true
...........
tes instructions
...........
Flag_Var = False
end sub
Tant que ta macro ne se sera pas executé jusqu'à la fin, elle courcircuitera les ligne d'instructions.

le mieux serait bien sûr :
Citation:
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Blocage des événements
...........
tes instructions
...........
Déblocage des événements
end sub
A+
Gorfael est déconnecté   Réponse avec citation
Vieux 09/07/2006, 01h56   #14 (permalink)
XLDnaute Barbatruc
 
Date d'inscription: février 2005
Messages: 3 100
Par défaut Re : créer 2 macros evenementielles de meme type sur le workbook??

Salut Gorfael, re le Fil

Euh oui oui, je crois que tout le mode avait bien compris ceci, mais parfois il est bon de faire un rappel explicatif.

Par contre ta boolean ne pourra pas vraiment être efficace de la sorte, il faudrait qu'elle soit initialisée/désinitialisée depuis une macro "tiers" mais pas dans l'évènementielle elle-même....

Pour la commande VBA qui bloque le lancement, c'est bien celle que Tonino a utilisé et dont on a parlé avec Dan.

Mais bon, le problème semble solutionné depuis que Tonino n'a plus besoin de passé par une évènementielle Globale pour Tout le Classeur mais juste un évènementielle sur une seule Feuille.

Bonne nuit
@+Thierry
_Thierry est déconnecté   Réponse avec citation
Vieux 09/07/2006, 10h52   #15 (permalink)
XLDnaute Accro
 
Avatar de Gorfael
 
Date d'inscription: avril 2006
Localisation: Basse Goulaine
Version Excel : Excel 2003 (PC)
Messages: 1 408
Par défaut Re : créer 2 macros evenementielles de meme type sur le workbook??

Citation:
Envoyé par _Thierry
Salut Gorfael, re le Fil

Euh oui oui, je crois que tout le mode avait bien compris ceci, mais parfois il est bon de faire un rappel explicatif.

Par contre ta boolean ne pourra pas vraiment être efficace de la sorte, il faudrait qu'elle soit initialisée/désinitialisée depuis une macro "tiers" mais pas dans l'évènementielle elle-même....

Pour la commande VBA qui bloque le lancement, c'est bien celle que Tonino a utilisé et dont on a parlé avec Dan.

Mais bon, le problème semble solutionné depuis que Tonino n'a plus besoin de passé par une évènementielle Globale pour Tout le Classeur mais juste un évènementielle sur une seule Feuille.

Bonne nuit
@+Thierry
Salut à tous
Merci de ta réponse Thierry, mais entre le moment où j'ai commencé à répondre et celui où j'ai posté, Il s'est écoulé un temps certain, ce qui fait que je n'ai pas vu les posts donnant EnableEvents.

Et j'ai perdu le fil. Habitué à d'autres forums, j'ai du mal à m'y retrouver sur celui-ci, heureusement qu'il y a la notification qui me permet de retourner sur les problèmes qui m'interessent. Mais il va me falloir trouver une autre méthode qu'attendre un post pour retrouver le fil

Pour ma variable boolean, je la déclare en début de module et ça marche, c'est comme ça que je faisais avant de découvrir EnableEvents. Et comme l'aide VBA est toujours aussi pourrie, si tu ne connais pas la fonction exacte, tu ne la retrouves pas (moi, bêtement, je croyais qu'éventuellement une aide pouvait servir à ça)
A+
Gorfael est déconnecté   Réponse avec citation
ANNONCES
Réponse

Liens sociaux

Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui

Discussions similaires
Discussion Auteur Forum Réponses Dernier message
creer un nouveau type de graphique vincente Forum Excel 1 21/06/2005 18h13
2 macros évènementielles??? Jacques Forum Excel Downloads - Archives 2 05/02/2005 00h56
créer un bouton et une feuille type petchy Forum Excel Downloads - Archives 3 03/02/2005 09h38
Macros Evenementielles Vincent Forum Excel Downloads - Archives 0 13/10/2004 19h27
Effacer Workbook.save de mes macros nicole Forum Excel Downloads - Archives 2 03/06/2004 15h26


Fuseau horaire GMT +2. Il est actuellement 05h38.


(C) 2006 Excel Downloads