OVH Cloud OVH Cloud

importer/exporter une feuille

23 réponses
Avatar
Pascal
bonsoir
kkun aurait 'il la gentillesse de m'expliquer comment EXPORTER à partir du
classeur en cours une feuille
contenant en plus du code et des objets boutons

et ensuite dans le nouveau classeur IMPORTER cette feuille avec boutons et
code bien entendu
ai trouvé importer des données mais ne prend pas mon code et les objets

merci de vos conseills
Pascal

10 réponses

1 2 3
Avatar
LSteph
Bonjour Fredo,

Si je peux me permettre..
faut oublier tous ces select qui sont inutiles!
Exemple ceci déplace une feuille d'un classeur à l'autre sans rien avoir
à demander de sélectionner:

Worbooks("toto.xls").sheets(2).copy _
Workbooks("titi.xls").sheets(3)


@+

--
lSteph

Fredo P a écrit :
Bonjour
les 2 classeurs doivent être ouverts.
Sub Import()
Windows("Classeur_importé.xls").Activate
Range("A1:R14").Select
Selection.Copy
Windows("Classeur_de_ réception.xls").Activate
Range("A1").Select
ActiveSheet.Paste
End Sub

"Pascal" ,com> a écrit dans le message de news:
eDan$
hello,
merci à vous 3 pour les réponses
pour exportation cela fonctionne très bien merci
pour Importation je vois pas comment importer cette feuille on ne peut
qu'insérer des feuilles vides ou déjà toutes prêtes
Reidée?

"LSteph" a écrit dans le message de groupe de
discussion :
Bonjour,

clic droit onglet

créer une copie de la feuille

choisir nouveau classeur

Enregistrer sous cektuveu.xls

Rajouter tout le reste ensuite
(les autres bidules qui eux n'ont pas de code)

Enregistrer

--
lSteph


Pascal a écrit :
bonsoir
kkun aurait 'il la gentillesse de m'expliquer comment EXPORTER à partir
du classeur en cours une feuille
contenant en plus du code et des objets boutons

et ensuite dans le nouveau classeur IMPORTER cette feuille avec boutons
et code bien entendu
ai trouvé importer des données mais ne prend pas mon code et les objets

merci de vos conseills
Pascal












Avatar
LSteph
...pardon j'ai dit déplace (qui serait .move)
ici je voulais dire transfère une copie ( .copy)

;-)

LSteph a écrit :
Bonjour Fredo,

Si je peux me permettre..
faut oublier tous ces select qui sont inutiles!
Exemple ceci déplace une feuille d'un classeur à l'autre sans rien avoir
à demander de sélectionner:

Worbooks("toto.xls").sheets(2).copy _
Workbooks("titi.xls").sheets(3)


@+

--
lSteph

Fredo P a écrit :
Bonjour
les 2 classeurs doivent être ouverts.
Sub Import()
Windows("Classeur_importé.xls").Activate
Range("A1:R14").Select
Selection.Copy
Windows("Classeur_de_ réception.xls").Activate
Range("A1").Select
ActiveSheet.Paste
End Sub

"Pascal" ,com> a écrit dans le message de news:
eDan$
hello,
merci à vous 3 pour les réponses
pour exportation cela fonctionne très bien merci
pour Importation je vois pas comment importer cette feuille on ne
peut qu'insérer des feuilles vides ou déjà toutes prêtes
Reidée?

"LSteph" a écrit dans le message de groupe de
discussion :
Bonjour,

clic droit onglet

créer une copie de la feuille

choisir nouveau classeur

Enregistrer sous cektuveu.xls

Rajouter tout le reste ensuite
(les autres bidules qui eux n'ont pas de code)

Enregistrer

--
lSteph


Pascal a écrit :
bonsoir
kkun aurait 'il la gentillesse de m'expliquer comment EXPORTER à
partir du classeur en cours une feuille
contenant en plus du code et des objets boutons

et ensuite dans le nouveau classeur IMPORTER cette feuille avec
boutons et code bien entendu
ai trouvé importer des données mais ne prend pas mon code et les
objets

merci de vos conseills
Pascal














Avatar
Pascal
Bonjour,
non aucun module juste code feuille et objets
ceci me convient parfaitement
merci à toi et tous les intervenants
Pascal


"LSteph" a écrit dans le message de groupe de
discussion : #
Bonjour,

si c'est que tu préfères en VBA, ceci prend la seconde feuille de toto
pour la mettre dans titi avant la seconde feuille (donc peu "importe" qui
"exporte")

Sub transfèreunecopiedelafeuille2()
Workbooks("toto.xls").Sheets(2).Copy _
Workbooks("titi.xls").Sheets(2)
End Sub

Tout le code des boutons de la feuille (qui devrait être dans le code de
feuille est importé aussi). Ton problème est sans doute si le code de ces
boutons fait référence à un ou des module(s) du classeur d'origine.
Dans ce cas il vaudrait effectivement mieux utiliser le classeur qui
contient la feuille ou il ya les macros avec ses modules et peut-être qui
sait ses userforms et importer plutôt
en substance depuis l'autre classeur les onglets réservés aux données.

Si j'ai bien compris.

--
lSteph

Pascal a écrit :
hello,
merci à vous 3 pour les réponses
pour exportation cela fonctionne très bien merci
pour Importation je vois pas comment importer cette feuille on ne peut
qu'insérer des feuilles vides ou déjà toutes prêtes
Reidée?

"LSteph" a écrit dans le message de groupe de
discussion :
Bonjour,

clic droit onglet

créer une copie de la feuille

choisir nouveau classeur

Enregistrer sous cektuveu.xls

Rajouter tout le reste ensuite
(les autres bidules qui eux n'ont pas de code)

Enregistrer

--
lSteph


Pascal a écrit :
bonsoir
kkun aurait 'il la gentillesse de m'expliquer comment EXPORTER à
partir du classeur en cours une feuille
contenant en plus du code et des objets boutons

et ensuite dans le nouveau classeur IMPORTER cette feuille avec boutons
et code bien entendu
ai trouvé importer des données mais ne prend pas mon code et les objets

merci de vos conseills
Pascal











Avatar
Pascal
hello Isteph,
après test, cela provoque une erreur : l'indice n'appartient pas à la
sélection
pourtant je pars de TEST (donc ouvert), sur clic j'applique cette procédure
Dim Chemin as string
Chemin = "C:Documents and Settings"
Workbooks.Open Chemin & "classeur2.xls", 0, ReadOnly:úlse
Workbooks(Chemin & "classeur2.xls").Sheets("Feuil7").Copy Workbooks(Chemin &
"test.xls").Sheets("Feuil7")
si t'as une idée, elle est bienvenue

le but en fait est de REMPLACER dans TEST.XLS la feuil7 sur clic d'un bouton
et à la première exécution de le copier puisque au départ cette feuille
n'existera pas
Pascal



"LSteph" a écrit dans le message de groupe de
discussion : #
Bonjour,

si c'est que tu préfères en VBA, ceci prend la seconde feuille de toto
pour la mettre dans titi avant la seconde feuille (donc peu "importe" qui
"exporte")

Sub transfèreunecopiedelafeuille2()
Workbooks("toto.xls").Sheets(2).Copy _
Workbooks("titi.xls").Sheets(2)
End Sub

Tout le code des boutons de la feuille (qui devrait être dans le code de
feuille est importé aussi). Ton problème est sans doute si le code de ces
boutons fait référence à un ou des module(s) du classeur d'origine.
Dans ce cas il vaudrait effectivement mieux utiliser le classeur qui
contient la feuille ou il ya les macros avec ses modules et peut-être qui
sait ses userforms et importer plutôt
en substance depuis l'autre classeur les onglets réservés aux données.

Si j'ai bien compris.


Avatar
Pascal
voici le bon code qui provoque l'erreur
Dim Chemin

Chemin = "C:Documents and Settings"
Workbooks.Open Chemin & "classeur2.xls", 0, ReadOnly:úlse
fichier1 = ActiveWorkbook.Name

Workbooks(fichier1).Sheets(7).Copy Workbooks("Test.xls").Sheets(7)
Workbooks(fichier1).Close SaveChanges:úlse

c'est juste la copie , la fermeture fonctionne
Avatar
lSteph
Bonjour,
Mon exemple considérait des classeurs ouverts, lorsque tu utilises
ceci:

Workbooks(fichier1).Sheets(7).Copy Workbooks("Test.xls").Sheets(7)

cela prend le septième onglet du classeur dont le nom est dans ta
variable fichier1
pour aller en mettre copie juste avant le septième onglet de ton
classeur Test.xls

Le reste tient à l'existence de ce nombre d'onglets et aux noms des
classeurs que tu vas chercher
de même si tu veux utiliser plutôt les noms des feuilles ceci....:

Sub copif()
Workbooks("Classeur2").Worksheets("Feuil7").Copy _
Workbooks("Classeur1").Worksheets("Feuil3")
End Sub

...copie la feuille de Classeur2 nommée "Feuil7" dans le Classeur1
juste avant la feuille nommée "Feuil3"

Cordialement.

lSteph



On 30 juil, 15:51, "Pascal" ,com> wrote:
voici le bon code qui provoque l'erreur
Dim Chemin

Chemin = "C:Documents and Settings"
Workbooks.Open Chemin & "classeur2.xls", 0, ReadOnly:úlse
fichier1 = ActiveWorkbook.Name

Workbooks(fichier1).Sheets(7).Copy Workbooks("Test.xls").Sheets(7)
Workbooks(fichier1).Close SaveChanges:úlse

c'est juste la copie , la fermeture fonctionne


Avatar
Pascal
hello,
dans l'exemple précedent les classeurs étaient bien ouvert!!
pour ton autre proposition, navré mais cela reste avec la même erreur
la seule chose que je vois dans Test.XLS il n'y a qu'un onglet "Feuil3" cela
jouerai t'il?
ai essayé en changeant feuil7 par feuil3 ou 2 ou 1 mais rien...
sorry d'insisté
Pascal

Dim Chemin
Chemin = "C:Documents and Settings"
Workbooks.Open Chemin & "classeur2.xls", 0, ReadOnly:úlse
fichier1 = ActiveWorkbook.Name
Workbooks(Chemin & fichier1).Worksheets("Feuil7").Copy Workbooks(Chemin &
"test.xls").Worksheets("Feuil7")
Workbooks(fichier1).Close SaveChanges:úlse




"lSteph" a écrit dans le message de groupe de
discussion :

Bonjour,
Mon exemple considérait des classeurs ouverts, lorsque tu utilises
ceci:

Workbooks(fichier1).Sheets(7).Copy Workbooks("Test.xls").Sheets(7)

cela prend le septième onglet du classeur dont le nom est dans ta
variable fichier1
pour aller en mettre copie juste avant le septième onglet de ton
classeur Test.xls

Le reste tient à l'existence de ce nombre d'onglets et aux noms des
classeurs que tu vas chercher
de même si tu veux utiliser plutôt les noms des feuilles ceci....:

Sub copif()
Workbooks("Classeur2").Worksheets("Feuil7").Copy _
Workbooks("Classeur1").Worksheets("Feuil3")
End Sub

...copie la feuille de Classeur2 nommée "Feuil7" dans le Classeur1
juste avant la feuille nommée "Feuil3"

Cordialement.

lSteph



On 30 juil, 15:51, "Pascal" ,com> wrote:
voici le bon code qui provoque l'erreur
Dim Chemin

Chemin = "C:Documents and Settings"
Workbooks.Open Chemin & "classeur2.xls", 0, ReadOnly:úlse
fichier1 = ActiveWorkbook.Name

Workbooks(fichier1).Sheets(7).Copy Workbooks("Test.xls").Sheets(7)
Workbooks(fichier1).Close SaveChanges:úlse

c'est juste la copie , la fermeture fonctionne





Avatar
LSteph
pourquoi ce "chemin"
puisque les classeurs sont ouverts?!

Test.XLS et tesT.xls c'est pas pareil!

Si tu n'as qu'un onglet pourquoi utiliser un nom qui n'existe pas?

Essaie ceci,
ouvre tes deux fichiers, ensuite
clique sur enregistrer une macro
prends la feuille que tu veux dans le classeur d'origine et
mets la où tu veux dans le classeur destination puis
tu cliques sur arrêter la macro
tu fais alt+F11 tu copies le code obtenu
et tu viens coller cela ici dans un message.

@+

--
lSteph





Pascal a écrit :
hello,
dans l'exemple précedent les classeurs étaient bien ouvert!!
pour ton autre proposition, navré mais cela reste avec la même erreur
la seule chose que je vois dans Test.XLS il n'y a qu'un onglet "Feuil3" cela
jouerai t'il?
ai essayé en changeant feuil7 par feuil3 ou 2 ou 1 mais rien...
sorry d'insisté
Pascal

Dim Chemin
Chemin = "C:Documents and Settings"
Workbooks.Open Chemin & "classeur2.xls", 0, ReadOnly:úlse
fichier1 = ActiveWorkbook.Name
Workbooks(Chemin & fichier1).Worksheets("Feuil7").Copy Workbooks(Chemin &
"test.xls").Worksheets("Feuil7")
Workbooks(fichier1).Close SaveChanges:úlse




"lSteph" a écrit dans le message de groupe de
discussion :

Bonjour,
Mon exemple considérait des classeurs ouverts, lorsque tu utilises
ceci:

Workbooks(fichier1).Sheets(7).Copy Workbooks("Test.xls").Sheets(7)

cela prend le septième onglet du classeur dont le nom est dans ta
variable fichier1
pour aller en mettre copie juste avant le septième onglet de ton
classeur Test.xls

Le reste tient à l'existence de ce nombre d'onglets et aux noms des
classeurs que tu vas chercher
de même si tu veux utiliser plutôt les noms des feuilles ceci....:

Sub copif()
Workbooks("Classeur2").Worksheets("Feuil7").Copy _
Workbooks("Classeur1").Worksheets("Feuil3")
End Sub

...copie la feuille de Classeur2 nommée "Feuil7" dans le Classeur1
juste avant la feuille nommée "Feuil3"

Cordialement.

lSteph



On 30 juil, 15:51, "Pascal" ,com> wrote:
voici le bon code qui provoque l'erreur
Dim Chemin

Chemin = "C:Documents and Settings"
Workbooks.Open Chemin & "classeur2.xls", 0, ReadOnly:úlse
fichier1 = ActiveWorkbook.Name

Workbooks(fichier1).Sheets(7).Copy Workbooks("Test.xls").Sheets(7)
Workbooks(fichier1).Close SaveChanges:úlse

c'est juste la copie , la fermeture fonctionne







Avatar
Pascal
bonsoir,
pourquoi ce "chemin"
puisque les classeurs sont ouverts?!


si je n'indique pas le chemin j'ai une erreur d'exécution 1004 (classeur
introuvable)

voilà ce code ci fonctionne, merci de ton aide
Chemin = "C:Documents and Settings"
Workbooks.Open Chemin & "classeur2.xls", 0, ReadOnly:úlse
Windows("Classeur2.xls").Activate
Sheets("ListeTest").Select
Sheets("ListeTest").Copy Before:=Workbooks("Test.xls").Sheets(1)



"LSteph" a écrit dans le message de groupe de
discussion :

Test.XLS et tesT.xls c'est pas pareil!

Si tu n'as qu'un onglet pourquoi utiliser un nom qui n'existe pas?

Essaie ceci,
ouvre tes deux fichiers, ensuite
clique sur enregistrer une macro
prends la feuille que tu veux dans le classeur d'origine et
mets la où tu veux dans le classeur destination puis
tu cliques sur arrêter la macro
tu fais alt+F11 tu copies le code obtenu
et tu viens coller cela ici dans un message.

@+

--
lSteph





Pascal a écrit :
hello,
dans l'exemple précedent les classeurs étaient bien ouvert!!
pour ton autre proposition, navré mais cela reste avec la même erreur
la seule chose que je vois dans Test.XLS il n'y a qu'un onglet "Feuil3"
cela jouerai t'il?
ai essayé en changeant feuil7 par feuil3 ou 2 ou 1 mais rien...
sorry d'insisté
Pascal

Dim Chemin
Chemin = "C:Documents and Settings"
Workbooks.Open Chemin & "classeur2.xls", 0, ReadOnly:úlse
fichier1 = ActiveWorkbook.Name
Workbooks(Chemin & fichier1).Worksheets("Feuil7").Copy Workbooks(Chemin &
"test.xls").Worksheets("Feuil7")
Workbooks(fichier1).Close SaveChanges:úlse




"lSteph" a écrit dans le message de groupe de
discussion :

Bonjour,
Mon exemple considérait des classeurs ouverts, lorsque tu utilises
ceci:

Workbooks(fichier1).Sheets(7).Copy Workbooks("Test.xls").Sheets(7)

cela prend le septième onglet du classeur dont le nom est dans ta
variable fichier1
pour aller en mettre copie juste avant le septième onglet de ton
classeur Test.xls

Le reste tient à l'existence de ce nombre d'onglets et aux noms des
classeurs que tu vas chercher
de même si tu veux utiliser plutôt les noms des feuilles ceci....:

Sub copif()
Workbooks("Classeur2").Worksheets("Feuil7").Copy _
Workbooks("Classeur1").Worksheets("Feuil3")
End Sub

...copie la feuille de Classeur2 nommée "Feuil7" dans le Classeur1
juste avant la feuille nommée "Feuil3"

Cordialement.

lSteph



On 30 juil, 15:51, "Pascal" ,com> wrote:
voici le bon code qui provoque l'erreur
Dim Chemin

Chemin = "C:Documents and Settings"
Workbooks.Open Chemin & "classeur2.xls", 0, ReadOnly:úlse
fichier1 = ActiveWorkbook.Name

Workbooks(fichier1).Sheets(7).Copy Workbooks("Test.xls").Sheets(7)
Workbooks(fichier1).Close SaveChanges:úlse

c'est juste la copie , la fermeture fonctionne









Avatar
LSteph
Bonjour,
donc une fois épuré(l'activate et le select sont générés par
l'enregistreur mais sont inutiles)cela donnerait:

Chemin = "C:Documents and Settings"
Workbooks.Open Chemin & "classeur2.xls", 0, ReadOnly:úlse
Sheets("ListeTest").Copy Before:=Workbooks("Test.xls").Sheets(1)

';-)

@+

--
lSteph


Pascal a écrit :
bonsoir,
pourquoi ce "chemin"
puisque les classeurs sont ouverts?!


si je n'indique pas le chemin j'ai une erreur d'exécution 1004 (classeur
introuvable)

voilà ce code ci fonctionne, merci de ton aide
Chemin = "C:Documents and Settings"
Workbooks.Open Chemin & "classeur2.xls", 0, ReadOnly:úlse
Windows("Classeur2.xls").Activate
Sheets("ListeTest").Select
Sheets("ListeTest").Copy Before:=Workbooks("Test.xls").Sheets(1)



"LSteph" a écrit dans le message de groupe de
discussion :
Test.XLS et tesT.xls c'est pas pareil!

Si tu n'as qu'un onglet pourquoi utiliser un nom qui n'existe pas?

Essaie ceci,
ouvre tes deux fichiers, ensuite
clique sur enregistrer une macro
prends la feuille que tu veux dans le classeur d'origine et
mets la où tu veux dans le classeur destination puis
tu cliques sur arrêter la macro
tu fais alt+F11 tu copies le code obtenu
et tu viens coller cela ici dans un message.

@+

--
lSteph





Pascal a écrit :
hello,
dans l'exemple précedent les classeurs étaient bien ouvert!!
pour ton autre proposition, navré mais cela reste avec la même erreur
la seule chose que je vois dans Test.XLS il n'y a qu'un onglet "Feuil3"
cela jouerai t'il?
ai essayé en changeant feuil7 par feuil3 ou 2 ou 1 mais rien...
sorry d'insisté
Pascal

Dim Chemin
Chemin = "C:Documents and Settings"
Workbooks.Open Chemin & "classeur2.xls", 0, ReadOnly:úlse
fichier1 = ActiveWorkbook.Name
Workbooks(Chemin & fichier1).Worksheets("Feuil7").Copy Workbooks(Chemin &
"test.xls").Worksheets("Feuil7")
Workbooks(fichier1).Close SaveChanges:úlse




"lSteph" a écrit dans le message de groupe de
discussion :

Bonjour,
Mon exemple considérait des classeurs ouverts, lorsque tu utilises
ceci:

Workbooks(fichier1).Sheets(7).Copy Workbooks("Test.xls").Sheets(7)

cela prend le septième onglet du classeur dont le nom est dans ta
variable fichier1
pour aller en mettre copie juste avant le septième onglet de ton
classeur Test.xls

Le reste tient à l'existence de ce nombre d'onglets et aux noms des
classeurs que tu vas chercher
de même si tu veux utiliser plutôt les noms des feuilles ceci....:

Sub copif()
Workbooks("Classeur2").Worksheets("Feuil7").Copy _
Workbooks("Classeur1").Worksheets("Feuil3")
End Sub

...copie la feuille de Classeur2 nommée "Feuil7" dans le Classeur1
juste avant la feuille nommée "Feuil3"

Cordialement.

lSteph



On 30 juil, 15:51, "Pascal" ,com> wrote:
voici le bon code qui provoque l'erreur
Dim Chemin

Chemin = "C:Documents and Settings"
Workbooks.Open Chemin & "classeur2.xls", 0, ReadOnly:úlse
fichier1 = ActiveWorkbook.Name

Workbooks(fichier1).Sheets(7).Copy Workbooks("Test.xls").Sheets(7)
Workbooks(fichier1).Close SaveChanges:úlse

c'est juste la copie , la fermeture fonctionne











1 2 3