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

Mon neurone est en grève

10 réponses
Avatar
Patrick Penet
Salut tout le monde !

Je l'ai eu fait mais ch'ai pu comment :

Je veux exporter une feuille de mon classeur
vers une 'autre' instance d'Excel dans un nouveau
classeur (en VBA).

Si ça parle aux anges ...

Merci
PP

10 réponses

Avatar
MichDenis
En supposant que la macro est dans le classeur actif....
Insertion de la feuil1 après la feuil3 dans le nouveau classeur


With ActiveWorkbook
With .Worksheets("Feuil1")
.Copy after:=Workbooks("NomClasseurDestination.xls").Worksheets("Feuil3")
End With
End With






"Patrick Penet" a écrit dans le message de news:
4558b53d$0$21142$
Salut tout le monde !

Je l'ai eu fait mais ch'ai pu comment :

Je veux exporter une feuille de mon classeur
vers une 'autre' instance d'Excel dans un nouveau
classeur (en VBA).

Si ça parle aux anges ...

Merci
PP
Avatar
Patrick Penet
Merci Michel mais non, ça je sais faire ...
Je veux copier dans une autre instance d'Excel
dans un nouveau classeur.

Voilà où j'en suis, mais ça marche pas plus que
de beurre en branche !

Ce code ne produit aucune erreur mais ne fait
rien du tout.

Sub t()

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)

xlApp.Visible = True

Dim s1 As Worksheet
Dim s2 As Worksheet

Set s1 = ThisWorkbook.Sheets(1)
Set s2 = xlSheet

s1.Copy
s2.Select
s2.PasteSpecial

xlApp.CutCopyMode = False

End Sub

Cordialement.
P


"MichDenis" a écrit dans le message de news:
En supposant que la macro est dans le classeur actif....
Insertion de la feuil1 après la feuil3 dans le nouveau classeur


With ActiveWorkbook
With .Worksheets("Feuil1")
.Copy after:=Workbooks("NomClasseurDestination.xls").Worksheets("Feuil3")
End With
End With






"Patrick Penet" a écrit dans le message de news:
4558b53d$0$21142$
Salut tout le monde !

Je l'ai eu fait mais ch'ai pu comment :

Je veux exporter une feuille de mon classeur
vers une 'autre' instance d'Excel dans un nouveau
classeur (en VBA).

Si ça parle aux anges ...

Merci
PP





Avatar
MichDenis
Pour copier seulement les données d'un classeur à un autre ...

'------------------------------
Sub test()

Dim Y As Variant
Dim xl As New Excel.Application
Dim Wk As Workbook
With ActiveWorkbook
With .Worksheets("Feuil1")
Y = .UsedRange
End With
End With

'Tu ouvres le classeur de ton choix
Set Wk = xl.Workbooks.Open("c:classeur1.xls")
xl.Visible = True ' Or false selon ce que tu désires
With Wk
.Sheets(1).Range("A1").Resize(UBound(Y, 1), UBound(Y, 2)) = Y
End With

End Sub
'------------------------------



"Patrick Penet" a écrit dans le message de news:
4558b995$0$21147$
Merci Michel mais non, ça je sais faire ...
Je veux copier dans une autre instance d'Excel
dans un nouveau classeur.

Voilà où j'en suis, mais ça marche pas plus que
de beurre en branche !

Ce code ne produit aucune erreur mais ne fait
rien du tout.

Sub t()

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)

xlApp.Visible = True

Dim s1 As Worksheet
Dim s2 As Worksheet

Set s1 = ThisWorkbook.Sheets(1)
Set s2 = xlSheet

s1.Copy
s2.Select
s2.PasteSpecial

xlApp.CutCopyMode = False

End Sub

Cordialement.
P


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

En supposant que la macro est dans le classeur actif....
Insertion de la feuil1 après la feuil3 dans le nouveau classeur


With ActiveWorkbook
With .Worksheets("Feuil1")
.Copy after:=Workbooks("NomClasseurDestination.xls").Worksheets("Feuil3")
End With
End With






