Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
634 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Lancer une macro après modification d'un tableau croisé?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Lancer une macro après modification d'un tableau croisé?

n°1059536
Gusdabo
Posté le 25-04-2005 à 11:23:44  profilanswer
 

Bonjour,  
 
j'ai un tableau croisé dynamique, dont un des champs est 'sorti', c'est à dire il est juste au dessus du tableau lui-même, sous forme de liste déroulante: il permet de restreindre les données du tableau. Je ne sais pas si je me fait bien comprendre?  
 
J'aimerais pouvoir lancer une macro à chaque fois que l'on change la valeur de ce champ...  
 
Pourriez vous m'aider?  
 
Merci  
 
Edit: Résolu  
Tout simplement avec le lancement d'une macro par la méthode worksheet.calculate  
 
Pour ceux à qui cela pourrait servir...
 
Edit 2: Finalement, ca ne me satisfait pas vraiment, parcecque le code peut s'effectuer 2 ou 3 fois d'affilée à cause de recalculs en cascade...
Vous auriez un autre idée + efficace??
 
Merci


Message édité par Gusdabo le 16-06-2005 à 12:30:10
mood
Publicité
Posté le 25-04-2005 à 11:23:44  profilanswer
 

n°1121845
Gusdabo
Posté le 16-06-2005 à 13:08:55  profilanswer
 

up!...

n°1125396
Gusdabo
Posté le 20-06-2005 à 17:25:47  profilanswer
 

up...

n°1125399
knakes
Posté le 20-06-2005 à 17:27:41  profilanswer
 

désactive le recalcul automatique lorsque tu lance la macro.
réactive le apres.

n°1128145
Gusdabo
Posté le 23-06-2005 à 01:21:28  profilanswer
 

knakes a écrit :

désactive le recalcul automatique lorsque tu lance la macro.
réactive le apres.


 
Ca ne marche pas, j'ai pourtant essayé... Il recalcul quand même certaines choses, je ne sais pas lesquelles.

n°1128160
AlainTech
Pas trouvé? Cherche encore!
Posté le 23-06-2005 à 05:18:24  profilanswer
 

Et l'événement _Change sur ton TCD en interceptant la cellule que tu modifies, ça marche pas?


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
n°1128684
Gusdabo
Posté le 23-06-2005 à 14:10:19  profilanswer
 

AlainTech a écrit :

Et l'événement _Change sur ton TCD en interceptant la cellule que tu modifies, ça marche pas?


Je connais pas..
 
Ca marche comment?

n°1128735
Gusdabo
Posté le 23-06-2005 à 14:31:22  profilanswer
 

Je cherche mais ne trouve rien..


Message édité par Gusdabo le 23-06-2005 à 14:31:47
n°1128745
AlainTech
Pas trouvé? Cherche encore!
Posté le 23-06-2005 à 14:34:59  profilanswer
 

Dans VBA, tu fais un double clic sur la feuille TCD.
En haut de la page de code, tu as 2 listes déroulante.
Dans celle de gauche, tu choisis Worksheet et dans celle de droite, tu choisis Change.
 
Dans la procédure créée, tu remplis pour obtenir qqch de similaire à ceci:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
  If Target.Address = "$A$1" Then
    TaFonctionDeCalcul  
  End If
End Sub


J'ai mis la cellule A1 mais tu peux mettre la référence de la cellule que tu veux surveiller.
Attention, les $ sont obligatoires.


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
n°1128760
Gusdabo
Posté le 23-06-2005 à 14:44:12  profilanswer
 

Ah, oui, très bon...
Je vais voir avec cela!!
 
Edit:
Marche pô!..
Sur mon tableau crois, ca donne cela
http://gusdabo.free.fr/Clipboard02.jpg
 
C'est la case C4 que je modifie, mais elle n'est pas sélctionnée au moment du changement, donc la target.adress est fausse...


Message édité par Gusdabo le 23-06-2005 à 15:14:20
mood
Publicité
Posté le 23-06-2005 à 14:44:12  profilanswer
 

n°1128929
AlainTech
Pas trouvé? Cherche encore!
Posté le 23-06-2005 à 16:40:44  profilanswer
 

Il te faut donc écrire:

 If Target.Address = "$C$4" Then



---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!
n°1134885
Gusdabo
Posté le 29-06-2005 à 16:16:33  profilanswer
 

Oui oui, jusque là je maîtrise, j'avais bien mis
If Target.Address = "$C$4" Then
 
Cependant, le probème, c'est que, mettons que la cellule A5 soit sélectionnée.
Si je lance la liste déroulant en C4, la cellule C4 ne sera pas sélectionnée après le choix, je serai toujours en A5, donc la macro ne se lance pas!...
 
Si tu as une idée...
 
Merci!


Message édité par Gusdabo le 29-06-2005 à 16:17:14
n°1172936
biboo_
\o/
Posté le 09-08-2005 à 09:35:34  profilanswer
 

Est-ce que c'est possible de remplacer une cellule (par exemple A1) par un ensemble de cellule (un range de cellule quoi) ??  
C'est à dire définir pour une plage donnée une opération ou une macro par exemple ?

n°1172964
AlainTech
Pas trouvé? Cherche encore!
Posté le 09-08-2005 à 10:39:04  profilanswer
 

Oui, avec la fonction Intersect.


---------------
Si on vous donne une info qui marche, DITES-LE!!!! ------ Si vous trouvez seul, AUSSI, votre solution peut servir à d'autres! ------ Je dois la majorité de mes connaissances à mes erreurs!

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Lancer une macro après modification d'un tableau croisé?

 

Sujets relatifs
existence valeur dans un tableau ?fonction qui renvoie un tableau de données
PHP Array_unshit Tableau associatifExcel / Word macro à lancer et Textbox
supprimer les vides dans un tableauAligner un tableau verticalement
recherche dans tableauIndexer un tableau avec des chaines de cars
Macro et focus 
Plus de sujets relatifs à : Lancer une macro après modification d'un tableau croisé?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR