ouvrir fichiers d'un même répertoire

  • Initiateur de la discussion Sidonie
  • Date de début
S

Sidonie

Guest
Bonjour Le Forum

En 'concaténant' les infos que j'ai pu réunir ici sur ce forum et ailleurs sur le net, j'ai bricolé (on ne peut pas le dire autrement) une macro pour ouvrir tous les fichiers (! ce sont des fichiers xml) contenus dans un répertoire donné.

Quand je lance la macro, il ne trouve pas les fichiers. Je n'arrive pas à identifier pourquoi il part sur else.

Voici la macro :

Sub ouvrirFichiers()
'
Set Fs = Application.FileSearch
With Fs
.LookIn = 'C:\\Documents and Settings\\SKA\\Mes documents\\Pietro\\Données'
If .Execute > 0 Then
For i = 1 To .FoundFiles.Count
Workbooks.Open .FoundFiles(i)
Next i
Else
MsgBox 'Aucun fichier trouvé'
End If
End With
End Sub


Si quelqu'un peut m'aider sur ce coup-là, un grand merci d'avance
Sidonie
 

CBernardT

XLDnaute Barbatruc
Bonjour Sidonie et le forum,

Je pense que tu as un problème dans la définition de ton répertoire.
Je viens de faire un test avec la macro suivante et cela marche très bien !
N'oublies pas également de déclarer tes variables ! :angry:

Sub ouvrirFichiers()
Dim Fs As Variant
Dim i As Integer
Set Fs = Application.FileSearch
With Fs
.LookIn = ThisWorkbook.Path
If .Execute > 0 Then
For i = 1 To .FoundFiles.Count
Workbooks.Open .FoundFiles(i)
Next i
Else
MsgBox 'Aucun fichier trouvé'
End If
End With
End Sub

Cordialement

Bernard
 
S

Sidonie

Guest
Merci CBernardT

Ai essayé avec ta proposition et pareil. Il ne repère pas les fichiers.

En fait, ils ne sont pas dans le même répertoire que le fichier ouvert, mais dans un répertoire que j'ai appelé Données qui est adjacent.

Si je l'inclus dans le chemin, cela donne (si j'ai compris le truc) :

.LookIn = ThisWorkbook.Path & '\\Données\\'

Parce que si je mettais les fichiers dans le même répertoire que celui ouvert depuis lequel je lance la macro, je suppose que la macro essaierait d'ouvrir le fichier source qui est déjà ouvert, non ?

Le fait que ce soient des fichiers au format xml peut-il jouer un rôle ? Faudrait-il que j'ajoute une instruction de type FileType ?

Vois-tu autre chose ?

Merci pour ton aide
Sidonie
 

CBernardT

XLDnaute Barbatruc
Re Sidonie,

Essayes avec la macro suivante qui n'ouvriras pas le fichier contenant la macro

Sub ouvrirFichiers()
Dim i As Integer
With Application.FileSearch
.LookIn = ThisWorkbook.Path
If .Execute > 1 Then
For i = 1 To .FoundFiles.Count
If .Filename <> ThisWorkbook.Name Then
Workbooks.Open .FoundFiles(i)
End If
Next i
Else
MsgBox 'Aucun fichier trouvé'
End If
End With
End Sub

A+

Bernard

Message édité par: CBernardT, à: 20/04/2005 17:01
 
S

Sidonie

Guest
Salut CbernardT

Merci pour ta proposition d'hier que j'ai testée ce matin.

Premier lancement, même chose : il ne trouve pas les fichiers. Ai effectué divers tests en ajoutant d'autres fichiers. En gros, il ne m'ouvre qu'un seul fichier même si je mets plusieurs fichiers au format .xls dans le 'path'. Je croyais qu'il prenait le premier du répertoire, mais changer l'ordre n'a pas modifié l'ouverture. Il a ouvert une fois un fichier .xls mis en premier, sinon il ré-ouvre le fichier courant qui contient la macro. Donc avec d'autres fichiers .xls dans le répertoire, il n'y a plus le message mais une seule ouverture aléatoire et du fichier courant aussi. Par contre pour mes fichiers .xml rien à faire, il ne les voit pas.

Ai ajouté la commande :
.FileType = msoFileTypeAllFiles
Pas d'amélioration notable.

Je ne vois pas bien dans quelle direction continer à chercher ? Suis sous Excel XP en Win2000.

Si tu as d'autres propositions, elles sont les bienvenues. Merci pour ton aide jusqu'ici.

Sidonie
 

MichelXld

XLDnaute Barbatruc
bonjour Sidonie , bonjour Bernard