"Patrick Penet" a écrit dans le message de news:
4558b53d$0$21142$
Salut tout le monde !

Je l'ai eu fait mais ch'ai pu comment :

Je veux exporter une feuille de mon classeur
vers une 'autre' instance d'Excel dans un nouveau
classeur (en VBA).

Si ça parle aux anges ...

Merci
PP





Avatar
Patrick Penet
Merci je vais tester ça demain (c'est l'heure de
la soupe).

Cordialement.
P

PS : Il semble que cela ne copiera pas les
formats, non ? Dans ce cas comment faire ?

Merci pour tout.
P



"MichDenis" a écrit dans le message de news:
Pour copier seulement les données d'un classeur à un autre ...

'------------------------------
Sub test()

Dim Y As Variant
Dim xl As New Excel.Application
Dim Wk As Workbook
With ActiveWorkbook
With .Worksheets("Feuil1")
Y = .UsedRange
End With
End With

'Tu ouvres le classeur de ton choix
Set Wk = xl.Workbooks.Open("c:classeur1.xls")
xl.Visible = True ' Or false selon ce que tu désires
With Wk
.Sheets(1).Range("A1").Resize(UBound(Y, 1), UBound(Y, 2)) = Y
End With

End Sub
'------------------------------



"Patrick Penet" a écrit dans le message de news:
4558b995$0$21147$
Merci Michel mais non, ça je sais faire ...
Je veux copier dans une autre instance d'Excel
dans un nouveau classeur.

Voilà où j'en suis, mais ça marche pas plus que
de beurre en branche !

Ce code ne produit aucune erreur mais ne fait
rien du tout.

Sub t()

Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet

Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add
Set xlSheet = xlBook.Worksheets(1)

xlApp.Visible = True

Dim s1 As Worksheet
Dim s2 As Worksheet

Set s1 = ThisWorkbook.Sheets(1)
Set s2 = xlSheet

s1.Copy
s2.Select
s2.PasteSpecial

xlApp.CutCopyMode = False

End Sub

Cordialement.
P


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

En supposant que la macro est dans le classeur actif....
Insertion de la feuil1 après la feuil3 dans le nouveau classeur


With ActiveWorkbook
With .Worksheets("Feuil1")
.Copy after:=Workbooks("NomClasseurDestination.xls").Worksheets("Feuil3")
End With
End With






"Patrick Penet" a écrit dans le message de news:
4558b53d$0$21142$
Salut tout le monde !

Je l'ai eu fait mais ch'ai pu comment :

Je veux exporter une feuille de mon classeur
vers une 'autre' instance d'Excel dans un nouveau
classeur (en VBA).

Si ça parle aux anges ...

Merci
PP










Avatar
Ange Ounis
Je te suggère de passer par la fenêtre :

''''''''''''''''
Sub essai()
Dim xlApp As Object
Dim xlBook As Object

'on enregistre la feuille à copier comme modèle
ThisWorkbook.Sheets(1).Copy
ActiveWorkbook.SaveAs "C:Classeur.xlt", xlTemplate
ActiveWorkbook.Close

'on crée dans la nouvelle instance d'Excel un classeur
'basé sur ce modèle
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add("C:Classeur.xlt")
xlApp.Visible = True

'on détruit le modèle
Kill "C:Classeur.xlt"

End Sub
''''''''''''''''

(on suppose que la feuille à copier est dans le classeur qui contient ce code).

----------
Ange Ounis
----------

Salut tout le monde !

Je l'ai eu fait mais ch'ai pu comment :

Je veux exporter une feuille de mon classeur
vers une 'autre' instance d'Excel dans un nouveau
classeur (en VBA).

Si ça parle aux anges ...

Merci
PP




Avatar
Patrick Penet
Merci beaucoup Frédéric, ça marche impec !

J'ai néanmoins un peu de mal à comprendre
2 points :

-- je ne vois pas d'instruction Paste après Copy ??

-- comment la macro peut-elle continuer à
s'exécuter après la fermeture du classeur ???

