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.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
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.
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" <pat@yaou.frrr> a écrit dans le message de news: 456dc94c$0$29507$426a34cc@news.free.fr...
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.
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.
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.
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" <pat@yaou.frrr> a écrit dans le message de news: 456dc94c$0$29507$426a34cc@news.free.fr...
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.
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.