OVH Cloud OVH Cloud

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
Jacky
Heu!
Tu auras compris que
Workbooks.Open Filename:="D:MesDocsclasseur2"
Doit être remplacer par TON chemin de classeur

--
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












Avatar
Manu
Je me suis peut etre mal exprimé Jacky, je souhaitais souligné que le
fichier source où je copie est souvent different alors que celui qui
receptionne la copie est toujours le même, mais dans le fichier source (et
quelque soit son nom) j'ai bcp de choses à copier de diverses feuil dans le
fichier reception qui est lui toujours le même.

Merci pour ton code, je le test demain et vous tiens au courant demain de
mon avancement.

bonne soirée

Manu




"Jacky" a écrit dans le message de news:
krenrt$k3b$
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
















Avatar
Manu
Bonsoir,

Ca bug sur cette ligne,

ThisWorkbook.Sheets("Feuil1").Range("A1:A10").Copy
ActiveWorkbook.Sheets("synthese").Range("A" &
Cells(Rows.Count, 1).End(xlUp).Row + 1)

J'ai pourtant bien mis le bon nom de feuil

Il me erreur d'execution N°9 L'indice n'apparient pas à la selection....

Manu


"Jacky" a écrit dans le message de news:
krenrt$k3b$
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
















Avatar
DanielCo
Bonsoir,
Tout doit tenir sur la même ligne.
Daniel

Bonsoir,

Ca bug sur cette ligne,

ThisWorkbook.Sheets("Feuil1").Range("A1:A10").Copy
ActiveWorkbook.Sheets("synthese").Range("A" &
Cells(Rows.Count, 1).End(xlUp).Row + 1)

J'ai pourtant bien mis le bon nom de feuil

Il me erreur d'execution N°9 L'indice n'apparient pas à la selection....

Manu
Avatar
MichD
Bonjour,

'-------------------------------
ThisWorkbook.Sheets("Feuil1").Range("A1:A10").Copy
ActiveWorkbook.Sheets("synthese").Range("A" &
Cells(Rows.Count, 1).End(xlUp).Row + 1)
'-------------------------------

Il serait préférable d'écrire comme ceci :

With
ActiveWorkbook.Sheets("synthese")
ThisWorkbook.Sheets("Feuil1").Range("A1:A10").Copy _
.Range("A" & .Cells(Rows.Count, 1).End(xlUp).Row + 1)
End With

En plus, assure-toi que la feuille "synthese" appartient réellement
au classeur qui est actif à l'écran au moment de l'exécution. De plus,
vérifie l'orthographe des noms des feuilles. (Synthese n'a pas d'accent?)


MichD
---------------------------------------------------------------
Avatar
MichD
parlant de ligne, ceci doit être sur la même ligne

With ActiveWorkbook.Sheets("synthese")


MichD
---------------------------------------------------------------
Avatar
DanielCo
Bonjour,

et même :

.Range("A" & .Cells(.Rows.Count, 1).End(xlUp).Row + 1)

Cordialement.
Daniel


Bonjour,

'-------------------------------
ThisWorkbook.Sheets("Feuil1").Range("A1:A10").Copy
ActiveWorkbook.Sheets("synthese").Range("A" &
Cells(Rows.Count, 1).End(xlUp).Row + 1)
'-------------------------------

Il serait préférable d'écrire comme ceci :

With
ActiveWorkbook.Sheets("synthese")
ThisWorkbook.Sheets("Feuil1").Range("A1:A10").Copy _
.Range("A" & .Cells(Rows.Count, 1).End(xlUp).Row + 1)
End With

En plus, assure-toi que la feuille "synthese" appartient réellement
au classeur qui est actif à l'écran au moment de l'exécution. De plus,
vérifie l'orthographe des noms des feuilles. (Synthese n'a pas d'accent?)


MichD
---------------------------------------------------------------
Avatar
MichD
Bonjour Daniel

Qu'as-tu contre cette syntaxe ?

With ActiveWorkbook.Sheets("synthese")
ThisWorkbook.Sheets("Feuil1").Range("A1:A10").Copy _
.Range("A" & .Cells(Rows.Count, 1).End(xlUp).Row + 1)
End With

Les lignes, il faut les écrire et non les "sniffer"... ;-)))

MichD
---------------------------------------------------------------
Avatar
DanielCo
J'ai juste mis un "." devant "Rows" au cas où la feuille active soit
une feuille de graphique...
Daniel


Bonjour Daniel

Qu'as-tu contre cette syntaxe ?

With ActiveWorkbook.Sheets("synthese")
ThisWorkbook.Sheets("Feuil1").Range("A1:A10").Copy _
.Range("A" & .Cells(Rows.Count, 1).End(xlUp).Row + 1)
End With

Les lignes, il faut les écrire et non les "sniffer"... ;-)))

MichD
---------------------------------------------------------------
Avatar
Manu
Merci à vous tous... mais vraiment je galere, j'ai fais divers tests
differents qui n'ont pas fonctionné ce soir, mais dés demain soir je m'y
remet et vous tiens au courant.

Vraiment merci à vous !!!

Pas facile d'incrementer des codes dans une macro lorsqu'on ne connais pas
le VBA

Manu


"DanielCo" a écrit dans le message de news:
krhn1m$hi2$
J'ai juste mis un "." devant "Rows" au cas où la feuille active soit une
feuille de graphique...
Daniel


Bonjour Daniel

Qu'as-tu contre cette syntaxe ?

With ActiveWorkbook.Sheets("synthese")
ThisWorkbook.Sheets("Feuil1").Range("A1:A10").Copy _
.Range("A" & .Cells(Rows.Count, 1).End(xlUp).Row + 1)
End With

Les lignes, il faut les écrire et non les "sniffer"... ;-)))

MichD
---------------------------------------------------------------




1 2 3 4