|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Membre habitué
![]() Inscription : janvier 2005 Messages : 527 ![]() |
Bonjour à tous,
Je récupère des données depuis une requete SQL d'une base access. J'ai pris le code dans le tuto Communication entre Access et Excel. ça fonctionne bien sauf pour la mise à jour des données. Dans le tuto, la sub auto_open est utilisée, pour que les données se mettent à jour à l'ouverture du fichier excel. Chez moi, ça ne marche pas: il faut que je rentre dans la cellule où est inscrite la fonction retrieve et que je fasse "entrée" pour que la donnée se mette à jour. Ceci étant dit, je ne souhaite pas que les données se mettent à jour à l'ouverture du classeur mais en appuyant sur un bouton. J'ai donc mis un bouton et j'ai affecté la sub UpdateData (j'ai juste changé le nom auto_open en updateData) mais ça ne marche pas non plus. Il faut toujours que je rentre dans la cellule où est inscrite la fonction retrieve et que je fasse "entrée" pour que la donnée se mette à jour. Code :
|
||
|
|
00
|
|
|
#2 | ||||
|
Membre habitué
![]() Inscription : janvier 2005 Messages : 527 ![]() |
Bonjour,
J'ai fait d'autres tests qui n'ont pas rencontré le succès escompté... Dans le code suivant, j'ai: - dans un module: la sub auto_open, la sub ConnectDB et la fonction xretrieve. - dans ThisWorkbook: la sub UpdateData où je fais un calculate de ma Range. Remarque: sans les macros, - si je fais shift+F9, rien ne se passe - si je fais F2+entrée dans chaque cellule, le calcul se fait Pourquoi ? Module: Code :
Code :
|
||||
|
|
00
|
|
|
#3 |
![]() ![]() |
Bonjour,
Pour ce qui est de la macro Auto_Open celle-ci n'est plus à utiliser ... utilise l'événement Open dans ThisWorkBook...
__________________
page à bbil : dernières entrées : Débuter en VB6 Mes contributions en téléchargement Les pages VB : FAQs, Tutoriels VB, Outils , Sources, WIKI Impératif "A LIRE AVANT DE POSTER"
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé
![]() Chercheur de bonheur Inscription : août 2007 Messages : 2 257 ![]() |
Bonjour,
pour qu'un code s'exécute automatique à l'ouverture d'un fichier, il doit être placé dans l'évènement Workbook_Open() qui doit être défini dans l'objet Thisworkbook et pas ailleurs. Le code ci-dessous affiche bonjour à l'ouverture du classeur dans lequel il se trouve. Code :
__________________
(\ _ /) Cordialement G@dz (='.'=) (")-(") Vous avez des neurones. Sollicitez-les. ![]() . Si vous êtes aidé, pensez à Voter.
|
||
|
|
00
|
|
|
#5 | ||||
|
Membre habitué
![]() Inscription : janvier 2005 Messages : 527 ![]() |
Merci pour vos réponses. Mais ce n'est pas exactement ce que je veux. Comme dit dans mon premier message, je ne souhaite pas que les données se mettent à jour à l'ouverture mais après un clic sur un bouton par l'utilisateur.
Mon bouton devrait déclencher la Sub UpdateData (mise dans ThisWorkbook). Mais rien ne se passe... Si je mets ce bout de code dans Module 1, rien ne se passe non plus. Code :
Si je teste à l'ouverture du fichier, rien ne se passe non plus (Sub Workbook_Open mise dans ThisWorkbook), le reste du code étant mis dans Module 1: Code :
Si je bascule tout le code dans thisWorkbook, rien ne se passe non plus. Donc que ce soit à l'ouverture du fichier ou bien après un clic sur un bouton, code mis dans ThisWorkbook ou dans Module 1, je n'arrive pas à reproduire l'équivalent du F2+entrée sur chaque cellule. Je n'arrive donc pas à executer la fonction inscrite dans la cellule (qui est la fonction retrieve prise dans le tuto). Le problème peut il venir de Range("ListingValues") ? Faut il mettre qch avant Range ? Merci de votre aide. |
||||
|
|
00
|
|
|
#6 | ||||
|
Membre habitué
![]() Inscription : janvier 2005 Messages : 527 ![]() |
Bonjour,
J'ai continué mes recherches sur internet mais je n'ai toujours pas trouvé de solution... Ce matin, je n'ai pas compris sur quoi j'ai cliqué mais ma macro s'est déclenchée et toutes les valeurs se sont mises à jour. Bien entendu, quand j'ai voulu recliquer sur mon bouton, plus rien ne marchait. Avec le activate, ça ne marche pas. Avec le SendKeys, ça marche mais pas sur les cellules que je veux ! Voici le code: Code :
Code :
comment déclencher l'execution de la fonction personnalisée retrieve dans la plage dynamique ListingValues ? Merci de votre aide |
||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com