heleneML
Messages postés27Date d'inscriptionjeudi 5 mai 2011StatutMembreDernière intervention18 mai 2011
-
5 mai 2011 à 11:34
CerberusPau
Messages postés377Date d'inscriptionlundi 3 avril 2006StatutMembreDernière intervention22 août 2018
-
8 mai 2011 à 10:33
Bonjour,
J'essaie de récupérer une donnée d'un autre fichier, mais j'aimerai ne pas avoir à ouvrir ce fichier.
Voici mon code (où j'ouvre le fichier source puis le ferme)
Dim wb As Workbook
Dim ws As Worksheet
Set wb = Workbooks.Open(chemin_fichier)
Set ws = wb.Worksheets("nom_feuille")
donnee = ws.Cells(5 , 4).Value
wb.Close
Ce code marche sans problème, mais il ouvre le fichier source. Comment est-ce possible de faire cette même opération sans ouvrir ce fichier ?
Merci d'avance !
A voir également:
Vba récupérer données d'un autre classeur sans l'ouvrir
heleneML
Messages postés27Date d'inscriptionjeudi 5 mai 2011StatutMembreDernière intervention18 mai 2011 5 mai 2011 à 14:34
En ajoutant dans les paramètres de Open (merci pour le conseil Calade), UpdateLinks=3, on ne voit effectivement pas la fenêtre (elle s'ouvre et se ferme effectivement en quelques pouillèmes de secondes Jack )
Sinon dans l'aide d'excel, j'ai regardé s'il y a un paramètre visible pour cette fonction, mais ça n'a pas l'air d'exister ! Je vais me contenter du updatelinks !
En tout cas, merci à tous pour votre aide !
Bonne journée !
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 5 mai 2011 à 14:35
En regardant dans l'aide, tu aurais vu qu'il n'existe pas de .Visible aux classeurs.
Cette propriété n'est valide que pour les feuilles (WorkSheet). Donc rien ne t'empêche de masquer chaque feuille après le Open.
heleneML
Messages postés27Date d'inscriptionjeudi 5 mai 2011StatutMembreDernière intervention18 mai 2011 5 mai 2011 à 11:43
C'est ma question, selon toi, il n'est pas possible de le faire ?
Pour récupérer ma donnée, je suis obligée de l'ouvrir et de le refermer par la suite, comme je le fais ?
Il n'y a pas de moyens pour seulement activer le fichier (comme ce qu'on peut fair il me semble avec une feuille d'un fichier) ?
Désolé, je n'y connais pas trop...
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_jopop
Messages postés1540Date d'inscriptionlundi 26 mai 2003StatutMembreDernière intervention 1 août 201312 5 mai 2011 à 11:48
Alors la réponse sera catégorique : non, tu ne peux pas.
Si tu veux avoir une info contenue dans un fichier il faut l'ouvrir (ça tombe sous le sens).
Pour un fichier Excel tu peux effectivement définir un "ActiveSheet", mais ton fichier est déjà ouvert (comment connaitre les sheets que contient ton Excel si tu ne l'ouvres pas ?)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 5 mai 2011 à 11:52
Salut
Et quelle raison te pousse à ne vouloir ouvrir ce fichier ?
Si tu ouvres le fichier juste le temps de récupérer deux ou trois infos, cela ne durera que quelques pouillème de secondes.
Si le fichier est déjà ouvert (par qqun d'autre), tu peux toujours en faire une copie et ouvrir la copie, mais les données seront celles du dernier enregistrement.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
heleneML
Messages postés27Date d'inscriptionjeudi 5 mai 2011StatutMembreDernière intervention18 mai 2011 5 mai 2011 à 12:00
Salut Jack et Jopop,
En fait, je ne veux pas ouvrir ce fichier car je ne veux pas que les utilisateurs voient ce fichier.
Sous Excel, quand on fait un lien, l'utilisateur ne voit pas le fichier source, Et j'aimerai que ça puisse être aussi le cas là. Mais si ce n'est vraiment pas possible...
(Je ne peux malheureusement passer directement par les formules excel, car le nom de mon fichier change dans le temps.)
Et je ne peux pas non plus faire une copie du fichier, car je ne serai plus là pour le faire... Sauf si ça peut se faire de façon automatique ?
heleneML
Messages postés27Date d'inscriptionjeudi 5 mai 2011StatutMembreDernière intervention18 mai 2011 5 mai 2011 à 14:02
ton_fichier.visible = False
comme ça il n'apparait pas à l'écran !
Merci pile_poil, mais je ne vois pas trop comment l'intégrer à mon code ni ou le mettre ?
Et une petite question, le fichier source, en s'ouvrant, fais ouvrir une boite de dialogue à propos de la mise à jour (ou non) du document. En ne le faisant pas apparaître, que va devenir cette boîte de dialogue ?