Ouverture des fichiers

Bonjour ,

Je souhaite ouvrir des fichiers Excel dont les répertoire d'accès sont dans une colonne d'un tableau ;les utiliser pour effectuer des opérations et ensuite refermer les fichiers.J'ai donc ce code

Public Function OuvrirFichier(MonFichier As String)

   'verification que le  fichier existe '
   If Len(Dir(MonFichier)) = 0 Then
      OuvrirFichier = False
      Exit Function
   Else
   End If

   'ouvre le fichier dans l' application associée
   Dim MonApplication As Object
   Set MonApplication = CreateObject("Shell.Application")

    MonApplication.Open (MonFichier)
    OuvrirFichier = True
   Set MonApplication = Nothing

End Function

Auriez vous une idée de comment tous les ouvrir à partir des répertoires dans le tableau colonne E et les refermer à la fin de la macro ?

Cordialement ,

Hello,

Pour utiliser une fonction il faut l'appeler donc :

Sub lancement_ouverture

call OuvrirFichier(Range("E1").value)
' ici du code
activeworkbook.close

end sub

Cet exemple ouvre et ferme le fichier dont le chemin se trouve en E1

Merci pour ton retour ,

J'aurais une question ,avec cette configuration là ou j'ouvre les fichiers à la suite .Comment les refermer à la suite ?Ou fermer tous les fichiers ouvert à la fin .

Sub transfert()

Dim wb()
Dim WS_I As Worksheet
Dim ligne As Long
Dim i As Integer

Dim MacroDebut As Date 'afin de déterminer la vitesse d'éxécution de ma macro'

MacroDebut = Now

Application.ScreenUpdating = False
Application.DisplayAlerts = False

wb = Array("contrib1", "contrib2", "contrib3", "contrib4")

'Fichier consolidation des données '

Set WS_I = ThisWorkbook.Worksheets("Feuil2")
For i = 0 To UBound(wb)
    Workbooks.Open Filename:=ThisWorkbook.Path & "\" & wb(i) & ".xlsx"
    ActiveWorkbook.ActiveSheet.Cells.Copy
    WS_I.Cells.PasteSpecial Paste:=xlPasteAll, SkipBlanks:=True 'skipblanc permettra de ne pas écraser les cellules avec valeur par des cellules sans valeur'

Next i

Cordialement ,

Bonjour à tous,

Le second me semble plus approprié déjà pour manipuler des fichiers. Dans l'énoncé, il est question des noms de fichier dans une colonne. Il faudrait penser la boucle à partir de ce point.

Voici un essai :

Sub transfert()

dim wsDest as worksheet, nvl&

Set wsDest = ThisWorkbook.Worksheets("Feuil2")

For i = 1 to sheets("feuilleavecreps").range("quicontientreps").rows.count
    nvl = wsDest.usedrange.rows.count + wsDest.usedrange.row
    with Workbooks.Open(ThisWorkbook.Path & "\" & .cells(i, 1).value & ".xlsx")
        with .activesheet.usedrange
            wsDest.cells(nvl, 1).resize(.rows.count, .columns.count).value = .value
        end with
        .close true
    end with
Next i

end sub

Cdlt,

Merci pour ton retour ,mais je ne comprend pas ce que ta macro fait exactement

cordialement ,

Merci ,

J'ai enfin compris l'idée de ta macro .

C'étais bien ce que je cherchais .

Cordialement ,

Rechercher des sujets similaires à "ouverture fichiers"