Pour moi, cela frise le surnaturel !
;-)

Cordialement.
Merci
P


"Ange Ounis" a écrit dans le message de news: uZ%
Je te suggère de passer par la fenêtre :

''''''''''''''''
Sub essai()
Dim xlApp As Object
Dim xlBook As Object

'on enregistre la feuille à copier comme modèle
ThisWorkbook.Sheets(1).Copy
ActiveWorkbook.SaveAs "C:Classeur.xlt", xlTemplate
ActiveWorkbook.Close

'on crée dans la nouvelle instance d'Excel un classeur
'basé sur ce modèle
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add("C:Classeur.xlt")
xlApp.Visible = True

'on détruit le modèle
Kill "C:Classeur.xlt"

End Sub
''''''''''''''''

(on suppose que la feuille à copier est dans le classeur qui contient ce code).

----------
Ange Ounis
----------

Salut tout le monde !

Je l'ai eu fait mais ch'ai pu comment :

Je veux exporter une feuille de mon classeur
vers une 'autre' instance d'Excel dans un nouveau
classeur (en VBA).

Si ça parle aux anges ...

Merci
PP




Avatar
J
Bonjour Patrick
je viens de suivre avec intérêt ce fil, mais je ne comprends pas pourquoi tu
ouvres une 2è instance d'Excel.
A quoi ça sert? Qu'est ce que cela apporte?
Merci
@+
J@@ (qui souhaite apprendre)


Patrick Penet wrote:
Merci beaucoup Frédéric, ça marche impec !

J'ai néanmoins un peu de mal à comprendre
2 points :

-- je ne vois pas d'instruction Paste après Copy ??

-- comment la macro peut-elle continuer à
s'exécuter après la fermeture du classeur ???

Pour moi, cela frise le surnaturel !
;-)

Cordialement.
Merci
P


"Ange Ounis" a écrit dans le message de news: uZ%
Je te suggère de passer par la fenêtre :

''''''''''''''''
Sub essai()
Dim xlApp As Object
Dim xlBook As Object

'on enregistre la feuille à copier comme modèle
ThisWorkbook.Sheets(1).Copy
ActiveWorkbook.SaveAs "C:Classeur.xlt", xlTemplate
ActiveWorkbook.Close

'on crée dans la nouvelle instance d'Excel un classeur
'basé sur ce modèle
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add("C:Classeur.xlt")
xlApp.Visible = True

'on détruit le modèle
Kill "C:Classeur.xlt"

End Sub
''''''''''''''''

(on suppose que la feuille à copier est dans le classeur qui contient ce code).

----------
Ange Ounis
----------

Salut tout le monde !

Je l'ai eu fait mais ch'ai pu comment :

Je veux exporter une feuille de mon classeur
vers une 'autre' instance d'Excel dans un nouveau
classeur (en VBA).

Si ça parle aux anges ...

Merci
PP








Avatar
Patrick Penet
Salut J@@.

Je finis de développer une petite applic de gestion
commerciale pour une ferme bio en Limousin.

Comme toujours dans mes applics j'encadre l'utilisateur
d'une façon drastique : il n'est pas question qu'il puisse
utiliser Excel directement (sinon tchao la structure,
les données, et Jean Passe !).

L'applic est donc IgnoreRemoteRequests.

Néanmoins, dans un élan d'immense et magnanime
bonté je veux lui donner la possibilité de traiter ces
données à son gré dans Excel mais hors de l'applic.
Voilà le pourquoi du comment.

Grâce à Ange Ounis, je suis très très fier d'avoir
réussi ce tour de force sans écrire une ligne
de code ! ;-))))))))))))) Qu'il en soit remercié
encore, d'autant que je n'aurais pas pu imaginer,
à la lecture, que ce code surnaturel puisse marcher.

Moralité : il vaut mieux s'adresser aux Anges qu'au
Bon Dieu.

Ouala. Ai-je répondu à ta question ?
Cordialement.
P.


