Déclencher une macro depuis une autre feuille [Résolu]

Messages postés
32
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
17 février 2015
-
Bonjour,


Je suis sur excel 2007, J'ai un petit souci, j'ai une macro qui se déclenche lorsque je change la valeur d'une cellule.
Le problème est que cela ne fonctionne uniquement avec la feuille active.

Mon souci c'est de la faire se déclencher depuis le changement de la valeur d'une cellule d'une autre feuille (en cascade).

Ainsi en changeant la valeur de A5 de la feuille 1
Avec b6 feuille 2 = a5 feuille 1
la macro qui fonctionne sur la feuille 2, je voudrais pourvoir la déclencher depuis la feuille 1 (cellule A5).



La macro qui fonctionne débute ainsi:

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim i As Byte, R As Range
  If Cells(b6) <> "$B$6" Then Exit Sub
  Application.ScreenUpdating = 0
  Application.DisplayAlerts = 0
  With [A6:A36]
    .UnMerge
    .FormulaR1C1 = "=WEEKNUM(RC[1])"



Moi je voudrais pouvoir la déclencher depuis une autre feuille cellule A5


sachant que B6 en feuille 2 = A5 feuille 1

Pouvez vous m'aider
Merci par avance
Afficher la suite 

12 réponses

Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
209
1
Merci
Bonjour,
et ?
Qu'est-ce qui t'empêche alors d'utiliser l'évènement Workbook_SheetChange de ton classeur ?
- Il concerne toutes les feuilles de ton classeur
- le paramètre sh concerne la feuille impactée
- le paramètre target concerne la plage impactée
Veux-tu bien t'y mettre, s'il te plait ?

PS : je te rappelle par ailleurs qu'un évènement Change n'est pas déclenché depuis telle ou telle autre feuille, active ou non, mais lorsqu'une plage de la feuille en cause est modifiée (pour quelque raison que ce soit, manuellement ou par code, depuis cette feuille ou depuis le code, quel que soit l'endroit où se situe ce code) !

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 131 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
209
1
Merci
Oui mais avec Workbook_SheetChange, la macro ne fonctionne pas

