Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1162 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBA Excel : gestion de fichiers .xls

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

VBA Excel : gestion de fichiers .xls

n°1247337
josserand_​joss
Posté le 17-11-2005 à 09:25:49  profilanswer
 

Bonjour à tous !
 
Voici mon problème.
Ma requête doit chercher des infos dans d'autres classeurs Excel.
Or, actuellement, ceux-ci doivent être ouvert pour que ça marche (j'y ai alors accès avec la commande Windows("..." ).Activate).
 
Mais, je ne veux à avoir à les ouvrir manuellement pour récupérer ces données. De plus, il faut vérifier leur existence avant de les ouvrir.
 
Grand merci d'avance à celui ou celle qui pourra m'aider !! :jap:  
 
Joss

mood
Publicité
Posté le 17-11-2005 à 09:25:49  profilanswer
 

n°1247425
watashi
La démotivation : JAMAIS !
Posté le 17-11-2005 à 10:50:53  profilanswer
 

Salut joss,
 
Pour tester l'existance d'un fichier, tu peux utiliser ceci :

Code :
  1. Set fso = CreateObject("scripting.filesystemobject" )
  2. If fso.FileExists(chemin_complet_et_nom_du_fichier) = False Then Exit Sub


 
Pour ce qui est des données à récupérer, l'ouverture du fichier "Source" est, à ma connaissance, obligatoire ne serait-ce qu'une ouverture en lecture seule, enfin je suis loin de tout connaitre.
 
bon courage


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1247901
josserand_​joss
Posté le 17-11-2005 à 19:03:16  profilanswer
 

Super, ton aide me permet déjà d'avoir une fonction qui ne plante pas (pour utiliser le FileExists, je trouve que c'est pas évident...).
Merci beaucoup Watashi !!
 
Pourtant, j'ai encore un problème : je n'arrive pas à trouver le chemin courant... Il me semble que ce soit ChDir (d'après l'aide), mais je n'arrive pas à l'utiliser. Peux-tu m'éclaircir ?
 
Il me reste également ce problème de pouvoir accéder à un fichier Excel (et extraire les données de ses cellules) sans avoir à l'ouvrir sur le Bureau Windows.
 
Encore merci.
 
Joss

n°1248105
watashi
La démotivation : JAMAIS !
Posté le 18-11-2005 à 09:06:47  profilanswer
 

josserand_joss a écrit :

Pourtant, j'ai encore un problème : je n'arrive pas à trouver le chemin courant... Il me semble que ce soit ChDir (d'après l'aide), mais je n'arrive pas à l'utiliser. Peux-tu m'éclaircir ?

Le chemin courrant de quoi de ton fichier excel ou de ton application ?
 

josserand_joss a écrit :

Il me reste également ce problème de pouvoir accéder à un fichier Excel (et extraire les données de ses cellules) sans avoir à l'ouvrir sur le Bureau Windows.

Pour moi ouvrir le fichier est obligatoire. Tu peux éventuellement mettre excel en non visible c'est pratique quand tu travailles à partir de userform pour ne pas montrer excel mais tu n'as plus de visibilité sur les classeurs.  

Code :
  1. Sub lance()
  2. Excel.Application.Visible = False
  3. UserForm1.Show
  4. End Sub

Faut juste ne pas oublier de mettre visible.true au moment de tous les userform.hide
@+


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1248407
josserand_​joss
Posté le 18-11-2005 à 14:39:49  profilanswer
 

J'ai besoin du répertoire courant de mon fichier Excel.
 
En gros, j'ai un fichier Excel qui est lancé par l'utilisateur (où il y ma macro).
 
Celui doit extraire des données depuis d'autres fichiers Excel situés dans le même répertoire. Mais, l'intérêt est, pour l'utilisateur, de ne pas avoir à ouvrir tous les autres fichiers .xls avant d'exécuter la macro.
 
J'espère être clair dans mon explication... :sarcastic:
 
Encore merci.

n°1248473
watashi
La démotivation : JAMAIS !
Posté le 18-11-2005 à 15:23:30  profilanswer
 

