Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

copie divers fichiers

40 réponses
Avatar
Manu
Bonjour,

J'ai fais une macro, mais j'ai un soucis... Le but de la macro est de copié
des donnés dans un autre fichier, j'explique...
Mon fichier où je recois la copie est toujours le même avec le même nom de
fichier et d'emplacement par consequent aucuns soucis ici. en revanche mon
fichier source n'ais pas toujoujours le même et le nom est different à
chaque fois, alors j'ai un soucis car quand j'ai fini ma copie et que je
reviens sur le fichier source pour continuer ma macro, il prend en compte le
nom du fichier actif et c'est ce que je veux pas. est t'il possible de
revenir sur le fichier source sans qu'il prenne en compte le nom du fichier.
Je pourrais ainsi envoyer ma macro de n'importe quel fichier source.

J'espere avoir été clair.

Merci

Manu

10 réponses

1 2 3 4
Avatar
DanielCo
Bonjour,

Tu peux utiliser, pour référencer le fichier source :

Dim Fichier As String, Wbk As Workbook
Fichier = Application.GetOpenFilename("Fichiers Excel (*.xls*),
*.xls*")
Set Wbk = Workbooks.Open(Fichier)

Ensuite, tu peux utiliser "Wbk" à la place du classeur source :

Wbk.Sheets("Feuil1").Range("A1:A10").Copy

par exemple.

Cordialement.
Daniel


Bonjour,

J'ai fais une macro, mais j'ai un soucis... Le but de la macro est de copié
des donnés dans un autre fichier, j'explique...
Mon fichier où je recois la copie est toujours le même avec le même nom de
fichier et d'emplacement par consequent aucuns soucis ici. en revanche mon
fichier source n'ais pas toujoujours le même et le nom est different à chaque
fois, alors j'ai un soucis car quand j'ai fini ma copie et que je reviens sur
le fichier source pour continuer ma macro, il prend en compte le nom du
fichier actif et c'est ce que je veux pas. est t'il possible de revenir sur
le fichier source sans qu'il prenne en compte le nom du fichier. Je pourrais
ainsi envoyer ma macro de n'importe quel fichier source.

J'espere avoir été clair.

Merci

Manu
Avatar
Manu
Bonjour Daniel,

Ca ne fonctionne pas, j'ai mis :

Dim Fichier As String, Wbk As Workbook
Fichier = Application.GetOpenFilename("Fichiers Excel (*.xls*),*.xls*")
Set Wbk = Workbooks.Open(Fichier)

Wbk.Sheets("Feuil1").Range("A1:A10").Copy

Workbooks.Open Filename:= _
"C:Documents and SettingsManuBureausynthese.xlsx"
Range("A1").Select
Application.CutCopyMode = False

Dés que je lance la macro, il me demande d'ouvrir un fichier, je ne comprend
pas car le fichier source est deja ouvert et je démarre la macro à partir de
là (Macro en classeur personnal)
Puis ca bug sur la ligne Wbk.Sheets("Feuil1").Range("A1:A10").Copy

Manu



"DanielCo" a écrit dans le message de news:
kre06a$e5l$
Bonjour,

Tu peux utiliser, pour référencer le fichier source :

Dim Fichier As String, Wbk As Workbook
Fichier = Application.GetOpenFilename("Fichiers Excel (*.xls*),
*.xls*")
Set Wbk = Workbooks.Open(Fichier)

Ensuite, tu peux utiliser "Wbk" à la place du classeur source :

Wbk.Sheets("Feuil1").Range("A1:A10").Copy

par exemple.

Cordialement.
Daniel


Bonjour,

J'ai fais une macro, mais j'ai un soucis... Le but de la macro est de
copié des donnés dans un autre fichier, j'explique...
Mon fichier où je recois la copie est toujours le même avec le même nom
de fichier et d'emplacement par consequent aucuns soucis ici. en revanche
mon fichier source n'ais pas toujoujours le même et le nom est different
à chaque fois, alors j'ai un soucis car quand j'ai fini ma copie et que
je reviens sur le fichier source pour continuer ma macro, il prend en
compte le nom du fichier actif et c'est ce que je veux pas. est t'il
possible de revenir sur le fichier source sans qu'il prenne en compte le
nom du fichier. Je pourrais ainsi envoyer ma macro de n'importe quel
fichier source.

J'espere avoir été clair.

Merci

Manu




Avatar
DanielCo
Fichier = Application.GetOpenFilename("Fichiers Excel (*.xls*),
*.xls*")
Set Wbk = Workbooks.Open(Fichier)
te permet de choisir le fichier à ouvrir et de l'ouvrir. S'il est déjà
ouvert, après l'avoir ouvert, mets :
Set Wbk = ActiveWorkbook.
Quant à :
Wbk.Sheets("Feuil1").Range("A1:A10").Copy
J'ai dit que c'était un exemple d'utilisation.
Daniel

Bonjour Daniel,

Ca ne fonctionne pas, j'ai mis :

Dim Fichier As String, Wbk As Workbook
Fichier = Application.GetOpenFilename("Fichiers Excel (*.xls*),*.xls*")
Set Wbk = Workbooks.Open(Fichier)

Wbk.Sheets("Feuil1").Range("A1:A10").Copy

Workbooks.Open Filename:= _
"C:Documents and SettingsManuBureausynthese.xlsx"
Range("A1").Select
Application.CutCopyMode = False

Dés que je lance la macro, il me demande d'ouvrir un fichier, je ne comprend
pas car le fichier source est deja ouvert et je démarre la macro à partir de
là (Macro en classeur personnal)
Puis ca bug sur la ligne Wbk.Sheets("Feuil1").Range("A1:A10").Copy

Manu



"DanielCo" a écrit dans le message de news:
kre06a$e5l$
Bonjour,

Tu peux utiliser, pour référencer le fichier source :

Dim Fichier As String, Wbk As Workbook
Fichier = Application.GetOpenFilename("Fichiers Excel (*.xls*), *.xls*")
Set Wbk = Workbooks.Open(Fichier)

Ensuite, tu peux utiliser "Wbk" à la place du classeur source :

Wbk.Sheets("Feuil1").Range("A1:A10").Copy

par exemple.

Cordialement.
Daniel


Bonjour,

J'ai fais une macro, mais j'ai un soucis... Le but de la macro est de
copié des donnés dans un autre fichier, j'explique...
Mon fichier où je recois la copie est toujours le même avec le même nom de
fichier et d'emplacement par consequent aucuns soucis ici. en revanche mon
fichier source n'ais pas toujoujours le même et le nom est different à
chaque fois, alors j'ai un soucis car quand j'ai fini ma copie et que je
reviens sur le fichier source pour continuer ma macro, il prend en compte
le nom du fichier actif et c'est ce que je veux pas. est t'il possible de
revenir sur le fichier source sans qu'il prenne en compte le nom du
fichier. Je pourrais ainsi envoyer ma macro de n'importe quel fichier
source.

J'espere avoir été clair.

Merci

Manu




Avatar
Manu
Voila où j'en suis....
Dim Fichier As String, Wbk As Workbook
Fichier = Application.GetOpenFilename("Fichiers Excel (*.xls*),*.xls*")
Set Wbk = Workbooks.Open(Fichier)

Wbk.Sheets("Feuil1").Range("A1:A10").copy
Workbooks.Open Filename:= _
"C:Documents and Settingsmanubureausynthese.xlsx"
Range("A1").Select
Sheets("synthese").Select

ActiveSheet.Paste

je n'arrive pas à lancer la macro si le fichier source est ouvert même si
j'ote la ligne : Fichier = Application.GetOpenFilename("Fichiers Excel
(*.xls*),*.xls*")
Alors, si je le ferme, ca fonctionne mais ca amene le debugeur sur la ligne
: ActiveSheet.Paste, il me dis que la méthode Paste de la classe Workshett a
échoué. Erreur 1004.
J'ai bien compris que Wbk.Sheets("Feuil1").Range("A1:A10").copy est un
exemple, j'ai mis le nom de feuil en adéquation.

Merci

Manu






"DanielCo" a écrit dans le message de news:
kre9db$8f8$
Fichier = Application.GetOpenFilename("Fichiers Excel (*.xls*),
*.xls*")
Set Wbk = Workbooks.Open(Fichier)
te permet de choisir le fichier à ouvrir et de l'ouvrir. S'il est déjà
ouvert, après l'avoir ouvert, mets :
Set Wbk = ActiveWorkbook.
Quant à :
Wbk.Sheets("Feuil1").Range("A1:A10").Copy
J'ai dit que c'était un exemple d'utilisation.
Daniel

Bonjour Daniel,

Ca ne fonctionne pas, j'ai mis :

Dim Fichier As String, Wbk As Workbook
Fichier = Application.GetOpenFilename("Fichiers Excel
(*.xls*),*.xls*")
Set Wbk = Workbooks.Open(Fichier)

Wbk.Sheets("Feuil1").Range("A1:A10").Copy

Workbooks.Open Filename:= _
"C:Documents and SettingsManuBureausynthese.xlsx"
Range("A1").Select
Application.CutCopyMode = False

Dés que je lance la macro, il me demande d'ouvrir un fichier, je ne
comprend pas car le fichier source est deja ouvert et je démarre la macro
à partir de là (Macro en classeur personnal)
Puis ca bug sur la ligne Wbk.Sheets("Feuil1").Range("A1:A10").Copy

Manu



"DanielCo" a écrit dans le message de news:
kre06a$e5l$
Bonjour,

Tu peux utiliser, pour référencer le fichier source :

Dim Fichier As String, Wbk As Workbook
Fichier = Application.GetOpenFilename("Fichiers Excel (*.xls*),
*.xls*")
Set Wbk = Workbooks.Open(Fichier)

Ensuite, tu peux utiliser "Wbk" à la place du classeur source :

Wbk.Sheets("Feuil1").Range("A1:A10").Copy

par exemple.

Cordialement.
Daniel


Bonjour,

J'ai fais une macro, mais j'ai un soucis... Le but de la macro est de
copié des donnés dans un autre fichier, j'explique...
Mon fichier où je recois la copie est toujours le même avec le même nom
de fichier et d'emplacement par consequent aucuns soucis ici. en
revanche mon fichier source n'ais pas toujoujours le même et le nom est
different à chaque fois, alors j'ai un soucis car quand j'ai fini ma
copie et que je reviens sur le fichier source pour continuer ma macro,
il prend en compte le nom du fichier actif et c'est ce que je veux pas.
est t'il possible de revenir sur le fichier source sans qu'il prenne en
compte le nom du fichier. Je pourrais ainsi envoyer ma macro de
n'importe quel fichier source.

J'espere avoir été clair.

Merci

Manu










Avatar
DanielCo
La séquence normale serait :

Wbk.Sheets("Feuil1").Range("A1:A10").Copy
Workbooks.Open Filename:= _
"C:Documents and Settingsmanubureausynthese.xlsx"
Sheets("synthese").Select
Range("A1").Select
ActiveSheet.Paste
Daniel
Avatar
Jacky
Bonjour,

Ceci place dans un classeur
Ouvre un classeur par sélection
Copie la plage "A1:A10" de ce classeur
Et la colle dans le classeur "synthese.xlsx" dans la feuille "synthese" à la cellule a1
Puis ferme et sauvegarde le classeur "synthese.xlsx" et ferme le classeur ouvert par selection.

'------------------------
Sub jj()
Dim Fichier As String, Wbk As Workbook
Fichier = Application.GetOpenFilename("Fichiers Excel (*.xls*),*.xls*")
Set Wbk = Workbooks.Open(Fichier)
Workbooks.Open Filename:="C:Documents and Settingsmanubureausynthese.xlsx"
Wbk.Sheets("Feuil1").Range("A1:A10").Copy ActiveWorkbook.Sheets("synthese").[a1]
ActiveWorkbook.Close True
Workbooks(Wbk.Name).Close False
End Sub
'-----------------

--
Salutations
JJ


"Manu" a écrit dans le message de news: 51da7c3e$1$3738$

Bonjour,

J'ai fais une macro, mais j'ai un soucis... Le but de la macro est de copié des donnés dans un autre
fichier, j'explique...
Mon fichier où je recois la copie est toujours le même avec le même nom de fichier et d'emplacement par
consequent aucuns soucis ici. en revanche mon fichier source n'ais pas toujoujours le même et le nom est
different à chaque fois, alors j'ai un soucis car quand j'ai fini ma copie et que je reviens sur le fichier
source pour continuer ma macro, il prend en compte le nom du fichier actif et c'est ce que je veux pas. est
t'il possible de revenir sur le fichier source sans qu'il prenne en compte le nom du fichier. Je pourrais
ainsi envoyer ma macro de n'importe quel fichier source.

J'espere avoir été clair.

Merci

Manu


Avatar
DanielCo
Bonjour Jacky,

Workbooks(Wbk.Name).Close False



Pourquoi pas :

Wbk.Close False

Cordialement.
Daniel


Bonjour,

Ceci place dans un classeur
Ouvre un classeur par sélection
Copie la plage "A1:A10" de ce classeur
Et la colle dans le classeur "synthese.xlsx" dans la feuille "synthese" à la
cellule a1
Puis ferme et sauvegarde le classeur "synthese.xlsx" et ferme le classeur
ouvert par selection.

'------------------------
Sub jj()
Dim Fichier As String, Wbk As Workbook
Fichier = Application.GetOpenFilename("Fichiers Excel (*.xls*),*.xls*")
Set Wbk = Workbooks.Open(Fichier)
Workbooks.Open Filename:="C:Documents and
Settingsmanubureausynthese.xlsx"
Wbk.Sheets("Feuil1").Range("A1:A10").Copy
ActiveWorkbook.Sheets("synthese").[a1]
ActiveWorkbook.Close True
Workbooks(Wbk.Name).Close False
End Sub
'-----------------

--
Salutations
JJ


"Manu" a écrit dans le message de news:
51da7c3e$1$3738$

Bonjour,

J'ai fais une macro, mais j'ai un soucis... Le but de la macro est de copié
des donnés dans un autre fichier, j'explique...
Mon fichier où je recois la copie est toujours le même avec le même nom de
fichier et d'emplacement par consequent aucuns soucis ici. en revanche mon
fichier source n'ais pas toujoujours le même et le nom est different à
chaque fois, alors j'ai un soucis car quand j'ai fini ma copie et que je
reviens sur le fichier source pour continuer ma macro, il prend en compte
le nom du fichier actif et c'est ce que je veux pas. est t'il possible de
revenir sur le fichier source sans qu'il prenne en compte le nom du
fichier. Je pourrais ainsi envoyer ma macro de n'importe quel fichier
source.

J'espere avoir été clair.

Merci

Manu


Avatar
Manu
Bonjour Jacky,

Merci,
Alors, ca fonctionne, mais pourquoi me demander le nom du fichier alors
qu'il est ouvert.... (tout en sachant bien sur que cela pourrais être un
autre fichier) est t'il possible wbk reconnaisse le fichier actif sans qu'il
demande son ouverture ?

D'autre part, je ne souhaite rien fermé car j'ai d'autre copy à faire, j'ai
donc oter
ActiveWorkbook.Close True
Workbooks(Wbk.Name).Close False

Et comme j'ai d'autre copies, je souhaiterais adapter ce que jacky m'avais
donné :
Range("A" & Cells(Rows.Count, 1).End(xlUp).Row + 1).Activate
Pour aller à la derniere celulle vide de la colonne A et non toujours en A1
comme le stipule cette ligne : ActiveWorkbook.Sheets("synthese").[a1]

J'ai bien sur tenté : ActiveWorkbook.Sheets("synthese").Range("A" &
Cells(Rows.Count, 1).End(xlUp).Row + 1).Activate Mais ca n'a
evidemment pas fonctionné.

Merci



"DanielCo" a écrit dans le message de news:
krek5c$8cl$
Bonjour Jacky,

Workbooks(Wbk.Name).Close False



Pourquoi pas :

Wbk.Close False

Cordialement.
Daniel


Bonjour,

Ceci place dans un classeur
Ouvre un classeur par sélection
Copie la plage "A1:A10" de ce classeur
Et la colle dans le classeur "synthese.xlsx" dans la feuille "synthese" à
la cellule a1
Puis ferme et sauvegarde le classeur "synthese.xlsx" et ferme le classeur
ouvert par selection.

'------------------------
Sub jj()
Dim Fichier As String, Wbk As Workbook
Fichier = Application.GetOpenFilename("Fichiers Excel (*.xls*),*.xls*")
Set Wbk = Workbooks.Open(Fichier)
Workbooks.Open Filename:="C:Documents and
Settingsmanubureausynthese.xlsx"
Wbk.Sheets("Feuil1").Range("A1:A10").Copy
ActiveWorkbook.Sheets("synthese").[a1]
ActiveWorkbook.Close True
Workbooks(Wbk.Name).Close False
End Sub
'-----------------

--
Salutations
JJ


"Manu" a écrit dans le message de news:
51da7c3e$1$3738$

Bonjour,

J'ai fais une macro, mais j'ai un soucis... Le but de la macro est de
copié des donnés dans un autre fichier, j'explique...
Mon fichier où je recois la copie est toujours le même avec le même nom
de fichier et d'emplacement par consequent aucuns soucis ici. en
revanche mon fichier source n'ais pas toujoujours le même et le nom est
different à chaque fois, alors j'ai un soucis car quand j'ai fini ma
copie et que je reviens sur le fichier source pour continuer ma macro,
il prend en compte le nom du fichier actif et c'est ce que je veux pas.
est t'il possible de revenir sur le fichier source sans qu'il prenne en
compte le nom du fichier. Je pourrais ainsi envoyer ma macro de
n'importe quel fichier source.

J'espere avoir été clair.

Merci

Manu








Avatar
Jacky
Hello Daniel

Pourquoi pas :


Parce que ...dans un moment d'égarement certainement dû à la chaleur récente et rare,
je n'ai pas réfléchi plus loin que mon bout du nez.
Mais tu as tout à fait raison "Wbk.Close False" est amplement suffisant.

Pardonne-moi cet égarement
;o))
--
Salutations
JJ


"DanielCo" a écrit dans le message de news: krek5c$8cl$
Bonjour Jacky,

Workbooks(Wbk.Name).Close False



Pourquoi pas :

Wbk.Close False

Cordialement.
Daniel

Avatar
Jacky
Re....
mais pourquoi me demander le nom du fichier alors
qu'il est ouvert....
Ca on ne pouvait pas le deviner !!

D'autre part, je ne souhaite rien fermé


Si tu ne ferme pas le classeur synthèse tu auras à chaque copie le message d'excel comme quoi le fichier est
déjà ouvert.
A moins que tu travail toujours avec les 2 fichier ouvert.......Mais cela non plus, ont ne peux pas le
deviner!

Ceci copie sur la première ligne vide ligne de la colonne A
'------------
Sub jj()
Workbooks.Open Filename:="D:MesDocsclasseur2"
ThisWorkbook.Sheets("Feuil1").Range("A1:A10").Copy ActiveWorkbook.Sheets("synthese").Range("A" &
Cells(Rows.Count, 1).End(xlUp).Row + 1)
ActiveWorkbook.Close True
End Sub
'---------------------
--
Salutations
JJ


"Manu" a écrit dans le message de news: 51dad9c0$0$2302$
Bonjour Jacky,

Merci,
Alors, ca fonctionne, mais pourquoi me demander le nom du fichier alors qu'il est ouvert.... (tout en
sachant bien sur que cela pourrais être un autre fichier) est t'il possible wbk reconnaisse le fichier actif
sans qu'il demande son ouverture ?

D'autre part, je ne souhaite rien fermé car j'ai d'autre copy à faire, j'ai donc oter
ActiveWorkbook.Close True
Workbooks(Wbk.Name).Close False

Et comme j'ai d'autre copies, je souhaiterais adapter ce que jacky m'avais donné :
Range("A" & Cells(Rows.Count, 1).End(xlUp).Row + 1).Activate
Pour aller à la derniere celulle vide de la colonne A et non toujours en A1 comme le stipule cette ligne :
ActiveWorkbook.Sheets("synthese").[a1]

J'ai bien sur tenté : ActiveWorkbook.Sheets("synthese").Range("A" & Cells(Rows.Count, 1).End(xlUp).Row +
1).Activate Mais ca n'a evidemment pas fonctionné.

