Macro : ouverture de fichiers dans un répertoire

Macro : ouverture de fichiers dans un répertoire - VB/VBA/VBS - Programmation

Marsh Posté le 28-11-2005 à 17:18:30    

Salut  :hello:  
 
Je voudrais savoir comment je peux ouvrir tous les fichiers d'une extension donnée situés dans un répertoire donné ( et les sous-rep également ) avec une macro Word, Excel peu importe.
Par la suite je voudrais faire un traitement sur ces fichiers, mais c'est au niveau de la recherche que je peine.
Je suis newbie en macro, et si en plus/à la place d'une réponse vous avez un bon tuto, je suis preneur !
Merci  :)

Reply

Marsh Posté le 28-11-2005 à 17:18:30   

Reply

Marsh Posté le 28-11-2005 à 17:57:20    

Salut Chandy,
 
regarde ce post, il te donne les fonctions sous excel faire apparaitre le nom de tous tes fichiers ici "*.xls" présents dans un dans un répertoire sélectionné par l'utilisateur, il peut fonctionner avec les sous répertoires si tu places un ".SearchSubFolders = True" dans le filesearch.
 
Je ne sais pas si les macros peuvent être identiques entre excel et word mais ça te donnera une base pour faire ta propre macro.
 
Ensuite il te restera à les ouvrir pour les retravailler mais pour ça il faudrait au moins leur extention et le programme pour l'ouverture.


Message édité par watashi le 06-12-2005 à 16:50:30

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

Marsh Posté le 01-02-2006 à 14:15:40    

Salut,
 
J'ai un problème concernant l'ouverture de plusieurs fichiers dans un répertoire. Je voudrais ouvrir tous les fichiers d'un répertoire mais ce répertoire doit pouvoir être choisi par l'utilisateur de mon programme (avec une InputBox par exemple). Je voudrais savoir comment rendre possible le choix du nom du répertoire et l'ouverture de tous les fichiers .xls qu'il contient.
Pour l'ouverture de mes fichiers contenus dans le répertoire choisi, j'ai écrit la macro suivante :  
 
Dim File_Is As String
    File_Is = Dir("M:\Deutschland\*.XLS" )
    Do Until File_Is = ""
        Workbooks.OpenText FileName:="M:\Deutschland\" & File_Is _
        , Origin:=xlWindows, StartRow:=2, DataType:=xlDelimited, TextQualifier _
        :=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, Semicolon:=False _
        , Comma:=False, Space:=True, Other:=True, OtherChar:="*", FieldInfo:= _
        Array(Array(1, 1), Array(2, 1), Array(3, 2), Array(4, 9), Array(5, 9), Array(6, 9), Array(7 _
        , 9), Array(8, 9), Array(9, 9), Array(10, 9), Array(11, 9), Array(12, 9), Array(13, 9), Array _
        (14, 9), Array(15, 9), Array(16, 9), Array(17, 2), Array(18, 2), Array(19, 9), Array(20, 9), _
        Array(21, 9))
        File_Is = Dir
    Loop
 
Le nom du repertoire mis en rouge doit être le nom choisi par l'utilisateur.
J'espère que mon problème est exprimé clairement. Si vous avez une solution, je suis preneuse.
Merci.

Reply

Marsh Posté le 02-02-2006 à 12:21:08    

Salut tipimousse,
Voilà une fonction qui te permet de faire sélectioner un dossier à un utilisateur, la fonction retourne 0 en cas d'annulation et le chemin complet du dossier dans le cas contraire :

Code :
  1. Function ChoixDossier()
  2.      Dim Dossier As FileDialog
  3.      Set Dossier = Application.FileDialog(msoFileDialogFolderPicker)
  4.      With Dossier
  5.           .AllowMultiSelect = False
  6.           .InitialFileName = "C:\"
  7.           .Title = "Choix d'un dossier"
  8.           If .Show = -1 Then ChoixDossier = .SelectedItems(1) & "\" Else ChoixDossier = 0
  9.      End With
  10. End Function


 
si tu as besoin de plus d'information hésites pas :)
@+
 
EDIT : Correction de la fonction (enlever un des 2 allowmultiselect)


Message édité par watashi le 03-02-2006 à 18:33:09

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

Marsh Posté le 02-02-2006 à 21:38:23    

Bonjour,
Cette fonction ne fonctionne pas sous Word ou Excel 97 (FileDialog donne une erreur = Type défini par l'utilisateur non défini).
Quels sont les références à ajouter au projet pour que cela fonctionne ?
Merci
 
Epéna

Reply

Marsh Posté le 03-02-2006 à 09:57:38    

Salut,
 
J'allais poser exactement la même question.
J'aimerais savoir aussi comment je peux récupérer le chemin du répertoire choisir par l'utilisateur pour l'utiliser ensuite dans mon programme.
Merci d'avance
 
Tipimousse27

Reply

Marsh Posté le 03-02-2006 à 18:29:26    

Epena a écrit :

Bonjour,
Cette fonction ne fonctionne pas sous Word ou Excel 97 (FileDialog donne une erreur = Type défini par l'utilisateur non défini).
Quels sont les références à ajouter au projet pour que cela fonctionne ?
Merci


salut epena cett fonction je ne sais pas si elle va être accessible avec word ou excel 97 ou 988, j'utilise  excel 2002, je sais qu'elle marche sous 2003, (surement sur 2000 mais j'ai pas eu confirmation).
Les références que j'ai d'ouvertes sont :
Visual Basic For Application
Microsoft excel 10,0 Oject library
OLE Automation
Microsoft Office 10,0 Object library
 
Les versions excel étant rarement données ... difficile de faire mieux.
 

tipimousse27 a écrit :

Salut,
 
J'allais poser exactement la même question.
J'aimerais savoir aussi comment je peux récupérer le chemin du répertoire choisir par l'utilisateur pour l'utiliser ensuite dans mon programme.
Merci d'avance
 
Tipimousse27


Pour lancer une fonction comme ceele-ci sans argment :
Tu place la fonction dans ton module et dans la macro ou tu as besoin de cette fonction tu marques par exemple :
MonDossier = ChoixDossier
 
@+
 


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

Marsh Posté le 03-02-2006 à 21:36:29    

Merci Watashi pour ta réponse. Donc, cela ne fonctionnera pas.  
 
Epéna

Reply

Marsh Posté le 08-02-2006 à 10:33:18    

Merci Watashi!
Comme je travaille aussi avec Excel 97, ca ne marchera pas pour moi non plus.
Je vais essayer de fonctionner d une maniere.
Encore merci!

Reply

Marsh Posté le 08-02-2006 à 18:01:06    

Ben vi ! Ne pas marquer sa version d'excel ... c'est risquer d'obtenir des codes incompatibles surtout en 97 ;)
 
bon courage :)


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

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed