Lancer une macro après modification d'un tableau croisé? - VB/VBA/VBS - Programmation
Marsh Posté le 20-06-2005 à 17:27:41
désactive le recalcul automatique lorsque tu lance la macro.
réactive le apres.
Marsh Posté le 23-06-2005 à 01:21:28
knakes a écrit : désactive le recalcul automatique lorsque tu lance la macro. |
Ca ne marche pas, j'ai pourtant essayé... Il recalcul quand même certaines choses, je ne sais pas lesquelles.
Marsh Posté le 23-06-2005 à 05:18:24
Et l'événement _Change sur ton TCD en interceptant la cellule que tu modifies, ça marche pas?
Marsh Posté le 23-06-2005 à 14:10:19
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?
Marsh Posté le 23-06-2005 à 14:31:22
Je cherche mais ne trouve rien..
Marsh Posté le 23-06-2005 à 14:34:59
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) |
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.
Marsh Posté le 23-06-2005 à 14:44:12
Ah, oui, très bon...
Je vais voir avec cela!!
Edit:
Marche pô!..
Sur mon tableau crois, ca donne cela
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...
Marsh Posté le 23-06-2005 à 16:40:44
Il te faut donc écrire:
If Target.Address = "$C$4" Then |
Marsh Posté le 29-06-2005 à 16:16:33
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!
Marsh Posté le 09-08-2005 à 09:35:34
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 ?
Marsh Posté le 09-08-2005 à 10:39:04
Oui, avec la fonction Intersect.
Marsh Posté le 25-04-2005 à 11:23:44
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