OVH Cloud OVH Cloud

Copie d'une feuille d'un classeur à l'autre

5 réponses
Avatar
YANN24
Re,
J'ai ma macro pour copier mes cellules de mon fichier A vers le B, mais mon
seul Pb, c'est si B est fermé, comment faire? Merci. YANN

Sub CopierFeuille()
Dim Rg As Range
Application.ScreenUpdating = False
'Classeur Source
Set Rg = Workbooks("A.xls").Worksheets(2).Range("A2:E65536")
Rg.Copy
'Classeur destination
With Workbooks("B.xls").Worksheets(1)
.Activate
.Range("A1").Activate
.Paste
.Range("A1").Select
End With
Rg.Parent.Activate
Application.CutCopyMode = False
Set Rg = Nothing
End Sub

5 réponses

Avatar
isabelle
bonjour YANN24,

met ce code en début de macro.

On Error Resume Next
Windows("B").Activate
If Err.Number <> 0 Then
Err.Clear
MsgBox "fichier non ouvert"
Workbooks.Open Filename:="C:B.xls"
End If

isabelle


Re,
J'ai ma macro pour copier mes cellules de mon fichier A vers le B, mais mon
seul Pb, c'est si B est fermé, comment faire? Merci. YANN

Sub CopierFeuille()
Dim Rg As Range
Application.ScreenUpdating = False
'Classeur Source
Set Rg = Workbooks("A.xls").Worksheets(2).Range("A2:E65536")
Rg.Copy
'Classeur destination
With Workbooks("B.xls").Worksheets(1)
.Activate
.Range("A1").Activate
.Paste
.Range("A1").Select
End With
Rg.Parent.Activate
Application.CutCopyMode = False
Set Rg = Nothing
End Sub



Avatar
YANN24
Bonjour Isabelle,
Merci, ça fonctionne bien. Mais n'y a t il pas un moyen pour transférer les
infos sans ouvrir le fichier cible?
Merci.YANN


bonjour YANN24,

met ce code en début de macro.

On Error Resume Next
Windows("B").Activate
If Err.Number <> 0 Then
Err.Clear
MsgBox "fichier non ouvert"
Workbooks.Open Filename:="C:B.xls"
End If

isabelle


Re,
J'ai ma macro pour copier mes cellules de mon fichier A vers le B, mais mon
seul Pb, c'est si B est fermé, comment faire? Merci. YANN

Sub CopierFeuille()
Dim Rg As Range
Application.ScreenUpdating = False
'Classeur Source
Set Rg = Workbooks("A.xls").Worksheets(2).Range("A2:E65536")
Rg.Copy
'Classeur destination
With Workbooks("B.xls").Worksheets(1)
.Activate
.Range("A1").Activate
.Paste
.Range("A1").Select
End With
Rg.Parent.Activate
Application.CutCopyMode = False
Set Rg = Nothing
End Sub






Avatar
isabelle
Bonjour Isabelle,
Merci, ça fonctionne bien. Mais n'y a t il pas un moyen pour transférer les
infos sans ouvrir le fichier cible?


sans le fichier cible ouvert, c'est impossible.
l'inverse est possible, mais pour une plage "A2:E65536" ça va être long.

isabelle

Avatar
YANN24
D'accord, donc si j'ai un fichier A ouvert, et que je veux importer des
valeurs de cellules d'un fichier B fermé, je peux. dans ce cas, ma macro sera
de quel type? Je peux faire une macro dans mo fichier A qui m'importe mes
données? Quelle genre de Macro?

Sub Copie()
Dim Rg As Range
Application.ScreenUpdating = False
'Classeur Source
Set Rg = Workbooks("B.xls").Worksheets(2).Range("A2:E50")
Rg.Copy
'Classeur destination
With Workbooks("A.xls").Worksheets(1)
.Activate
.Range("A1").Activate
.Paste
.Range("A1").Select
End With
Rg.Parent.Activate
Application.CutCopyMode = False
Set Rg = Nothing
End Sub
Avatar
isabelle
re..

voici un exemple pour récupérer la plage A1:C10

Sub valeurExterne()
ligne = 1
colonne = 1
onglet = "Feuil1"
Fichier = "zaza1.xls"
rep = "c:zaza"
For colonne = 1 To 3
For ligne = 1 To 10
MsgBox ExecuteExcel4Macro _
("'" & rep & "[" & Fichier & "]" & onglet & "'!R" & ligne & "C" &
colonne & "")
Next
Next
End Sub

isabelle

D'accord, donc si j'ai un fichier A ouvert, et que je veux importer des
valeurs de cellules d'un fichier B fermé, je peux. dans ce cas, ma macro sera
de quel type? Je peux faire une macro dans mo fichier A qui m'importe mes
données? Quelle genre de Macro?

Sub Copie()
Dim Rg As Range
Application.ScreenUpdating = False
'Classeur Source
Set Rg = Workbooks("B.xls").Worksheets(2).Range("A2:E50")
Rg.Copy
'Classeur destination
With Workbooks("A.xls").Worksheets(1)
.Activate
.Range("A1").Activate
.Paste
.Range("A1").Select
End With
Rg.Parent.Activate
Application.CutCopyMode = False
Set Rg = Nothing
End Sub