pour ouvrir les fichiers XML d'un repertoire tu peux tester :


Code:
Sub ouvrirFichiersXML()
Dim Fichier As String, Chemin As String

Chemin = 'C:\\Documents and Settings\\michel\\OOobook_examples\\ch05' 'adapter le chemin
Fichier = Dir(Chemin & '\\*.xml')

Do While Fichier <> ''
'Workbooks.Open Chemin & '\\' & Fichier
ActiveWorkbook.FollowHyperlink Chemin & '\\' & Fichier, NewWindow:=True
Fichier = Dir
Loop
End Sub


bon apres midi
MichelXld
 
S

Sidonie

Guest
Bonjour Michel Xld, Le Forum

Merci Michel pour ta proposition (ai profité d'un long week-end, c'est pourquoi je n'y reviens que maintenant).

Les fichiers xml s'ouvrent, mais pas au format Excel, ce qui n'est pas compatible avec la suite.

Le but final est d'ouvrir les fichiers xml d'un répertoire donné les uns après les autres (il y en aura 600) pour récupérer des données dans le fichier de base et le refermer ensuite.

Ouvre fichier 1, fais ceci et cel, fermer fichier 1
Ouvre fichier 2, etc...

J'ai pas mal avancé sur le fais ceci et cela, mais c'est à l'ouverture que ça coince. Je voulais éviter de le faire faire manuellement ou de les ouvrir les 600 à la fois...

Si une idée te vient Michel ou à vous sur le forum, elle est la bienvenue.

Merci
Sidonie
 

MichelXld

XLDnaute Barbatruc
bosoir Sidonie

je ne connais pas grand chose dans les fichiers XML , mais as tu testé l'option avec 'Workbooks.Open ' qui était placée dans mon message

Code:
Sub ouvrirFichiersXML()
Dim Fichier As String, Chemin As String

Chemin = 'C:\\Documents and Settings\\michel\\OOobook_examples\\ch05' 'adapter le chemin
Fichier = Dir(Chemin & '\\*.xml')

Do While Fichier <> ''
Workbooks.Open Chemin & '\\' & Fichier
Fichier = Dir
Loop
End Sub


bonne soiree
MichelXld
 
S

Sidonie

Guest
Bonjour MichelXlD, bonjour le forum

Merci Michel, j'avais en effet laissé la partie woorbooks open précédée du '. En l'activant, les fenêtres s'ouvrent séparément et dans Excel, c'est parfait. :lol:

Maintenant, j'étais partie sur d'autres boucles (cf mes premiers messages) dans l'idée d'ouvrir ces fichiers les uns après les autres et non tous en même temps. (avec le i et next i). Avec ton code qui fonctionne, je ne vois pas comment je pourrai inclure cette manipulation (je ne connais pas les do while et loop). Peut-être peux-tu m'indiquer comment m'y prendre ? Depuis que je passe du temps à essayer de macroriser, j'apprends plein de trucs c'est clair, par contre le chemin est encore long...

Merci pour ton aide.
Sidonie
 

MichelXld

XLDnaute Barbatruc
bonjour Sidonie

dans ce cas , tu peux tester cette modification


Code:
Sub ouvrirFichiersXML_V02()
Dim Fichier As String, Chemin As String
Dim Wb As Workbook

Chemin = 'C:\\Documents and Settings\\michel\\OOobook_examples\\ch05' 'adapter le chemin
Fichier = Dir(Chemin & '\\*.xml')

Do While Fichier <> '' 'boucle sur les fichiers
Set Wb = Workbooks.Open(Chemin & '\\' & Fichier) 'ouverture de chaque fichier

'mon action

Wb.Close 'fermeture du classeur avant de passer au suivant
Fichier = Dir
Loop
End Sub


bonne soiree
MichelXld
 
S

Sidonie

Guest
Hello MichelXlD

Un grand merci pour le complément de code, cela me semble convenir parfaitement.

A mon tour maintenant d'inclure les autres éléments en ma possession.

Merci à toi et au forum
Sidonie
 
X

xtor

Guest
Bonjour Michel,

Je tente d'utiliser ta macro, ... mais je bloque au niveau d'adapter &n bsp ...
Qu'est ce ?

Le do while &nbs p; me renvoie une erreur de compilation ...
Comme je ne comprends pas ces signes cabalistiques &n bs p ... je ne sais où mon erreur se trouve ...

Merci d'avance
 

Discussions similaires

Réponses
8
Affichages
695

Statistiques des forums

Discussions
312 595
Messages
2 090 094
Membres
104 374
dernier inscrit
cheick.coulibaly@dcsmali.