Merci



"DanielCo" a écrit dans le message de news: krek5c$8cl$
Bonjour Jacky,

Workbooks(Wbk.Name).Close False



Pourquoi pas :

Wbk.Close False

Cordialement.
Daniel


Bonjour,

Ceci place dans un classeur
Ouvre un classeur par sélection
Copie la plage "A1:A10" de ce classeur
Et la colle dans le classeur "synthese.xlsx" dans la feuille "synthese" à la cellule a1
Puis ferme et sauvegarde le classeur "synthese.xlsx" et ferme le classeur ouvert par selection.

'------------------------
Sub jj()
Dim Fichier As String, Wbk As Workbook
Fichier = Application.GetOpenFilename("Fichiers Excel (*.xls*),*.xls*")
Set Wbk = Workbooks.Open(Fichier)
Workbooks.Open Filename:="C:Documents and Settingsmanubureausynthese.xlsx"
Wbk.Sheets("Feuil1").Range("A1:A10").Copy ActiveWorkbook.Sheets("synthese").[a1]
ActiveWorkbook.Close True
Workbooks(Wbk.Name).Close False
End Sub
'-----------------

--
Salutations
JJ


"Manu" a écrit dans le message de news: 51da7c3e$1$3738$

Bonjour,

J'ai fais une macro, mais j'ai un soucis... Le but de la macro est de copié des donnés dans un autre
fichier, j'explique...
Mon fichier où je recois la copie est toujours le même avec le même nom de fichier et d'emplacement par
consequent aucuns soucis ici. en revanche mon fichier source n'ais pas toujoujours le même et le nom est
different à chaque fois, alors j'ai un soucis car quand j'ai fini ma copie et que je reviens sur le
fichier source pour continuer ma macro, il prend en compte le nom du fichier actif et c'est ce que je
veux pas. est t'il possible de revenir sur le fichier source sans qu'il prenne en compte le nom du
fichier. Je pourrais ainsi envoyer ma macro de n'importe quel fichier source.

J'espere avoir été clair.

Merci

Manu












1 2 3 4