OVH Cloud OVH Cloud

ouvrir un fichier

2 réponses
Avatar
Patrice
Bonjour,

Je chercher à ouvrir un fichier distinct du fichier qui exécute la macro
afin de récupérer des données, le refermer puis ouvrir un nouveau.
Les chemins des fichiers à ouvrir sont stockés dans une feuille du
fichier principal.

Pouvez-vous m'aider dans cette tache?

D'avance merci.

Patrice.

2 réponses

Avatar
MichDenis
Un exemple à partir duquel tu peux élaborer ta macro.


Sub test()

Dim File As Workbook, Feuille As Worksheet
Dim Rg As Range, C As Range, CP As Range
'Où sont les chemins
Set Rg = ThisWorkbook.Worksheets("Feuil1").Range("A1:A5")

On Error Resume Next
For Each C In Rg
If C <> "" Then
If Dir(C.Value) <> "" Then
Set File = Workbooks.Open(C.Value)
'Fichier est ouvert
'applique ton code ici
With File
'ton code ici
For Each Feuille In .Worksheets
Set CP = Feuille.UsedRange
If Not CP Is Nothing Then
With ThisWorkbook.Worksheets("Feuil2")
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row + 1
If Err <> 0 Then Err = 0: DerLig = 1
CP.Copy .Range("A" & DerLig)
End With
End If
Next
End With
File.Close True 'ferme et enregistre modifications
End If
End If
Next
End Sub




"Patrice" a écrit dans le message de news: 456dc94c$0$29507$
Bonjour,

Je chercher à ouvrir un fichier distinct du fichier qui exécute la macro
afin de récupérer des données, le refermer puis ouvrir un nouveau.
Les chemins des fichiers à ouvrir sont stockés dans une feuille du
fichier principal.

Pouvez-vous m'aider dans cette tache?

D'avance merci.

Patrice.
Avatar
Patrice
Merci beaucoup, je me met au travail!

Un exemple à partir duquel tu peux élaborer ta macro.


Sub test()

Dim File As Workbook, Feuille As Worksheet
Dim Rg As Range, C As Range, CP As Range
'Où sont les chemins
Set Rg = ThisWorkbook.Worksheets("Feuil1").Range("A1:A5")

On Error Resume Next
For Each C In Rg
If C <> "" Then
If Dir(C.Value) <> "" Then
Set File = Workbooks.Open(C.Value)
'Fichier est ouvert
'applique ton code ici
With File
'ton code ici
For Each Feuille In .Worksheets
Set CP = Feuille.UsedRange
If Not CP Is Nothing Then
With ThisWorkbook.Worksheets("Feuil2")
DerLig = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByRows, _
SearchDirection:=xlPrevious).Row + 1
If Err <> 0 Then Err = 0: DerLig = 1
CP.Copy .Range("A" & DerLig)
End With
End If
Next
End With
File.Close True 'ferme et enregistre modifications
End If
End If
Next
End Sub




"Patrice" a écrit dans le message de news: 456dc94c$0$29507$
Bonjour,

Je chercher à ouvrir un fichier distinct du fichier qui exécute la macro
afin de récupérer des données, le refermer puis ouvrir un nouveau.
Les chemins des fichiers à ouvrir sont stockés dans une feuille du
fichier principal.

Pouvez-vous m'aider dans cette tache?

D'avance merci.

Patrice.