Plusieurs Worksheet_Change dans un classeur ?
Fermé
chossette9
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
-
18 janv. 2012 à 07:48
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 - 23 janv. 2012 à 14:13
chossette9 Messages postés 4239 Date d'inscription lundi 20 avril 2009 Statut Contributeur Dernière intervention 12 septembre 2014 - 23 janv. 2012 à 14:13
A voir également:
- Plusieurs Worksheet_Change dans un classeur ?
- Private sub worksheet_change(byval target as range) ne fonctionne pas - Forum VB / VBA
7 réponses
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 18/01/2012 à 09:41
Modifié par michel_m le 18/01/2012 à 09:41
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
chossette9
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 308
18 janv. 2012 à 09:46
18 janv. 2012 à 09:46
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.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 18/01/2012 à 10:05
Modifié par michel_m le 18/01/2012 à 10:05
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
chossette9
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 308
18 janv. 2012 à 10:12
18 janv. 2012 à 10:12
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.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
18 janv. 2012 à 11:13
18 janv. 2012 à 11:13
OK pour ce soir
chossette9
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 308
18 janv. 2012 à 19:23
18 janv. 2012 à 19:23
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
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
19 janv. 2012 à 08:48
19 janv. 2012 à 08:48
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!
chossette9
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 308
19 janv. 2012 à 09:26
19 janv. 2012 à 09:26
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.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
19 janv. 2012 à 12:21
19 janv. 2012 à 12:21
OK, Merci
De toutes façons le top one c'est le Barça... :o)
De toutes façons le top one c'est le Barça... :o)
chossette9
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 308
Modifié par chossette9 le 19/01/2012 à 17:56
Modifié par chossette9 le 19/01/2012 à 17:56
Ca on n'en doute pas, même si je suis un peu plus 'Parisien' dans l'âme :)
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
19 janv. 2012 à 17:58
19 janv. 2012 à 17:58
je regarde demain matin ( ton pb, pas le PSG) à la fraiche
chossette9
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 308
19 janv. 2012 à 20:53
19 janv. 2012 à 20:53
Okay !
Merci de prévenir. Bonne soirée !
Merci de prévenir. Bonne soirée !
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
Modifié par Le Pingou le 19/01/2012 à 22:33
Modifié par Le Pingou le 19/01/2012 à 22:33
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
chossette9
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 308
19 janv. 2012 à 22:40
19 janv. 2012 à 22:40
Pour le moment le code plante à l'appel de la fonction, il m'ouvre une popup avec
'Erreur de compilation : erreur de syntaxe'
'Erreur de compilation : erreur de syntaxe'
Le Pingou
Messages postés
12187
Date d'inscription
mercredi 11 août 2004
Statut
Contributeur
Dernière intervention
14 novembre 2024
1 449
20 janv. 2012 à 00:09
20 janv. 2012 à 00:09
Bonjour,
Si vous sortez de la routine principal vous pouvez passer la valeur de (Target.value) à un argument de votre procédue secondaire .
Sub secondaire ( targetval as string)
......
Club=targetval
....
End sub
Salutations.
Le Pingou
Si vous sortez de la routine principal vous pouvez passer la valeur de (Target.value) à un argument de votre procédue secondaire .
Sub secondaire ( targetval as string)
......
Club=targetval
....
End sub
Salutations.
Le Pingou
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
Modifié par michel_m le 20/01/2012 à 07:45
Modifié par michel_m le 20/01/2012 à 07:45
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)
chossette9
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 308
20 janv. 2012 à 09:02
20 janv. 2012 à 09:02
Merci !! J'arrive à ajouter mes images dans le classeur en m'inspirant de ta macro ci-dessus.
Maintenant, comment dois-je faire pour que l'image s'adapte à la taille de la cellule ?
Maintenant, comment dois-je faire pour que l'image s'adapte à la taille de la cellule ?
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
20 janv. 2012 à 09:18
20 janv. 2012 à 09:18
bin tu as
.Height = cellule.Height - 3
.Width = cellule.Width - 2
.LockAspectRatio = msoFalse 'garde les proportions de l'original
-3 et -2 sont à adapter avec des essais
je bosse sur ton classement ; je vais te donner une proposition mais avec pas mal de questions
a' tadleur
.Height = cellule.Height - 3
.Width = cellule.Width - 2
.LockAspectRatio = msoFalse 'garde les proportions de l'original
-3 et -2 sont à adapter avec des essais
je bosse sur ton classement ; je vais te donner une proposition mais avec pas mal de questions
a' tadleur
chossette9
Messages postés
4239
Date d'inscription
lundi 20 avril 2009
Statut
Contributeur
Dernière intervention
12 septembre 2014
1 308
23 janv. 2012 à 14:13
23 janv. 2012 à 14:13
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.