Rechercher : dans
Par :

Ouvrir des fichiers .xls avec une macro excel

Dernière réponse le 10 avr 2008 à 20:18:20 Thubs, le 16 oct 2003 à 10:43:33 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « ouvrir des fichiers .xls avec une macro excel » dans :
Transformer un fichier Microsoft Excel (.xls) en PDF VoirTransformer en fichier PDF un fichier Microsoft Excel (.xls) Rien de plus simple ! Ouvrez votre fichier *.xls avec OpenOffice.org Réglez éventuellement la mise en page par le menu Format / Page... Dès lors, 2 solutions pour transformer en...
Excel - Convertir fichier(s) CSV / XLS VoirComme dit dans le titre, cette application convertit des fichiers CSV en fichiers XLS N’est pas nécessaire pour Excel 2007, ce dernier faisant la conversion automatiquement La conversion n’ayant pas de mise en forme, en cas de modification...

1

filaliabdou, le 16 oct 2003 à 12:20:20
  • +1

C'est faisable, je dois te répondre en détail vers 22h00.
quel est le chemin de ton réperetoire ?


time is not money, time is life

Répondre à filaliabdou

2

Thubs, le 16 oct 2003 à 22:08:03

Merci filaliabdou :)
Le chemin est "C:\Mes Documents\Devis"

Répondre à Thubs

3

olive, le 8 fév 2007 à 14:33:27

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

Répondre à olive

4

JvDo, le 8 fév 2007 à 18:12:19
  • +3

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+

Répondre à JvDo

5

olive, le 12 fév 2007 à 12:09:54

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???

Répondre à olive

6

JvDo, le 12 fév 2007 à 14:39:19

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

Répondre à JvDo

7

 amanin, le 10 avr 2008 à 20:18:20

Je n'aarive pas ouvrir xls que faire

Répondre à amanin
Collection CommentÇaMarche.net