Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

declencher une macro

R

Roland

Guest
Re bonjour à vous,

Je butte sur un petit problème de macro ;
j'éssaie de lancer une macro en fonction d'un texte dans une cellule
jusqu'à la pas de problème.
le soucis c'est que la cellule qui va déclencher la macro est une cellule d'un tableau croisé dynamique et ce tableau croisé est sur une autre feuille

le code suivant ne fonctionne pas:

Private Sub Worksheet_Change(ByVal Target As Range)


If Target.Address = "Feuil2!$C$10" Then
If Target.Value = 1 Then Macro1
If Target.Value = 2 Then Macro2
End If

End Sub

je ne comprend pas pourquoi ,
Auriez vous une idée?

merci à vous

à bientot
Roland
 
R

Roland

Guest
Salut léa,

Je ne crois pas que le problème vienne de là parce que cette meme formule avec une cellule quelconque en "déclencheur" fonctionne corrèctement.
??? que faire???

qu'en penses tu?
 
P

Pascal76

Guest
Bonjour

En effet Roland a raison le problème ne vient pas de là car tous les If sont clos (Lorsquon ecrit le code sur la même ligne que le then pas besoin de End If)

Par contre je ne sais pas comment s'enclenche un évènement sur TCD; je pense qu'il faut peut-être vérifié de ce coté là

Bonne journée

Pascal
 
R

Roland

Guest
Je vous joint un exemple peut être que ça vous aidera à comprendre mieux le prob
Je vous remercie de passer du temps sur nos problèmes.

A+
Roland
 

Pièces jointes

  • A.zip
    21 KB · Affichages: 57
  • A.zip
    21 KB · Affichages: 56
  • A.zip
    21 KB · Affichages: 57
L

léa

Guest
Bonjour Pascal

On en apprend tous les jours
Moi, qui m'évertue à ouvrir et fermer correctement chaque boucle "IF"
Est-ce cela fonctionne pour les autres types de boucles ? (With, For )

Cordialement
Léa
 
S

sousou

Guest
Bonjour léa roland ...


Procède de cette manière.
Utilise l'évènement calculate lui sera généré par ton TCD
Ensuite ce n'est pas la ellule qu'il faut tester, mais le contenu de ton TCD

ou, l'objet pivottables.....

Private Sub Worksheet_Calculate()
res = Val(Sheets(1).PivotTables(1).PivotFields(4).DataRange)
If res = 1975 Then Macro1
If res = 1979 Then Macro2
End Sub
 

Discussions similaires

Réponses
1
Affichages
171
Réponses
1
Affichages
370
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…