Rechercher : dans
Par :

Actualiser données externes VBA Excel MySQL

Dernière réponse le 25 mar 2009 à 10:39:20 marmotte, le 7 jui 2008 à 14:25:17 
 Signaler ce message aux modérateurs

Bonjour,

je voudrais faire les actions suivantes dans une macro Excel:
- actualiser les données externes qui se trouvent dans une feuille du classeur (les données elles-mêmes se trouvent dans une base MySql)
- une fois les données actualiser, faire des stats et pleins de trucs de ce genre

Mon problème est que je n'arrive pas à forcer l'actualisation des données. Lorsque je fais F9 dans la feuille des données, elles sont bien actualisées.
Par contre, quand j'utilise la fonction thisWorkbook.RefreshAll (je n'ai pas trouvé de fonction ne permettant de ne rafraichir qu'une page), j'ai un message d'erreur "Erreur d'exécution 1004: Erreur générale ODBC".

Donc mes questions:
- y'a-t'il moyen de ne demander le rafrachissisment que d'une feuille du classeur ? Avec quel fonction ?
- quelle est la fonction VB qui serait équivalente à l'utilisation de la touche F9 ?
- pourquoi la fonction thisWorkbook.RefreshAll me renvoie une erreur ? Comment avoir plus de détail sur quel est le problème ?

Merci de votre aide

Configuration: Windows XP
Internet Explorer 6.0

1

NJ, le 15 jui 2008 à 11:38:05

Salut la ligne de code équivalente et :
activeworkbook.refreshall
tu l'ajoutes dans la page de code workbook comme suit :
Private Sub Workbook_Open()
ActiveWorkbook.RefreshAll
End Sub

bon courage

Répondre à NJ

2

Marmotte, le 18 jui 2008 à 09:53:59

Bonjour BJ

J'ai essayé ta fonctione et ça marche nickel.
Ensuite, j'ai mis l'appel ActiveWorkbiik.RefereshAll directement dans la procédure qui est appelé quand je clicke sur le bouton et ça fait exactement ce que je veux.
Mes problèmes de connexion ODBC ont aussi disparus ... je ne sais pas pourquoi (j'ai un peu trifouillé dans les sources de données), mais je ne vais pas m'en plaindre :-)

Merci de ton aide

Marmotte

Répondre à Marmotte

3

 Wackolas, le 25 mar 2009 à 10:39:20

Tant mieux si ça a marché.
Pour rafraichir une seule page d'un classeur, c'esy ActiveWorksheet.Calculate

Répondre à Wackolas