Ouvrir des fichiers .xls avec une macro excel

Résolu
Thubs -  
 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

4 réponses

  1. JvDo Messages postés 1924 Date d'inscription   Statut Membre Dernière intervention   859
     
    Bonsoir,

    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 Sub
    ne pas oublier de référencer "Microsoft scripting runtime" (menu outils/références... dans VBA)

    A+
    6
    1. olive
       
      Merci bcp JvDo!
      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???
      0
  2. JvDo Messages postés 1924 Date d'inscription   Statut Membre Dernière intervention   859
     
    Bonjour,

    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:=True
    tu vérifieras les options en faisant un enregistrement manuel de macro.

    cordialement
    2
  3. amanin
     
    je n'aarive pas ouvrir xls que faire
    2
  4. Thubs
     
    Merci filaliabdou :)
    Le chemin est "C:\Mes Documents\Devis"
    1
    1. olive
       
      Salut Thubs
      je rencontre en ce moment exactement le même problème que toi pour l'ouverture d'un nombre inconnu de fichiers dont les noms varient tous. Je sais que cette discussion-là remonte à pas mal de temps mais te souviens-tu de la solution?
      merci
      0