Re,
Le chemin du classeur c'est activeworkbook.path
Si tu fait un filesearch sur ce dossier tu peux avoir un array contenant le nom de tous tes fichiers à traiter. J'ai un code qui fait ça au bureau , si ça te tente je le posterais lundi :)
@+


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1248521
watashi
La démotivation : JAMAIS !
Posté le 18-11-2005 à 15:55:39  profilanswer
 

J'ai vu un site qui va pouvoir t'interessé sur la prises des données dans un classeur fermé :
ici
Ca a l'air pas mal, j'y regarderais plus loin un peu plus tard.


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1248547
josserand_​joss
Posté le 18-11-2005 à 16:10:04  profilanswer
 

Merci pour ce lien, je regarderai ça en détail.
 
Joss

n°1249563
watashi
La démotivation : JAMAIS !
Posté le 21-11-2005 à 09:01:27  profilanswer
 

Salut joss
 
voilà le code dont je te parlais vendredi :

Code :
  1. Sub ListFileInFolder()
  2.      Dim i, a, chemin
  3. 'Choix du chemin
  4.      chemin = ActiveWorkbook.Path
  5. 'mise en place de la liste de fichier
  6.      With Application.FileSearch
  7.           .NewSearch
  8.           .FileType = msoFileTypeExcelWorkbooks
  9.           .SearchSubFolders = False
  10.           .LookIn = chemin
  11.           If .Execute() > 1 Then
  12.                a = 0
  13.                ReDim Preserve LFIF(.FoundFiles.Count - 2)
  14.                '(-1) car array(0) (-1) car ce fichier est déjà ouvert
  15.                For i = 1 To .FoundFiles.Count
  16.                     If .FoundFiles(i) <> ActiveWorkbook.FullName Then
  17.                          LFIF(a) = .FoundFiles(i)
  18.                          a = a + 1
  19.                     Else
  20.                     End If
  21.                Next i
  22.           Else
  23.                MsgBox ("Aucun autre fichier que celui-ci" )
  24.           End If
  25.      End With
  26. End Sub

En espèrant que celà t'aide
 
@+


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1250266
josserand_​joss
Posté le 21-11-2005 à 20:29:19  profilanswer
 

Super !! Je crois que ça bien m'aider !!
Merci également pour la soluce du chemin du classeur (je viens seulement de m'en rendre compte, lol, dsl).
 
Je verrais ça à mon retour dans ma boîte, dans 15 jours (formation actuellement). Mais, je pense bien que ta soluce va me débloquer.
En cas de problème, je sais où m'adresser !! :sol:  
 
Joss

mood
Publicité
Posté le 21-11-2005 à 20:29:19  profilanswer
 

n°1250561
watashi
La démotivation : JAMAIS !
Posté le 22-11-2005 à 10:37:05  profilanswer
 

;) lol


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)
n°1259366
josserand_​joss
Posté le 05-12-2005 à 17:30:59  profilanswer
 

En effet, ça m'a bien aider !!
Donc, un grand merci à toi, encore une fois.
 
Maintenant, j'ai abouti à un autre gros problème (à la con, j'avoue) que j'ai posté dans un nouveau sujet :
http://forum.hardware.fr/hardwaref [...] 1216-1.htm
 
A la prochaine !! Thanks !!
 
Joss

n°1259805
watashi
La démotivation : JAMAIS !
Posté le 06-12-2005 à 09:42:43  profilanswer
 

nope vu et répondu ;)


---------------
Je bidouillle c'est sur... Mais j'essaye de faire en sorte que ça marche ;-)

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  VBA Excel : gestion de fichiers .xls

 

Sujets relatifs
[Résolu] [Excel] Régression pas à pas[Résolu] Gestion utilisateur en PHP
[Résolu] (DOS) Parcourir arboresence et modifier noms fichiers[Shell] Diff de fichiers INI
resourceBundle.getStringArray et les fichiers properties[VBA Excel] Concaténation pour retrouver un contrôle
Comment éditer des fichiers dataVBA Access - Repositionner le curseur sur l'enregistrement en modif
systeme de gestion de langages 
Plus de sujets relatifs à : VBA Excel : gestion de fichiers .xls


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR