Recuperer des valeurs dans un fichier xls non ouvert

[Résolu]
Signaler
Messages postés
8
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
9 septembre 2008
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
Bonjour à tous

Une petite presentation rapide avant tout: Je m'appelle Olivier, je bosse dans une boite dans le domaine de la chimie; je ne suis pas devellopeur mais je bidouille un peu en vba.

Je viens juste de m'inscrire sur ce forum car j'ai un petit probleme sur une application que j'essaye de creer. Son role est de faire des bilans sur des analyses effectuées à l'aide d'un appareil (une cpg pour ceux qui connaissent).
J'ai parametré le logiciel de cet appareil pour qu'il cree des fichiers resultats xls; les données sont rangées de cette façon:
http://img140.imageshack.us/img140/534/sanstitre1sa1.gif

Comment puis je faire pour recuperer les valeurs de ce fichier à partir de mon application ? Un petit exemple: mon fichier est placé à c:/toto.xls et je voudrais recuperer les valeurs en b3 et c3. Il faudrait que ce fichier ne reste pas ouvert, car l'application vas devoir en ouvrir une 10aine un par un.

J'utilise
Je remercie sincerement toute personne qui pourra m'aider et je vous souhaite une agreable journée.

4 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
69
tu peux très bien ouvrir temporairement ton fichier resultat et importer  les données dans ton fichier courant. Ensuite tu referme ton fichier, et hop ^^

je pense qu'il y a un pquet d'exemples sur le site

Renfield
Admin CodeS-SourceS- MVP Visual Basic
Messages postés
60
Date d'inscription
vendredi 26 octobre 2007
Statut
Membre
Dernière intervention
30 mars 2010

Bonjour à tous
Bonjour HansGruber, Renfield

Si je comprend bien, tu veux récupérer les cellules B3 et C3 de la feuil1 des fichiers "resultatsxxx.xls" dans un fichier toto.xls:

Dans le fichier toto.xls, dans la cellule a1 (exemple) tu ecris :
='[resultatsxxx.xls]Feuil1'!$B$3

le résultat se mettra automatiquement sans ouvrir le fichier "resultatsxxx.xls"

J'espère avoir bien compris ta demande

Frédéric
Messages postés
8
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
9 septembre 2008

Merci pour vos reponses, et desolé si je n'ai pas ete plus explicite; je vais essayer de detailler un peu plus mon projet

Donc je lance un classeur excel nommé "bilan.xls". Sur ce classeur j'ai dessiné le synoptique d'une installation, et sur ce synoptique des boutons sont placés à differents points de l'installation.
Chaque fois que je clique sur un bouton je vais lancer cette procedure:

' choix du fichier
chemin = Application.GetOpenFilename("Fichiers Excel(*.xls), *.xls")
If chemin <> FAUX Then MsgBox "Ouverture de " & chemin

afin d'aller rechercher le petit fichier correspondant à l'analyse qui correspond au point en question sur le synoptique.
Une fois que le fichier est selectionné je voudrais donc extraire les valeurs placées dans les colonnes B,C et D (name, quantity et time) à partir de la ligne 3 (1eres valeurs) jusqu'à la ligne vide, ce qui signifie que j'ai bien enregistré chaques composés.
Une fois que ces valeurs sont recuperées le petit fichier ne doit pas rester ouvert.
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
19
Tu pourrais, je pense, utiliser des "objets" Excel pour ouvrir de façon transparente tes fichiers et copier ce que tu as besoin où tu veux pour finalement les fermer sans que personne ne se soit rendu compte de quoique ce soit.

Tu peux faire une recherche sur Excel.Application
C'est un sujet qui revient souvent, surtout pour les gens qui programment sous VB et veulent utiliser Excel, moins souvent pour ceux qui programment déjà sous Excel...

Une autre façon, je pense, serait d'utiliser ADO et tes petites fichiers comme des bases de données. Mais je pense que la disposition des données dans ces fichiers est assez importante pour le bon fonctionnement. Le test mériterait quand même d'être fait... si l'autre méthode n'est pas adéquate.

MPi²