OVH Cloud OVH Cloud

Refresh d'un tableau croisé dynamique ?

3 réponses
Avatar
P'tit Marcel
Bonjour,

je n'arrive pas à metre à jour automatiquement des tableaux croisés
dynamiques Excel.

Schématiquement mon appli VB6 (sous Access) copie des valeurs d'Access vers
des cellules d'un classeur Excel. Ces cellules sont définies comme la
source d'un tableau croisé. Je voudrais que le script commande à Excel9 de
mettre à jour le tableau dynamique.
Actuellement le script fait :

For Each tabdyn In Classeur.PivotCaches
tabdyn.Refresh
Next

ça met bien à jour les tableaux mais Excel affiche pour chacun une
splendide boîte de message :

i Le tableau croisé dynamique a été modifié lors de l'actualisation
OK

Je ne peux pas évidemement demander à qqun de rester à côté de l'ordinateur
pour cliquer sur OK à chaque fois !

Comment est-ce que je peux forcer la mise à jour des tableux *sans*
affichage de cette boîte de message ?

Merci de votre aide

3 réponses

Avatar
Hervé
Salut Marcel,
Et avec Application.Calculate puis tabdyn.Refresh ? car Refresh rafraîchi
l'affichage mais n'agit en rien sur les calculs.
Hervé.

"P'tit Marcel" a écrit dans le
message news:
Bonjour,

je n'arrive pas à metre à jour automatiquement des tableaux croisés
dynamiques Excel.

Schématiquement mon appli VB6 (sous Access) copie des valeurs d'Access


vers
des cellules d'un classeur Excel. Ces cellules sont définies comme la
source d'un tableau croisé. Je voudrais que le script commande à Excel9 de
mettre à jour le tableau dynamique.
Actuellement le script fait :

For Each tabdyn In Classeur.PivotCaches
tabdyn.Refresh
Next

ça met bien à jour les tableaux mais Excel affiche pour chacun une
splendide boîte de message :

i Le tableau croisé dynamique a été modifié lors de l'actualisation
OK

Je ne peux pas évidemement demander à qqun de rester à côté de


l'ordinateur
pour cliquer sur OK à chaque fois !

Comment est-ce que je peux forcer la mise à jour des tableux *sans*
affichage de cette boîte de message ?

Merci de votre aide


Avatar
Jean Yves SÉVENO
Bonjour.

L'objet application d'Excel possède une propriété DisplayAlerts qui permet
d'éviter l'affichage de ce genre de message.

Avant ta mise à jour, mets la sur False. Exemple : xlAppl.DisplayAlerts False (en admettant que ton objet application s'appelle xlApp).

Il est conseillé de remettre la propriété à True après ton traitement car ce
genre de message rend souvent service.

Cordialement.

Jean Yves


"P'tit Marcel" a écrit dans le
message de news:
Bonjour,

je n'arrive pas à metre à jour automatiquement des tableaux croisés
dynamiques Excel.

Schématiquement mon appli VB6 (sous Access) copie des valeurs d'Access


vers
des cellules d'un classeur Excel. Ces cellules sont définies comme la
source d'un tableau croisé. Je voudrais que le script commande à Excel9 de
mettre à jour le tableau dynamique.
Actuellement le script fait :

For Each tabdyn In Classeur.PivotCaches
tabdyn.Refresh
Next

ça met bien à jour les tableaux mais Excel affiche pour chacun une
splendide boîte de message :

i Le tableau croisé dynamique a été modifié lors de l'actualisation
OK

Je ne peux pas évidemement demander à qqun de rester à côté de


l'ordinateur
pour cliquer sur OK à chaque fois !

Comment est-ce que je peux forcer la mise à jour des tableux *sans*
affichage de cette boîte de message ?

Merci de votre aide


Avatar
P'tit Marcel
Jean Yves SÉVENO écrivit:

L'objet application d'Excel possède une propriété DisplayAlerts qui
permet d'éviter l'affichage de ce genre de message.



ça marche !

Merci du truc
a+
--
P'tit Marcel