Montre ce que tu as écrit dans cet évènement (depuis la ligne Sub ... jusqu'à la ligne End Sub incluses, en exposant :
- l'erreur éventuellement dénoncée
- ce que tu veux que tes instructions fassent exactement.

De manière générale : "ne fonctionne pas" ne nous apprend rien ...

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 131 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
209
1
Merci
Relis-moi, ce que je t'ai demandé, c'est ce que tu as écrit dans l'évènement Workbook_SheetChange et dont tu dis que cela ne "fonctionne pas" !
Par ailleurs :
En fait quand j'utilise Workbook_SheetChange, mes dates changent sur toutes les feuilles (normale), mais l'affichage des numéros de semaine lui ne change pas, rien ne ce passe.

Que sont ces "dates", qui "arrivent" ici sans que l'on sache ce que c'est ?
Comment "changent-elles sur toutes les feuilles" ? Par quels gestes ou code exactement ?

Et que sont ces "numéros de semaine" (qui "arrivent" également ici d'un seul coup, sans que l'on sache ce que c'est) ?

Evite de nous parler de "dates", "numéros de semaine", etc ... qui ne nous disent rien, à nous ! Parle-nous de cellules, de plages, etc ...

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 131 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
209
1
Merci
Ah !
essayons de rester très techniques ===>>
ceci :
La cellule B5 de la feuille 2 = La cellule B5 de la feuille 1

accompagné de ceci :
C'est pour cela que lorsque je rentre une valeur (une date) dans la cellule B5 de la feuille 1, toutes les dates changent pour les deux feuilles

ne nous dit pas comment s'établit cette égalité.
Or, les choses (et donc le traitement) sont très très très différentes selon qu'elle s'établit par application d'une formule en B5 de la feuille 2 ou si elle s'établit par un code dans le module de code de la feuille 1.

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 131 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
209
1
Merci
Désolé, mais je ne peux te répondre VALABLEMENT qu'au vu de ta réponse précise à la question non moins précise que je t'ai posée.
Pour mémoire :
.... ne nous dit pas comment s'établit cette égalité.
Or, les choses (et donc le traitement) sont très très très différentes selon qu'elle s'établit par application d'une formule en B5 de la feuille 2 ou si elle s'établit par un code dans le module de code de la feuille 1.

Dire « Merci » 1

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 131 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
32
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
17 février 2015
0
Merci
oups une petite erreur, la macro qui fonctionne débute ainsi:

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim i As Byte, R As Range
  If Target.Address <> "$B$6" Then Exit Sub
  Application.ScreenUpdating = 0
  Application.DisplayAlerts = 0
  With [A6:A36]
    .UnMerge
    .FormulaR1C1 = "=WEEKNUM(RC[1])"


--
Commenter la réponse de cs_Franck93150
Messages postés
32
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
17 février 2015
0
Merci
Bonjour,

Oui mais avec Workbook_SheetChange, la macro ne fonctionne pas.
Merci pour le conseil.
Merci de ton aide.
Je continue mes recherches et mon apprentissage du VBA (la route est encore longue je sais)
Merci pour ton aide.


--
Whismeril
Messages postés
13412
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 juin 2019
280 -
Bonsoir, ce serait bien aussi que tu apprennes à utiliser la coloration syntaxique.
Commenter la réponse de cs_Franck93150
Messages postés
32
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
17 février 2015
0
Merci
Voila la copie de la macro:


Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Byte, R As Range
If Target.Address <> "$B$6" Then Exit Sub
Application.ScreenUpdating = 0
Application.DisplayAlerts = 0
With [A6:A36]
.UnMerge
.FormulaR1C1 = "=WEEKNUM(RC[1]-1)"
For i = 6 To 36
If Cells(i, 1) = Cells(i + 1, 1) Then
If R Is Nothing Then
Set R = Union(Cells(i, 1), Cells(i + 1, 1))
Else
Set R = Union(R, Cells(i + 1, 1))
End If
R.Interior.ColorIndex = IIf(Cells(i, 1) Mod 2 = 0, 4, 8)
Else
If Not R Is Nothing Then R.Merge 0
Set R = Nothing
End If
Next
[A6].Interior.ColorIndex = IIf([A6] Mod 2 = 0, 4, 8)
.Value = [A6:A36].Value
.VerticalAlignment = xlCenter

End With
Application.DisplayAlerts = 1
End Sub


Je te joint également le fichier sur lequel je travaille, comme support.

La macro fonctionne très bien sur la feuille: Evolution Cde. de Fonds (je l'ai testé sur cette feuille).

ensuite je vais appliqué la macro sur chacune des feuilles (le dimensionnement des feuilles n'est pas le même, il faut que je l'ajuste pour chaque feuille - mais ça pas de problème).

Ce que je veux faire, c'est que toutes modifications de date (et donc de l'application de la macro (adaptée à chaque feuille)) , tous soit commandé par une et une seule cellule: la cellule B5 de la feuille "Crépy".


En fait quand j'utilise Workbook_SheetChange, mes dates changent sur toutes les feuilles (normale), mais l'affichage des numéros de semaine lui ne change pas, rien ne ce passe.
Commenter la réponse de cs_Franck93150
Messages postés
32
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
17 février 2015
0
Merci
Prenons deux feuilles du classeur (par exemple)
Sur la feuille 1
Les cellules b5 à b35 correspondent à toutes les dates du mois.
de même pour le feuille 2
Les cellules b5 à b35 correspondent à toutes les dates du mois.
La cellule B5 de la feuille 2 = La cellule B5 de la feuille 1

C'est pour cela que lorsque je rentre une valeur (une date) dans la cellule B5 de la feuille 1, toutes les dates changent pour les deux feuilles.

ensuite pour chacune des feuilles (feuilles 1 et 2), dans la colonne A (cellules A5 à A35) figure les numéros de semaine correspondant.

et c'est la qu'intervient la macro.
C'est à dire, je l'ai d'abord testée sur la feuille 2, effectivement dans la colonne A, sur la plage de cellules A5 à A35 s'affiche les numéros de semaine correspondant en défusionnant puis en refusionnant les cellules.

Ce que je veux faire, c'est que sur les deux feuilles, j'ai dans la Colonne A la macro qui s"applique sur les cellules A5 à A35, et que tout cela soit commander par une et une seule cellule: la cellule A5 de la feuille 1

--
Commenter la réponse de cs_Franck93150
Messages postés
32
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
17 février 2015
0
Merci
Il ne s'agit pas de rester technique, j'ai simplement expliqué étape par étape ce que voulais faire, et comment j'ai procédé.

Le procéder que j'ai utilisé n'est peut être pas le bon par rapport à ce que je veux faire, peut être est-il plus une contrainte dans le fonctionnement de la macro.

c'est pour cela que j'ai expliqué comment j'ai procéder pour atteindre le résultat escompter.

--
Commenter la réponse de cs_Franck93150
Messages postés
32
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
17 février 2015
0
Merci
Ce n'est pas grave, je vais continuer à chercher de mon côté la solution au problème de ma macro.

Il y a un truc qui coince dans ma macro avec ce que je veux lui faire faire, une erreur.

Je n'arrive pas à comprendre ce qui coince dans ma macro et à quel niveau ca coince.

Souvent quand on cherche une erreur, elle est juste là sous nos yeux on passe dessus et on ne la voit pas.

Merci quand même pour toute l'aide et conseil que tu m'as apporté.

--
Commenter la réponse de cs_Franck93150
Messages postés
32
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
17 février 2015
0
Merci
Bonjour,

Le, problème de ma macro est résolue.

Je vous remercie pour l'aide et les conseils que vous m'avez apportez.

Néanmoins, le l'agressivité et le ton péremptoire utilisé par certains sont en contradiction total avec la charte du site (notamment sur le respect des personnes, .....).

Je cite:

" Montre ce que tu as écrit "

"Relis-moi, ce que je t'ai demandé"

"Evite de nous parler de "dates", "numéros de semaine", etc ... qui ne nous disent rien, à nous ! Parle-nous de cellules, de plages, etc ..."

"ne nous dit pas comment s'établit cette égalité. "

....

j'ai seulement expliqué comment j'ai procéder pour atteindre le résultat escompter.

Pour répondre valablement à ma question sujet de la discussion, il fallait lire la consigne (c'est de la lecture d'énoncé - on apprends cela à l'école primaire), tout était dans la consigne.

quand au parasite (pour ne pas le cité) qui est venu se greffer à la discussion en nous parlant de coloration syntaxique, il ferait mieux de s'attacher à l'essentiel et non à l'accessoire, ce n'est pas la couleur qui fera et fera fonctionner une macro.

Voila j'ai apprécié l'aide et les conseils que vous m'avez apporter, mais je déplore ces comportements qui ternissent le site, sa charte, et l'esprit convivial de partage, ....


Maintenant, modérateur que vous êtes faites ce que vous avez à faire, fermer mon compte si vous le voulez (ce qui est prévisible), mais donnez l'exemple et modérer vous vous même dans les fils de discussion.

Le sujet est maintenant clos, l'utilisateur a aussi le droit d'avoir un avis, d'avoir un ressenti, et de le dire, nous sommes dans une démocratie n'est ce pas (enfin il me semble).
....
--
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
209 > cs_Franck93150
Messages postés
32
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
17 février 2015
-
Oh .. Tu sais ? En ce qui me concerne, tu peux mettre tous les -1 et les +1 que tu veux ...
Ce n'est pas du tout ma tasse de thé, ni ce qui fait que j'apporte ou non de l'aide.
Autre chose me conduit (et c'est pour cela que j'ai accepté une "charge", car cela en est une)
Tout simplement : je n'accepte personnellement pas n'importe quoi.
Et quand je décèle que le "n'importe quoi" s'installe, je fuis et ... ne reviens plus jamais.
Voilà qui est dit.
cs_Franck93150
Messages postés
32
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
17 février 2015
> ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
Ok
Whismeril
Messages postés
13412
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 juin 2019
280 -
Bonsoir,

Concernant la coloration, j'avais déjà corrigé une fois ou deux tes sujets, en le signalant.
Ça améliore la lisibilité et par la la possibilité qu'un intervenant s'intéresse au sujet et y réponde.

Quand au exemples que tu sites, sortis de leur contexte et partiellement en plus, ça ne veut pas dire grand chose.

J'en prends un, et en entier:
ceci :
La cellule B5 de la feuille 2 = La cellule B5 de la feuille 1

accompagné de ceci :
C'est pour cela que lorsque je rentre une valeur (une date) dans la cellule B5 de la feuille 1, toutes les dates changent pour les deux feuilles
ne nous dit pas comment s'établit cette égalité.</block>

Ben oui, nulle part tu n'expliques si dans une des deux cellules tu as mis =FeuilleX!B5, ou si ta macro va écrire la même valeur dans ces deux cellule ou encore s'il s'agit d'une condition.....

Je constate que tu n'as répondu à aucune des interrogations d'Uc, interrogations qui lui aurait permis de cerner mieux ton problème et peut-être arriver à y répondre.

Donner des détails, c'est bien mais si tu me demandes l'heure et que je te réponds bleu, tu vas passer ton chemin non?

Il me semble que tu as surtout lu ce que tu voulais

Posté depuis CCM Live forum pour iPhone/iPad
Whismeril
Messages postés
13412
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 juin 2019
280 -
Ha et aussi, j'ai cliqué pour toi su le lien qui mets le sujet résolu, mais c'est comme pour la coloration, c'est l'utilisateur qui doit le faire
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
209 -
Bonsour, Whismeril,
Je retiens surtout sa "propension" à "distribuer" des -1 à tour de bras sur des messages parfaitement justifiés, qui sont des questions encore plus justifiées, qui le gênent et auxquels il ne répond pas (peut-être parce qu'il ne les lit pas ou que leur compréhension-même lui échappe)...
Je préfère croire que la qualité de "débutant" qu'il avance sans cesse depuis plus de 30 mois maintenant traduit surtout le fait qu'il se "promène" et "grapille" des "soluces" , sans jamais s'y mettre ni avoir la volonté de le faire.
Commenter la réponse de cs_Franck93150