"J@@" a écrit dans le message de news:
Bonjour Patrick
je viens de suivre avec intérêt ce fil, mais je ne comprends pas pourquoi tu ouvres une 2è instance d'Excel.
A quoi ça sert? Qu'est ce que cela apporte?
Merci
@+
J@@ (qui souhaite apprendre)


Patrick Penet wrote:
Merci beaucoup Frédéric, ça marche impec !

J'ai néanmoins un peu de mal à comprendre
2 points :

-- je ne vois pas d'instruction Paste après Copy ??

-- comment la macro peut-elle continuer à
s'exécuter après la fermeture du classeur ???

Pour moi, cela frise le surnaturel !
;-)

Cordialement.
Merci
P


"Ange Ounis" a écrit dans le message de news: uZ%
Je te suggère de passer par la fenêtre :

''''''''''''''''
Sub essai()
Dim xlApp As Object
Dim xlBook As Object

'on enregistre la feuille à copier comme modèle
ThisWorkbook.Sheets(1).Copy
ActiveWorkbook.SaveAs "C:Classeur.xlt", xlTemplate
ActiveWorkbook.Close

'on crée dans la nouvelle instance d'Excel un classeur
'basé sur ce modèle
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add("C:Classeur.xlt")
xlApp.Visible = True

'on détruit le modèle
Kill "C:Classeur.xlt"

End Sub
''''''''''''''''

(on suppose que la feuille à copier est dans le classeur qui contient ce code).

----------
Ange Ounis
----------

Salut tout le monde !

Je l'ai eu fait mais ch'ai pu comment :

Je veux exporter une feuille de mon classeur
vers une 'autre' instance d'Excel dans un nouveau
classeur (en VBA).

Si ça parle aux anges ...

Merci
PP









Avatar
Ange Ounis
-- je ne vois pas d'instruction Paste après Copy ??


Lorsque l'instruction Copy est employée pour une feuille sans autre précision,
cela provoque la création d'un nouveau classeur contenant une copie de cette
feuille.

-- comment la macro peut-elle continuer à
s'exécuter après la fermeture du classeur ???


Lorsqu'un classeur est créé, il est par défaut actif. C'est donc ce classeur
(ActiveWorkbook) qui est enregistré comme modèle puis fermé et non le classeur
où est enregistré le code qui s'exécute (ThisWorkbook).

Merci


De rien, c'était un plaisir (allô, Philippe ?).

----------
Ange Ounis
----------

Merci beaucoup Frédéric, ça marche impec !

J'ai néanmoins un peu de mal à comprendre
2 points :

-- je ne vois pas d'instruction Paste après Copy ??

-- comment la macro peut-elle continuer à
s'exécuter après la fermeture du classeur ???

Pour moi, cela frise le surnaturel !
;-)

Cordialement.
Merci
P


"Ange Ounis" a écrit dans le message de news: uZ%
Je te suggère de passer par la fenêtre :

''''''''''''''''
Sub essai()
Dim xlApp As Object
Dim xlBook As Object

'on enregistre la feuille à copier comme modèle
ThisWorkbook.Sheets(1).Copy
ActiveWorkbook.SaveAs "C:Classeur.xlt", xlTemplate
ActiveWorkbook.Close

'on crée dans la nouvelle instance d'Excel un classeur
'basé sur ce modèle
Set xlApp = CreateObject("Excel.Application")
Set xlBook = xlApp.Workbooks.Add("C:Classeur.xlt")
xlApp.Visible = True

'on détruit le modèle
Kill "C:Classeur.xlt"

End Sub
''''''''''''''''

(on suppose que la feuille à copier est dans le classeur qui contient ce code).

----------
Ange Ounis
----------

Salut tout le monde !

Je l'ai eu fait mais ch'ai pu comment :

Je veux exporter une feuille de mon classeur
vers une 'autre' instance d'Excel dans un nouveau
classeur (en VBA).

Si ça parle aux anges ...

Merci
PP








Avatar
Patrick Penet
Très joli !
Merci de ces explications.
P