Plusieurs Worksheet_Change dans un classeur ?
chossette9
Messages postés
6855
Date d'inscription
Statut
Contributeur
Dernière intervention
-
chossette9 Messages postés 6855 Date d'inscription Statut Contributeur Dernière intervention -
chossette9 Messages postés 6855 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'aurais voulu savoir s'il était possible d'avoir plusieurs routines Worksheet_Change dans un même classeur ? C'est à dire en écrire une sur une feuille pour qu'elle exécute certaines conditions sur cette feuille, et en écrire une sur une autre feuille pour qu'elle exécute d'autres conditions sur cette même feuille ?
Cordialement.
j'aurais voulu savoir s'il était possible d'avoir plusieurs routines Worksheet_Change dans un même classeur ? C'est à dire en écrire une sur une feuille pour qu'elle exécute certaines conditions sur cette feuille, et en écrire une sur une autre feuille pour qu'elle exécute d'autres conditions sur cette même feuille ?
Cordialement.
7 réponses
Bonjour chossette
Non, 1 seule dans laquelle tu écris les différentes conditions de déclenchement ==> suite de if ou de select case
par ex
i
mais ça peut être un truc assez piègeux !!!
tu dis si ça coince: plus on est de fous... ;-)
Michel
Non, 1 seule dans laquelle tu écris les différentes conditions de déclenchement ==> suite de if ou de select case
par ex
i
f not intersect(target, range("A1:A10") is nothing then
tonaction1
end if
if not intersect(target, range("A11:A20") is nothing then
tonaction2
end if
mais ça peut être un truc assez piègeux !!!
tu dis si ça coince: plus on est de fous... ;-)
Michel
En fait ça coince parce que je veux réaliser une action sur une première feuille, et une seconde action sur d'autres feuilles.
J'ai essayé avec la
N'ayant pas mon fichier près de moi (je suis au bureau), je vais essayer de créer rapidement un exemple de mon code macro :
En fait il s'agit d'un fichier pour suivre les résultats de championnats européens, ainsi que les classements des buteurs.
Si tu as besoin du fichier entier pour voir ce que je veux faire, je ne pourrais pas le donner avant ce soir :/
Cordialement.
J'ai essayé avec la
Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)seulement ça fonctionne pas.
N'ayant pas mon fichier près de moi (je suis au bureau), je vais essayer de créer rapidement un exemple de mon code macro :
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Dim feuilles As String, Feuilles2 As String
feuilles = ("Bundesliga, Calcio, Ligue 1, Ligue 2, Liga BBVA, Premier League")
feuilles2 = ("Buts")
If InStr(feuilles, Sh.Name) > 0 Then
macro1
ElseIF InStr(feuilles2, Sh.Name) > 0 Then
macro2
End If
End Sub
En fait il s'agit d'un fichier pour suivre les résultats de championnats européens, ainsi que les classements des buteurs.
Si tu as besoin du fichier entier pour voir ce que je veux faire, je ne pourrais pas le donner avant ce soir :/
Cordialement.
si j'ai compris qu'il s'agit d'un déclenchement d'action suivant la feuille que tu actives
Ca, tu peux l'essayer au bureau! :oD
Michel
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
onglets = Array("feuil1", "feuil2", "feuil3", "feuil4")
num = Application.Match(Sh.Name, onglets, 0)
If num = 2 Then
MsgBox "action2"
Else
MsgBox "action1"
End If
End Sub
Ca, tu peux l'essayer au bureau! :oD
Michel
En fait non je me suis mal exprimé. Je vais essayer d'être clair, mais ça ne va pas être facile car sans le fichier sous les yeux, je crains de ne pouvoir me faire comprendre :
- j'ai une première macro qui doit se déclencher sur l'onglet "Buts". Cet onglet permet de faire un récapitulatif des buts marqués dans chaque match des différents championnats. Je marque donc le championnat, la date et l'heure, le buteur, pour quelle équipe, contre quelle équipe, s'il s'agit d'un CSC, d'un penalty, et le score avec ce but. En colonne O, dès que je marque "X" et appuie sur Entrée, la macro doit me rajouter le but dans l'onglet "Buteurs" (ou dans l'onglet "CSC" si le but est marqué contre son camp par le joueur)
- la seconde macro doit me permettre d'insérer une image dans différentes colonnes des feuilles "Bundesliga", "Calcio", "Ligue 1"... Ces feuilles ont le même modèle.
Lorsque je tape le nom d'un club en colonne E ou en colonne H et que j'appuie sur Entrée, la seconde macro affiche le logo du club a côté.
J'ai déjà créé les deux macro, seulement je ne sais pas comment faire pour les déclencher.
Merci de te pencher sur le problème. Si je ne suis toujours pas assez clair, il faudra attendre ce soir que je puisse envoyer mon fichier sur cjoint.com.
- j'ai une première macro qui doit se déclencher sur l'onglet "Buts". Cet onglet permet de faire un récapitulatif des buts marqués dans chaque match des différents championnats. Je marque donc le championnat, la date et l'heure, le buteur, pour quelle équipe, contre quelle équipe, s'il s'agit d'un CSC, d'un penalty, et le score avec ce but. En colonne O, dès que je marque "X" et appuie sur Entrée, la macro doit me rajouter le but dans l'onglet "Buteurs" (ou dans l'onglet "CSC" si le but est marqué contre son camp par le joueur)
- la seconde macro doit me permettre d'insérer une image dans différentes colonnes des feuilles "Bundesliga", "Calcio", "Ligue 1"... Ces feuilles ont le même modèle.
Lorsque je tape le nom d'un club en colonne E ou en colonne H et que j'appuie sur Entrée, la seconde macro affiche le logo du club a côté.
J'ai déjà créé les deux macro, seulement je ne sais pas comment faire pour les déclencher.
Merci de te pencher sur le problème. Si je ne suis toujours pas assez clair, il faudra attendre ce soir que je puisse envoyer mon fichier sur cjoint.com.
Bonsoir,
me revoilà, cette fois-ci avec mon fichier, qui permettra plus facilement de régler le problème auquel je fais face.
https://www.cjoint.com/?BAstvfrxB4E
J'ai mis les onglets sur lesquels portent les deux macros à tester (celle qui fonctionnera sur l'onglet Bundesliga devra fonctionner pour les onglets Calcio, Ligue 1, Ligue 2, Liga BBVA et Premier League).
Cordialement.
me revoilà, cette fois-ci avec mon fichier, qui permettra plus facilement de régler le problème auquel je fais face.
https://www.cjoint.com/?BAstvfrxB4E
J'ai mis les onglets sur lesquels portent les deux macros à tester (celle qui fonctionnera sur l'onglet Bundesliga devra fonctionner pour les onglets Calcio, Ligue 1, Ligue 2, Liga BBVA et Premier League).
Cordialement.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Ok, bien reçu.
juste jeté un oeil donc... : où sont tes logos de club ?
je regarde dans la journée mais d'autres trucs à faire, sois patient!
Ok, bien reçu.
juste jeté un oeil donc... : où sont tes logos de club ?
je regarde dans la journée mais d'autres trucs à faire, sois patient!
Bonjour Michel,
merci d'y avoir déjà jeté un coup d'oeil.
Alors effectivement pour les logo, j'ai mal joué le coup. Si jamais tu peux tester avec une image qui est sur ton ordinateur, et que ça marche, je retenterais chez moi avec le bon chemin.
Aucun problème si tu as d'autres choses à faire. Mon objectif est que ce fichier soit prêt pour la saison 2012-2013, qui ne commencera que fin Juillet au plus tôt :)
Cordialement.
merci d'y avoir déjà jeté un coup d'oeil.
Alors effectivement pour les logo, j'ai mal joué le coup. Si jamais tu peux tester avec une image qui est sur ton ordinateur, et que ça marche, je retenterais chez moi avec le bon chemin.
Aucun problème si tu as d'autres choses à faire. Mon objectif est que ce fichier soit prêt pour la saison 2012-2013, qui ne commencera que fin Juillet au plus tôt :)
Cordialement.
Bonjour,
Est-vous sur de votre formule, elle devrait correspondre à :
Peut-être un problème de [.... \.... ] qui manque ?
Salutations.
Le Pingou
Est-vous sur de votre formule, elle devrait correspondre à :
ActiveSheet.Pictures.Insert("C:\Users\jpp\Pictures\Divers\an2_pt.jpg").Select
Peut-être un problème de [.... \.... ] qui manque ?
Salutations.
Le Pingou
Bonjour
tiré de mon grenier à adapter: insertion d'images dans un trombinoscope
Evite au maximum les Select-selection et utilise les blocs (with -end with)
tiré de mon grenier à adapter: insertion d'images dans un trombinoscope
design = ThisWorkbook.Path & "\" & Ss_dossier & "\" & ident
'prend en compte le format de la photo
If Dir(design & ".png") <> "" Then design = design & ".png"
If Dir(design & ".jpg") <> "" Then design = design & ".jpg"
If Dir(design & ".jpeg") <> "" Then design = design & ".jpeg"
If Dir(design & ".gif") <> "" Then design = design & ".gif"
'mémorise la photo à afficher
Set cellule = Cells(lig, col)
On Error GoTo absence 'photo non disponible
Set image = ActiveSheet.Pictures.Insert(design)
'insere la photo dans le trombi
With image.ShapeRange
.Top = cellule.Top + 2
.Left = cellule.Left + 1
.Name = "numphoto" & cptr2
.Height = cellule.Height - 3
.Width = cellule.Width - 2
.LockAspectRatio = msoFalse 'garde les proportions de l'original
End With
Exit Sub
absence:
cellule = "photo non disponible"
Evite au maximum les Select-selection et utilise les blocs (with -end with)
J'ai une autre question : quand j'utilise la macro pour insérer les images, cela fonctionne. Seulement, pour la lancer j'appuie sur Entrée. J'arrive donc à la cellule d'en dessous. Je suis donc obligé de préciser que mon image doit s'implanter sur la ligne d'au dessus.
Ce principe ne fonctionne pas si jamais je me mets à taper sur tabulation, ou en utilisant les flèches directionnelles du clavier.
Ma question est donc : y a-t-il possibilité de tester sur quelle touche j'appuie, et donc de varier certaines valeurs en conséquences ?
Cordialement.
Ce principe ne fonctionne pas si jamais je me mets à taper sur tabulation, ou en utilisant les flèches directionnelles du clavier.
Ma question est donc : y a-t-il possibilité de tester sur quelle touche j'appuie, et donc de varier certaines valeurs en conséquences ?
Cordialement.