Ouvrir des fichiers .xls avec une macro excel
Résolu
Thubs
-
amanin -
amanin -
Bonjour,
j'ai un petit problème avec Excel. Je crée une macro qui doit aller vérifier des données dans plusieurs fichiers excel d'un même dossier.
Le nombre de ces fichiers et leur nom est variable, donc il faudrait que la macro fasse une recherche de "*.xls" dans le dossier et puisse les ouvrir tous.
Est ce que c'est faisable ?
Merci
Phil
j'ai un petit problème avec Excel. Je crée une macro qui doit aller vérifier des données dans plusieurs fichiers excel d'un même dossier.
Le nombre de ces fichiers et leur nom est variable, donc il faudrait que la macro fasse une recherche de "*.xls" dans le dossier et puisse les ouvrir tous.
Est ce que c'est faisable ?
Merci
Phil
A voir également:
- Ouvrir des fichiers .xls avec une macro excel
- Comment ouvrir un fichier epub ? - Guide
- Ouvrir fichier .bin - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Ouvrir fichier .dat - Guide
- Comment ouvrir un fichier docx ? - Guide
4 réponses
Bonsoir,
voici une vieille contribution réaménagée :
A+
voici une vieille contribution réaménagée :
Option Explicit Public dossier Public Type BROWSEINFO hOwner As Long pidlRoot As Long pszDisplayName As String lpszTitle As String ulFlags As Long lpfn As Long lParam As Long iImage As Long End Type '32-bit API declarations Declare Function SHGetPathFromIDList Lib "shell32.dll" _ Alias "SHGetPathFromIDListA" (ByVal pidl As Long, ByVal pszPath As String) As Long Declare Function SHBrowseForFolder Lib "shell32.dll" _ Alias "SHBrowseForFolderA" (lpBrowseInfo As BROWSEINFO) As Long Function GetDirectory(Optional Msg) As String Dim bInfo As BROWSEINFO Dim path As String Dim r As Long, x As Long, pos As Integer bInfo.pidlRoot = 0& If IsMissing(Msg) Then bInfo.lpszTitle = "" Else bInfo.lpszTitle = Msg End If bInfo.ulFlags = &H1 x = SHBrowseForFolder(bInfo) path = Space$(512) r = SHGetPathFromIDList(ByVal x, ByVal path) If r Then pos = InStr(path, Chr$(0)) GetDirectory = Left(path, pos - 1) Else GetDirectory = "" End If End Function Sub Traiter_Dossier() 'Objectif : traiter les fichiers d'un répertoire ' Dim fs, i, nomfich, FileNumber, specfichier, nbfichiers Dim fso As New FileSystemObject dossier = GetDirectory("choisissez le dossier à traiter") If dossier <> "" Then Set fs = Application.FileSearch With fs .LookIn = dossier .SearchSubFolders = True .FileType = msoFileTypeAllFiles If .Execute() > 0 Then nbfichiers = .FoundFiles.Count MsgBox "Ce dossier contient " & nbfichiers & " fichier(s) répondant aux critères." For i = 1 To nbfichiers specfichier = .FoundFiles(i) '********************* 'Mettre ici le traitement à réaliser '********************* Next i Else MsgBox "Aucun fichier n'a été trouvé." End If End With End If End Subne pas oublier de référencer "Microsoft scripting runtime" (menu outils/références... dans VBA)
A+
Bonjour,
tu ouvres ton fichier avec
cordialement
tu ouvres ton fichier avec
Workbooks.OpenText Filename:=specfichier, Origin:= _ xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _ xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, Semicolon:=False, _ Comma:=False, Space:=True, Other:=False, FieldInfo:=Array(1, 1), _ TrailingMinusNumbers:=Truetu vérifieras les options en faisant un enregistrement manuel de macro.
cordialement
Par contre, j'ai un autre souci: le dossier que j'explore contient des fichiers .txt que je dois ouvrir avec Excel et mettre en forme en reconnaissant les espaces comme séparateurs de colonnes. Grâce à ton code, j'arrive à obtenir le nom du fichier mais je n'arrive pas à l'ouvrir et un message me disant que le fichier est introuvable apparaît. Je ne sais absolument pas d'où cela peut venir. Quelqu'un aurait-il une idée???