OVH Cloud OVH Cloud

Comment copier une feuille d'un fichier à un autre

7 réponses
Avatar
YANN24
Bonjour,
j'ai un fichier A et un fichier B. Je voudrais que la page 1 de mon fichier
B soit identique à la page 3 de mon fichier A (qui contient des informations
générales), sans en changer les noms des onglets (ils sont différents en A et
B). Ou peut-être puis-je copier une plage de cellulles (B1 jusqu'à F50 par
exemple). J'ai récupéré ce code chez FS, mais comment l'adapter. (il n'y a
que 2 formules sur ma feuille d'info, mais je peux m'en passer s'il le faut).
Merci. YANN

Attribute VB_Name = "CopieFeuilleSansFormules"
'copier une feuille dans un nouveau classeur en remplaçant
'les formules par leurs valeurs
Sub CopieFeuilleValeursSeules()
With ActiveSheet
.Copy
.UsedRange.Cells.Value = (.UsedRange.Cells.Value)
.Range("A1").Select
End With
End Sub 'fs

7 réponses

Avatar
YANN24
Je pensais, que je peux peu être créer une plage de cellule dans mon classeur
A.xls afin de la recopier dans la feuille de mon classeur B.xls. Comment
nommer une plage et la copier dans un fichier cible en VBA.
Peut-on copier du fichier source vers le fichier cible, ou doit-on mettre un
code VBA dans le fichier cible pour copier la sélection du fichier source?
(pour l'actualisation des données).
Merci.
YANN



Bonjour,
j'ai un fichier A et un fichier B. Je voudrais que la page 1 de mon fichier
B soit identique à la page 3 de mon fichier A (qui contient des informations
générales), sans en changer les noms des onglets (ils sont différents en A et
B). Ou peut-être puis-je copier une plage de cellulles (B1 jusqu'à F50 par
exemple). J'ai récupéré ce code chez FS, mais comment l'adapter. (il n'y a
que 2 formules sur ma feuille d'info, mais je peux m'en passer s'il le faut).
Merci. YANN

Attribute VB_Name = "CopieFeuilleSansFormules"
'copier une feuille dans un nouveau classeur en remplaçant
'les formules par leurs valeurs
Sub CopieFeuilleValeursSeules()
With ActiveSheet
.Copy
.UsedRange.Cells.Value = (.UsedRange.Cells.Value)
.Range("A1").Select
End With
End Sub 'fs


Avatar
MichDenis
Bonjour Yann24,

Cette procédure copie tout (cellules - valeur et format) d'une feuille vers une autre

Adapte le nom des classeurs et des feuilles de la procédure.

'----------------------------------
Sub CopierFeuille()

Dim Rg As Range

Application.ScreenUpdating = False
Set Rg = Workbooks("classeur1.xls").Worksheets(1).Cells
Rg.Copy

With Workbooks("classeur2.xls").Worksheets(2)
.Activate
.Range("A1").Activate
.Paste
.Range("A1").Select
End With
Rg.Parent.Activate
Set Sh = Nothing
End Sub
'----------------------------------


Salutations!



"YANN24" a écrit dans le message de news:

Bonjour,
j'ai un fichier A et un fichier B. Je voudrais que la page 1 de mon fichier
B soit identique à la page 3 de mon fichier A (qui contient des informations
générales), sans en changer les noms des onglets (ils sont différents en A et
B). Ou peut-être puis-je copier une plage de cellulles (B1 jusqu'à F50 par
exemple). J'ai récupéré ce code chez FS, mais comment l'adapter. (il n'y a
que 2 formules sur ma feuille d'info, mais je peux m'en passer s'il le faut).
Merci. YANN

Attribute VB_Name = "CopieFeuilleSansFormules"
'copier une feuille dans un nouveau classeur en remplaçant
'les formules par leurs valeurs
Sub CopieFeuilleValeursSeules()
With ActiveSheet
.Copy
.UsedRange.Cells.Value = (.UsedRange.Cells.Value)
.Range("A1").Select
End With
End Sub 'fs
Avatar
YANN24
Re,
donc cette procédure est à mettre dans le classeur 1, et je dois mettre les
chemin de fichier en [C:Mes DocumentsA.xls]Feuil1!A1] ???
Merci.
YANN


Bonjour Yann24,

Cette procédure copie tout (cellules - valeur et format) d'une feuille vers une autre

Adapte le nom des classeurs et des feuilles de la procédure.

'----------------------------------
Sub CopierFeuille()

Dim Rg As Range

Application.ScreenUpdating = False
Set Rg = Workbooks("classeur1.xls").Worksheets(1).Cells
Rg.Copy

With Workbooks("classeur2.xls").Worksheets(2)
.Activate
.Range("A1").Activate
.Paste
.Range("A1").Select
End With
Rg.Parent.Activate
Set Sh = Nothing
End Sub
'----------------------------------


Salutations!



"YANN24" a écrit dans le message de news:

Bonjour,
j'ai un fichier A et un fichier B. Je voudrais que la page 1 de mon fichier
B soit identique à la page 3 de mon fichier A (qui contient des informations
générales), sans en changer les noms des onglets (ils sont différents en A et
B). Ou peut-être puis-je copier une plage de cellulles (B1 jusqu'à F50 par
exemple). J'ai récupéré ce code chez FS, mais comment l'adapter. (il n'y a
que 2 formules sur ma feuille d'info, mais je peux m'en passer s'il le faut).
Merci. YANN

Attribute VB_Name = "CopieFeuilleSansFormules"
'copier une feuille dans un nouveau classeur en remplaçant
'les formules par leurs valeurs
Sub CopieFeuilleValeursSeules()
With ActiveSheet
.Copy
.UsedRange.Cells.Value = (.UsedRange.Cells.Value)
.Range("A1").Select
End With
End Sub 'fs





Avatar
YANN24
Re,
Bon, il me reste un petit soucis.
Quand j'applique cette macro, dans mon fichier A, toutes mes cellules
restent sélectionnées. Il faut que je fasse "Echap" manuellement. Peut-on
l'inscrire en plus dans la macro?
De plus, je voudrais que ce soit mes colonnes A à E qui soient collées, en
excluant la Ligne 1. Est-ce possible?
Merci. YANN


Bonjour Yann24,

Cette procédure copie tout (cellules - valeur et format) d'une feuille vers une autre

Adapte le nom des classeurs et des feuilles de la procédure.

'----------------------------------
Sub CopierFeuille()

Dim Rg As Range

Application.ScreenUpdating = False
Set Rg = Workbooks("classeur1.xls").Worksheets(1).Cells
Rg.Copy

With Workbooks("classeur2.xls").Worksheets(2)
.Activate
.Range("A1").Activate
.Paste
.Range("A1").Select
End With
Rg.Parent.Activate
Set Sh = Nothing
End Sub
'----------------------------------


Salutations!



"YANN24" a écrit dans le message de news:

Bonjour,
j'ai un fichier A et un fichier B. Je voudrais que la page 1 de mon fichier
B soit identique à la page 3 de mon fichier A (qui contient des informations
générales), sans en changer les noms des onglets (ils sont différents en A et
B). Ou peut-être puis-je copier une plage de cellulles (B1 jusqu'à F50 par
exemple). J'ai récupéré ce code chez FS, mais comment l'adapter. (il n'y a
que 2 formules sur ma feuille d'info, mais je peux m'en passer s'il le faut).
Merci. YANN

Attribute VB_Name = "CopieFeuilleSansFormules"
'copier une feuille dans un nouveau classeur en remplaçant
'les formules par leurs valeurs
Sub CopieFeuilleValeursSeules()
With ActiveSheet
.Copy
.UsedRange.Cells.Value = (.UsedRange.Cells.Value)
.Range("A1").Select
End With
End Sub 'fs





Avatar
YANN24
Re,
autre souci : cette procédure ne fonctionne que quand les deux fichiers sont
ouverts. Mais je voudrais que la copie puisse se faire meme si le fichier
cible (ici B.xls) est fermé. Comment faire? Utiliser le chemin d'accès
complet?
Merci. (ci après ma macro)
YANN

Sub CopierFeuille()
Dim Rg As Range
Application.ScreenUpdating = False
Set Rg = Workbooks("A.xls").Worksheets(1).Cells
Rg.Copy
With Workbooks("B.xls").Worksheets(2)
.Activate
.Range("A1").Activate
.Paste
.Range("A1").Select
End With
Rg.Parent.Activate
Set Sh = Nothing
End Sub
Avatar
MichDenis
Bonjour Yann24,


Sub CopierFeuille()

Dim Rg As Range

Application.ScreenUpdating = False
'Classeur Source
Set Rg = Workbooks("classeur1.xls").Worksheets(1).Range("A2:E65536")
Rg.Copy

'Classeur destination
With Workbooks("classeur2.xls").Worksheets(2)
.Activate
.Range("A2").Activate
.Paste
.Range("A2").Select
End With

Rg.Parent.Activate
Application.CutCopyMode = False
Set Rg = Nothing
End Sub


Salutations!



"YANN24" a écrit dans le message de news:

Re,
Bon, il me reste un petit soucis.
Quand j'applique cette macro, dans mon fichier A, toutes mes cellules
restent sélectionnées. Il faut que je fasse "Echap" manuellement. Peut-on
l'inscrire en plus dans la macro?
De plus, je voudrais que ce soit mes colonnes A à E qui soient collées, en
excluant la Ligne 1. Est-ce possible?
Merci. YANN


Bonjour Yann24,

Cette procédure copie tout (cellules - valeur et format) d'une feuille vers une autre

Adapte le nom des classeurs et des feuilles de la procédure.

'----------------------------------
Sub CopierFeuille()

Dim Rg As Range

Application.ScreenUpdating = False
Set Rg = Workbooks("classeur1.xls").Worksheets(1).Cells
Rg.Copy

With Workbooks("classeur2.xls").Worksheets(2)
.Activate
.Range("A1").Activate
.Paste
.Range("A1").Select
End With
Rg.Parent.Activate
Set Sh = Nothing
End Sub
'----------------------------------


Salutations!



"YANN24" a écrit dans le message de news:

Bonjour,
j'ai un fichier A et un fichier B. Je voudrais que la page 1 de mon fichier
B soit identique à la page 3 de mon fichier A (qui contient des informations
générales), sans en changer les noms des onglets (ils sont différents en A et
B). Ou peut-être puis-je copier une plage de cellulles (B1 jusqu'à F50 par
exemple). J'ai récupéré ce code chez FS, mais comment l'adapter. (il n'y a
que 2 formules sur ma feuille d'info, mais je peux m'en passer s'il le faut).
Merci. YANN

Attribute VB_Name = "CopieFeuilleSansFormules"
'copier une feuille dans un nouveau classeur en remplaçant
'les formules par leurs valeurs
Sub CopieFeuilleValeursSeules()
With ActiveSheet
.Copy
.UsedRange.Cells.Value = (.UsedRange.Cells.Value)
.Range("A1").Select
End With
End Sub 'fs





Avatar
YANN24
OK, merci, ça marche impecable. Seul dernier hic :
Comment faire lorsque mon fichier cible n'est pas ouvert? dois je mettre le
chemin exact? Sous quelle forme ?
[C:Mes DocumentsYoupifichier cible.xls] ???
Merci. YANN


Bonjour Yann24,


Sub CopierFeuille()

Dim Rg As Range

Application.ScreenUpdating = False
'Classeur Source
Set Rg = Workbooks("classeur1.xls").Worksheets(1).Range("A2:E65536")
Rg.Copy

'Classeur destination
With Workbooks("classeur2.xls").Worksheets(2)
.Activate
.Range("A2").Activate
.Paste
.Range("A2").Select
End With

Rg.Parent.Activate
Application.CutCopyMode = False
Set Rg = Nothing
End Sub


Salutations!



"YANN24" a écrit dans le message de news:

Re,
Bon, il me reste un petit soucis.
Quand j'applique cette macro, dans mon fichier A, toutes mes cellules
restent sélectionnées. Il faut que je fasse "Echap" manuellement. Peut-on
l'inscrire en plus dans la macro?
De plus, je voudrais que ce soit mes colonnes A à E qui soient collées, en
excluant la Ligne 1. Est-ce possible?
Merci. YANN


Bonjour Yann24,

Cette procédure copie tout (cellules - valeur et format) d'une feuille vers une autre

Adapte le nom des classeurs et des feuilles de la procédure.

'----------------------------------
Sub CopierFeuille()

Dim Rg As Range

Application.ScreenUpdating = False
Set Rg = Workbooks("classeur1.xls").Worksheets(1).Cells
Rg.Copy

With Workbooks("classeur2.xls").Worksheets(2)
.Activate
.Range("A1").Activate
.Paste
.Range("A1").Select
End With
Rg.Parent.Activate
Set Sh = Nothing
End Sub
'----------------------------------


Salutations!



"YANN24" a écrit dans le message de news:

Bonjour,
j'ai un fichier A et un fichier B. Je voudrais que la page 1 de mon fichier
B soit identique à la page 3 de mon fichier A (qui contient des informations
générales), sans en changer les noms des onglets (ils sont différents en A et
B). Ou peut-être puis-je copier une plage de cellulles (B1 jusqu'à F50 par
exemple). J'ai récupéré ce code chez FS, mais comment l'adapter. (il n'y a
que 2 formules sur ma feuille d'info, mais je peux m'en passer s'il le faut).
Merci. YANN

Attribute VB_Name = "CopieFeuilleSansFormules"
'copier une feuille dans un nouveau classeur en remplaçant
'les formules par leurs valeurs
Sub CopieFeuilleValeursSeules()
With ActiveSheet
.Copy
.UsedRange.Cells.Value = (.UsedRange.Cells.Value)
.Range("A1").Select
End With
End Sub 'fs