OVH Cloud OVH Cloud

re:copie onglets

36 réponses
Avatar
ga51
Merci Daniel pour ta réponse,

mais j'ai une erreur sur la ligne sheets(.List(i)).copy: n'appartient
pas à la sélection.

Merci encore pour ton aide,

Cordialement.

10 réponses

1 2 3 4
Avatar
Daniel
J'ai créé un nouveau classeur minimal avec une userform et une listbox. Ca
fonctionne sans problème. Je te l'envoie.
http://cjoint.com/?fqwWPpRgFp
Cordialement.
Daniel
"ga51" a écrit dans le message de news:

Merci d'avoir insister !
En effet cela fonctionne (je n'avais pas le classeur cible ouvert!)...
Mais si je le transpose dans ma macro, cela ne fonctionne pas.
Sans doute ce sont les propriétés de ma listbox, créée dans un userform,
qui ne correspondent pas ?
j'ai mis les propriétés à MultiSelect, je remplis la listbox avec Additem
pour l'alimenter du noms des onglets.

Qq'un pour m'aider svp

Merci beaucoup

Cordialement.

Ga51


Bonjour,

pas de pb pour moi non plus avec le fichier de Daniel alors que j'ai la
même config que toi. Il doit y avoir autre chose.
Fais une éxécution en mode pas à pas du fichier qui t'a été transmis et
regarde ce que ca donne.

A+


J'ai Excel 2000 sur win xp pro

Merci en tout cas pour tes réponses.

Cordialement

Ga51


Problème de version ?
La listbox est configurée de telle manière qu'il faut maintenir la
touche CTRL enfoncée pour faire une seconde sélection.
Sinon il va falloir que les VRAIS gourous se penchent sur ton problème.
Cordialement.
Daniel
"ga51" a écrit dans le message de news:


Merci Daniel pour le classeur de test.
Mais j'ai toujours la même erreur sur ton classeur.(l'objet
n'appartient pas a la selection)
De plus dans la msgbox, il n'y a qu'1 seule feuille et non toutes les
feuilles sélectionnées.

Manquerait-il qqchose ?

Cordialement

Ga51


Je t'envoie le classeur qui m'a servi à faire le test.
http://cjoint.com/?fqqZYIv66K
Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%


Bonjour,

Merci pour ta réponse,

Oui tous les onglets sont dans le classeur ouvert et donc actif.

Cordialement

Ga



Bonjour.
J'ai pas trop étudié ton code; est-ce que la feuille copiée fait
partie du classeur actif ?
Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%



Merci Daniel pour ta réponse,

mais j'ai une erreur sur la ligne sheets(.List(i)).copy:
n'appartient pas à la sélection.

Merci encore pour ton aide,

Cordialement.
























Avatar
ga51
Merci pour ton exemple, il fonctionne super bien en effet.

Pour aller plus loin, en fait je voulais sauvegarder les onglets
sélectionnés dans un nouveau classeur et le renommer avec:
ActiveWorkbook.SaveAs Filename:= ...etc.. (pour envoi futur par mail)
plutôt que d'envoyer ces onglets dans un classeur déjà existant.
Car dans ma configuration de travail, cela sera impossible.
Pourrais-tu m'aider pour la syntaxe ?

Merci beaucoup de ton aide

Cordialement.

Ga51

J'ai créé un nouveau classeur minimal avec une userform et une listbox. Ca
fonctionne sans problème. Je te l'envoie.
http://cjoint.com/?fqwWPpRgFp
Cordialement.
Daniel
"ga51" a écrit dans le message de news:


Merci d'avoir insister !
En effet cela fonctionne (je n'avais pas le classeur cible ouvert!)...
Mais si je le transpose dans ma macro, cela ne fonctionne pas.
Sans doute ce sont les propriétés de ma listbox, créée dans un userform,
qui ne correspondent pas ?
j'ai mis les propriétés à MultiSelect, je remplis la listbox avec Additem
pour l'alimenter du noms des onglets.

Qq'un pour m'aider svp

Merci beaucoup

Cordialement.

Ga51



Bonjour,

pas de pb pour moi non plus avec le fichier de Daniel alors que j'ai la
même config que toi. Il doit y avoir autre chose.
Fais une éxécution en mode pas à pas du fichier qui t'a été transmis et
regarde ce que ca donne.

A+



J'ai Excel 2000 sur win xp pro

Merci en tout cas pour tes réponses.

Cordialement

Ga51



Problème de version ?
La listbox est configurée de telle manière qu'il faut maintenir la
touche CTRL enfoncée pour faire une seconde sélection.
Sinon il va falloir que les VRAIS gourous se penchent sur ton problème.
Cordialement.
Daniel
"ga51" a écrit dans le message de news:



Merci Daniel pour le classeur de test.
Mais j'ai toujours la même erreur sur ton classeur.(l'objet
n'appartient pas a la selection)
De plus dans la msgbox, il n'y a qu'1 seule feuille et non toutes les
feuilles sélectionnées.

Manquerait-il qqchose ?

Cordialement

Ga51



Je t'envoie le classeur qui m'a servi à faire le test.
http://cjoint.com/?fqqZYIv66K
Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%



Bonjour,

Merci pour ta réponse,

Oui tous les onglets sont dans le classeur ouvert et donc actif.

Cordialement

Ga




Bonjour.
J'ai pas trop étudié ton code; est-ce que la feuille copiée fait
partie du classeur actif ?
Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%




Merci Daniel pour ta réponse,

mais j'ai une erreur sur la ligne sheets(.List(i)).copy:
n'appartient pas à la sélection.

Merci encore pour ton aide,

Cordialement.



























Avatar
Daniel
Bonjour.
Code du bouton de Feuil3 :

Private Sub CommandButton1_Click()
Workbooks.Add
ActiveWorkbook.SaveAs Filename:="LeNomQueTuVeux.xls"
Workbooks(1).Activate
UserForm1.Show
End Sub

Code du bouton du userform :

Private Sub CommandButton1_Click()
UserForm1.Hide
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
MsgBox .List(i)
Sheets(.List(i)).Copy
Before:=Workbooks("LeNomQueTuVeux.xls").Sheets(1)
End If
Next i
End With
Workbooks("LeNomQueTuVeux.xls").Save
Workbooks("LeNomQueTuVeux.xls").Close
End Sub

Cordialement.
Daniel
"ga51" a écrit dans le message de news:
O9$
Merci pour ton exemple, il fonctionne super bien en effet.

Pour aller plus loin, en fait je voulais sauvegarder les onglets
sélectionnés dans un nouveau classeur et le renommer avec:
ActiveWorkbook.SaveAs Filename:= ...etc.. (pour envoi futur par mail)
plutôt que d'envoyer ces onglets dans un classeur déjà existant.
Car dans ma configuration de travail, cela sera impossible.
Pourrais-tu m'aider pour la syntaxe ?

Merci beaucoup de ton aide

Cordialement.

Ga51

J'ai créé un nouveau classeur minimal avec une userform et une listbox.
Ca fonctionne sans problème. Je te l'envoie.
http://cjoint.com/?fqwWPpRgFp
Cordialement.
Daniel
"ga51" a écrit dans le message de news:


Merci d'avoir insister !
En effet cela fonctionne (je n'avais pas le classeur cible ouvert!)...
Mais si je le transpose dans ma macro, cela ne fonctionne pas.
Sans doute ce sont les propriétés de ma listbox, créée dans un userform,
qui ne correspondent pas ?
j'ai mis les propriétés à MultiSelect, je remplis la listbox avec Additem
pour l'alimenter du noms des onglets.

Qq'un pour m'aider svp

Merci beaucoup

Cordialement.

Ga51



Bonjour,

pas de pb pour moi non plus avec le fichier de Daniel alors que j'ai la
même config que toi. Il doit y avoir autre chose.
Fais une éxécution en mode pas à pas du fichier qui t'a été transmis et
regarde ce que ca donne.

A+



J'ai Excel 2000 sur win xp pro

Merci en tout cas pour tes réponses.

Cordialement

Ga51



Problème de version ?
La listbox est configurée de telle manière qu'il faut maintenir la
touche CTRL enfoncée pour faire une seconde sélection.
Sinon il va falloir que les VRAIS gourous se penchent sur ton
problème.
Cordialement.
Daniel
"ga51" a écrit dans le message de news:



Merci Daniel pour le classeur de test.
Mais j'ai toujours la même erreur sur ton classeur.(l'objet
n'appartient pas a la selection)
De plus dans la msgbox, il n'y a qu'1 seule feuille et non toutes
les feuilles sélectionnées.

Manquerait-il qqchose ?

Cordialement

Ga51



Je t'envoie le classeur qui m'a servi à faire le test.
http://cjoint.com/?fqqZYIv66K
Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%



Bonjour,

Merci pour ta réponse,

Oui tous les onglets sont dans le classeur ouvert et donc actif.

Cordialement

Ga




Bonjour.
J'ai pas trop étudié ton code; est-ce que la feuille copiée fait
partie du classeur actif ?
Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%




Merci Daniel pour ta réponse,

mais j'ai une erreur sur la ligne sheets(.List(i)).copy:
n'appartient pas à la sélection.

Merci encore pour ton aide,

Cordialement.




























Avatar
ga51
Merci beaucoup pour ta réponse
C'est exactement ce que je voulais

Cela fonctionne impec avec un classeur test.

Mais j'ai une erreur: "L'indice n'appartient pas à la sélection" lors de
la copie du 2ième onglet sélectionné sur mon classeur. Le 1er onglet
sélectionné se copie parfaitement.
Une exécution pas à pas m'arrête sur la ligne lors de la 2ième tentative
de copie:
Sheets(.List(i)).Copy Before:=Workbooks("LeNomQueTuVeux.xls").Sheets(1)

Mes onglets ne sont pas protégés, ils ont simplement des boutons de
contrôles et des mise en formes.
Pourquoi ce bug ?

Cordialement

Ga51

Bonjour.
Code du bouton de Feuil3 :

Private Sub CommandButton1_Click()
Workbooks.Add
ActiveWorkbook.SaveAs Filename:="LeNomQueTuVeux.xls"
Workbooks(1).Activate
UserForm1.Show
End Sub

Code du bouton du userform :

Private Sub CommandButton1_Click()
UserForm1.Hide
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
MsgBox .List(i)
Sheets(.List(i)).Copy
Before:=Workbooks("LeNomQueTuVeux.xls").Sheets(1)
End If
Next i
End With
Workbooks("LeNomQueTuVeux.xls").Save
Workbooks("LeNomQueTuVeux.xls").Close
End Sub

Cordialement.
Daniel
"ga51" a écrit dans le message de news:
O9$

Merci pour ton exemple, il fonctionne super bien en effet.

Pour aller plus loin, en fait je voulais sauvegarder les onglets
sélectionnés dans un nouveau classeur et le renommer avec:
ActiveWorkbook.SaveAs Filename:= ...etc.. (pour envoi futur par mail)
plutôt que d'envoyer ces onglets dans un classeur déjà existant.
Car dans ma configuration de travail, cela sera impossible.
Pourrais-tu m'aider pour la syntaxe ?

Merci beaucoup de ton aide

Cordialement.

Ga51


J'ai créé un nouveau classeur minimal avec une userform et une listbox.
Ca fonctionne sans problème. Je te l'envoie.
http://cjoint.com/?fqwWPpRgFp
Cordialement.
Daniel
"ga51" a écrit dans le message de news:



Merci d'avoir insister !
En effet cela fonctionne (je n'avais pas le classeur cible ouvert!)...
Mais si je le transpose dans ma macro, cela ne fonctionne pas.
Sans doute ce sont les propriétés de ma listbox, créée dans un userform,
qui ne correspondent pas ?
j'ai mis les propriétés à MultiSelect, je remplis la listbox avec Additem
pour l'alimenter du noms des onglets.

Qq'un pour m'aider svp

Merci beaucoup

Cordialement.

Ga51




Bonjour,

pas de pb pour moi non plus avec le fichier de Daniel alors que j'ai la
même config que toi. Il doit y avoir autre chose.
Fais une éxécution en mode pas à pas du fichier qui t'a été transmis et
regarde ce que ca donne.

A+




J'ai Excel 2000 sur win xp pro

Merci en tout cas pour tes réponses.

Cordialement

Ga51




Problème de version ?
La listbox est configurée de telle manière qu'il faut maintenir la
touche CTRL enfoncée pour faire une seconde sélection.
Sinon il va falloir que les VRAIS gourous se penchent sur ton
problème.
Cordialement.
Daniel
"ga51" a écrit dans le message de news:




Merci Daniel pour le classeur de test.
Mais j'ai toujours la même erreur sur ton classeur.(l'objet
n'appartient pas a la selection)
De plus dans la msgbox, il n'y a qu'1 seule feuille et non toutes
les feuilles sélectionnées.

Manquerait-il qqchose ?

Cordialement

Ga51




Je t'envoie le classeur qui m'a servi à faire le test.
http://cjoint.com/?fqqZYIv66K
Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%




Bonjour,

Merci pour ta réponse,

Oui tous les onglets sont dans le classeur ouvert et donc actif.

Cordialement

Ga





Bonjour.
J'ai pas trop étudié ton code; est-ce que la feuille copiée fait
partie du classeur actif ?
Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%





Merci Daniel pour ta réponse,

mais j'ai une erreur sur la ligne sheets(.List(i)).copy:
n'appartient pas à la sélection.

Merci encore pour ton aide,

Cordialement.





























Avatar
Daniel
Si tu n'as pas ôté la ligne "msgbox .list(i)", le nom affiché appartient-il
à ton classeur origine ?
Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%
Merci beaucoup pour ta réponse
C'est exactement ce que je voulais

Cela fonctionne impec avec un classeur test.

Mais j'ai une erreur: "L'indice n'appartient pas à la sélection" lors de
la copie du 2ième onglet sélectionné sur mon classeur. Le 1er onglet
sélectionné se copie parfaitement.
Une exécution pas à pas m'arrête sur la ligne lors de la 2ième tentative
de copie:
Sheets(.List(i)).Copy Before:=Workbooks("LeNomQueTuVeux.xls").Sheets(1)

Mes onglets ne sont pas protégés, ils ont simplement des boutons de
contrôles et des mise en formes.
Pourquoi ce bug ?

Cordialement

Ga51

Bonjour.
Code du bouton de Feuil3 :

Private Sub CommandButton1_Click()
Workbooks.Add
ActiveWorkbook.SaveAs Filename:="LeNomQueTuVeux.xls"
Workbooks(1).Activate
UserForm1.Show
End Sub

Code du bouton du userform :

Private Sub CommandButton1_Click()
UserForm1.Hide
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
MsgBox .List(i)
Sheets(.List(i)).Copy
Before:=Workbooks("LeNomQueTuVeux.xls").Sheets(1)
End If
Next i
End With
Workbooks("LeNomQueTuVeux.xls").Save
Workbooks("LeNomQueTuVeux.xls").Close
End Sub

Cordialement.
Daniel
"ga51" a écrit dans le message de news:
O9$

Merci pour ton exemple, il fonctionne super bien en effet.

Pour aller plus loin, en fait je voulais sauvegarder les onglets
sélectionnés dans un nouveau classeur et le renommer avec:
ActiveWorkbook.SaveAs Filename:= ...etc.. (pour envoi futur par mail)
plutôt que d'envoyer ces onglets dans un classeur déjà existant.
Car dans ma configuration de travail, cela sera impossible.
Pourrais-tu m'aider pour la syntaxe ?

Merci beaucoup de ton aide

Cordialement.

Ga51


J'ai créé un nouveau classeur minimal avec une userform et une listbox.
Ca fonctionne sans problème. Je te l'envoie.
http://cjoint.com/?fqwWPpRgFp
Cordialement.
Daniel
"ga51" a écrit dans le message de news:



Merci d'avoir insister !
En effet cela fonctionne (je n'avais pas le classeur cible ouvert!)...
Mais si je le transpose dans ma macro, cela ne fonctionne pas.
Sans doute ce sont les propriétés de ma listbox, créée dans un
userform, qui ne correspondent pas ?
j'ai mis les propriétés à MultiSelect, je remplis la listbox avec
Additem pour l'alimenter du noms des onglets.

Qq'un pour m'aider svp

Merci beaucoup

Cordialement.

Ga51




Bonjour,

pas de pb pour moi non plus avec le fichier de Daniel alors que j'ai
la même config que toi. Il doit y avoir autre chose.
Fais une éxécution en mode pas à pas du fichier qui t'a été transmis
et regarde ce que ca donne.

A+




J'ai Excel 2000 sur win xp pro

Merci en tout cas pour tes réponses.

Cordialement

Ga51




Problème de version ?
La listbox est configurée de telle manière qu'il faut maintenir la
touche CTRL enfoncée pour faire une seconde sélection.
Sinon il va falloir que les VRAIS gourous se penchent sur ton
problème.
Cordialement.
Daniel
"ga51" a écrit dans le message de news:




Merci Daniel pour le classeur de test.
Mais j'ai toujours la même erreur sur ton classeur.(l'objet
n'appartient pas a la selection)
De plus dans la msgbox, il n'y a qu'1 seule feuille et non toutes
les feuilles sélectionnées.

Manquerait-il qqchose ?

Cordialement

Ga51




Je t'envoie le classeur qui m'a servi à faire le test.
http://cjoint.com/?fqqZYIv66K
Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%




Bonjour,

Merci pour ta réponse,

Oui tous les onglets sont dans le classeur ouvert et donc actif.

Cordialement

Ga





Bonjour.
J'ai pas trop étudié ton code; est-ce que la feuille copiée fait
partie du classeur actif ?
Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%





Merci Daniel pour ta réponse,

mais j'ai une erreur sur la ligne sheets(.List(i)).copy:
n'appartient pas à la sélection.

Merci encore pour ton aide,

Cordialement.































Avatar
ga51
J'avais déjà supprimé la ligne MsgBox .list(i).

De quel nom affiché parles-tu ? de celui de l'onglet sélectionné ? si
oui, c'est effectivement le nom de l'onglet qui fait parti de mon
classeur d'origine.

Ne serait-ce pas un problème de classeur actif ?
Lors de la copie, quel classeur doit être actif, le classeur d'origine
ou le classeur de sauvegarde ?
L'instruction Workbooks(1).Activate correspond à quel classeur ?

Merci encore de t'occuper de "mon cas"

Cordialement.

Ga51


Si tu n'as pas ôté la ligne "msgbox .list(i)", le nom affiché appartient-il
à ton classeur origine ?
Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%

Merci beaucoup pour ta réponse
C'est exactement ce que je voulais

Cela fonctionne impec avec un classeur test.

Mais j'ai une erreur: "L'indice n'appartient pas à la sélection" lors de
la copie du 2ième onglet sélectionné sur mon classeur. Le 1er onglet
sélectionné se copie parfaitement.
Une exécution pas à pas m'arrête sur la ligne lors de la 2ième tentative
de copie:
Sheets(.List(i)).Copy Before:=Workbooks("LeNomQueTuVeux.xls").Sheets(1)

Mes onglets ne sont pas protégés, ils ont simplement des boutons de
contrôles et des mise en formes.
Pourquoi ce bug ?

Cordialement

Ga51


Bonjour.
Code du bouton de Feuil3 :

Private Sub CommandButton1_Click()
Workbooks.Add
ActiveWorkbook.SaveAs Filename:="LeNomQueTuVeux.xls"
Workbooks(1).Activate
UserForm1.Show
End Sub

Code du bouton du userform :

Private Sub CommandButton1_Click()
UserForm1.Hide
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
MsgBox .List(i)
Sheets(.List(i)).Copy
Before:=Workbooks("LeNomQueTuVeux.xls").Sheets(1)
End If
Next i
End With
Workbooks("LeNomQueTuVeux.xls").Save
Workbooks("LeNomQueTuVeux.xls").Close
End Sub

Cordialement.
Daniel
"ga51" a écrit dans le message de news:
O9$


Merci pour ton exemple, il fonctionne super bien en effet.

Pour aller plus loin, en fait je voulais sauvegarder les onglets
sélectionnés dans un nouveau classeur et le renommer avec:
ActiveWorkbook.SaveAs Filename:= ...etc.. (pour envoi futur par mail)
plutôt que d'envoyer ces onglets dans un classeur déjà existant.
Car dans ma configuration de travail, cela sera impossible.
Pourrais-tu m'aider pour la syntaxe ?

Merci beaucoup de ton aide

Cordialement.

Ga51



J'ai créé un nouveau classeur minimal avec une userform et une listbox.
Ca fonctionne sans problème. Je te l'envoie.
http://cjoint.com/?fqwWPpRgFp
Cordialement.
Daniel
"ga51" a écrit dans le message de news:




Merci d'avoir insister !
En effet cela fonctionne (je n'avais pas le classeur cible ouvert!)...
Mais si je le transpose dans ma macro, cela ne fonctionne pas.
Sans doute ce sont les propriétés de ma listbox, créée dans un
userform, qui ne correspondent pas ?
j'ai mis les propriétés à MultiSelect, je remplis la listbox avec
Additem pour l'alimenter du noms des onglets.

Qq'un pour m'aider svp

Merci beaucoup

Cordialement.

Ga51





Bonjour,

pas de pb pour moi non plus avec le fichier de Daniel alors que j'ai
la même config que toi. Il doit y avoir autre chose.
Fais une éxécution en mode pas à pas du fichier qui t'a été transmis
et regarde ce que ca donne.

A+





J'ai Excel 2000 sur win xp pro

Merci en tout cas pour tes réponses.

Cordialement

Ga51





Problème de version ?
La listbox est configurée de telle manière qu'il faut maintenir la
touche CTRL enfoncée pour faire une seconde sélection.
Sinon il va falloir que les VRAIS gourous se penchent sur ton
problème.
Cordialement.
Daniel
"ga51" a écrit dans le message de news:





Merci Daniel pour le classeur de test.
Mais j'ai toujours la même erreur sur ton classeur.(l'objet
n'appartient pas a la selection)
De plus dans la msgbox, il n'y a qu'1 seule feuille et non toutes
les feuilles sélectionnées.

Manquerait-il qqchose ?

Cordialement

Ga51





Je t'envoie le classeur qui m'a servi à faire le test.
http://cjoint.com/?fqqZYIv66K
Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%





Bonjour,

Merci pour ta réponse,

Oui tous les onglets sont dans le classeur ouvert et donc actif.

Cordialement

Ga






Bonjour.
J'ai pas trop étudié ton code; est-ce que la feuille copiée fait
partie du classeur actif ?
Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%






Merci Daniel pour ta réponse,

mais j'ai une erreur sur la ligne sheets(.List(i)).copy:
n'appartient pas à la sélection.

Merci encore pour ton aide,

Cordialement.


































Avatar
Daniel
En plein dans le mille :
Code du bouton de la feuille "Feuil4" :

Private Sub CommandButton1_Click()
Workbooks.Add
ActiveWorkbook.SaveAs Filename:="LeNomQueTuVeux.xls"
Workbooks(2).Activate 'active le classeur source
UserForm1.Show
End Sub

et le code du bouton de l'userform :

Private Sub CommandButton1_Click()
UserForm1.Hide
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(.List(i)).Copy
Before:=Workbooks("LeNomQueTuVeux.xls").Sheets(1)
Workbooks(2).Activate 'active le classeur source
End If
Next i
End With
Workbooks("LeNomQueTuVeux.xls").Save
Workbooks("LeNomQueTuVeux.xls").Close
End Sub

Le code ne fonctionnait que parce que les deux classeurs avaient les mêmes
noms de feuilles.
Cordialement.
Daniel


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

J'avais déjà supprimé la ligne MsgBox .list(i).

De quel nom affiché parles-tu ? de celui de l'onglet sélectionné ? si oui,
c'est effectivement le nom de l'onglet qui fait parti de mon classeur
d'origine.

Ne serait-ce pas un problème de classeur actif ?
Lors de la copie, quel classeur doit être actif, le classeur d'origine ou
le classeur de sauvegarde ?
L'instruction Workbooks(1).Activate correspond à quel classeur ?

Merci encore de t'occuper de "mon cas"

Cordialement.

Ga51


Si tu n'as pas ôté la ligne "msgbox .list(i)", le nom affiché
appartient-il à ton classeur origine ?
Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%

Merci beaucoup pour ta réponse
C'est exactement ce que je voulais

Cela fonctionne impec avec un classeur test.

Mais j'ai une erreur: "L'indice n'appartient pas à la sélection" lors de
la copie du 2ième onglet sélectionné sur mon classeur. Le 1er onglet
sélectionné se copie parfaitement.
Une exécution pas à pas m'arrête sur la ligne lors de la 2ième tentative
de copie:
Sheets(.List(i)).Copy Before:=Workbooks("LeNomQueTuVeux.xls").Sheets(1)

Mes onglets ne sont pas protégés, ils ont simplement des boutons de
contrôles et des mise en formes.
Pourquoi ce bug ?

Cordialement

Ga51


Bonjour.
Code du bouton de Feuil3 :

Private Sub CommandButton1_Click()
Workbooks.Add
ActiveWorkbook.SaveAs Filename:="LeNomQueTuVeux.xls"
Workbooks(1).Activate
UserForm1.Show
End Sub

Code du bouton du userform :

Private Sub CommandButton1_Click()
UserForm1.Hide
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
MsgBox .List(i)
Sheets(.List(i)).Copy
Before:=Workbooks("LeNomQueTuVeux.xls").Sheets(1)
End If
Next i
End With
Workbooks("LeNomQueTuVeux.xls").Save
Workbooks("LeNomQueTuVeux.xls").Close
End Sub

Cordialement.
Daniel
"ga51" a écrit dans le message de news:
O9$


Merci pour ton exemple, il fonctionne super bien en effet.

Pour aller plus loin, en fait je voulais sauvegarder les onglets
sélectionnés dans un nouveau classeur et le renommer avec:
ActiveWorkbook.SaveAs Filename:= ...etc.. (pour envoi futur par mail)
plutôt que d'envoyer ces onglets dans un classeur déjà existant.
Car dans ma configuration de travail, cela sera impossible.
Pourrais-tu m'aider pour la syntaxe ?

Merci beaucoup de ton aide

Cordialement.

Ga51



J'ai créé un nouveau classeur minimal avec une userform et une
listbox. Ca fonctionne sans problème. Je te l'envoie.
http://cjoint.com/?fqwWPpRgFp
Cordialement.
Daniel
"ga51" a écrit dans le message de news:




Merci d'avoir insister !
En effet cela fonctionne (je n'avais pas le classeur cible
ouvert!)...
Mais si je le transpose dans ma macro, cela ne fonctionne pas.
Sans doute ce sont les propriétés de ma listbox, créée dans un
userform, qui ne correspondent pas ?
j'ai mis les propriétés à MultiSelect, je remplis la listbox avec
Additem pour l'alimenter du noms des onglets.

Qq'un pour m'aider svp

Merci beaucoup

Cordialement.

Ga51





Bonjour,

pas de pb pour moi non plus avec le fichier de Daniel alors que j'ai
la même config que toi. Il doit y avoir autre chose.
Fais une éxécution en mode pas à pas du fichier qui t'a été transmis
et regarde ce que ca donne.

A+





J'ai Excel 2000 sur win xp pro

Merci en tout cas pour tes réponses.

Cordialement

Ga51





Problème de version ?
La listbox est configurée de telle manière qu'il faut maintenir la
touche CTRL enfoncée pour faire une seconde sélection.
Sinon il va falloir que les VRAIS gourous se penchent sur ton
problème.
Cordialement.
Daniel
"ga51" a écrit dans le message de news:





Merci Daniel pour le classeur de test.
Mais j'ai toujours la même erreur sur ton classeur.(l'objet
n'appartient pas a la selection)
De plus dans la msgbox, il n'y a qu'1 seule feuille et non
toutes les feuilles sélectionnées.

Manquerait-il qqchose ?

Cordialement

Ga51





Je t'envoie le classeur qui m'a servi à faire le test.
http://cjoint.com/?fqqZYIv66K
Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%





Bonjour,

Merci pour ta réponse,

Oui tous les onglets sont dans le classeur ouvert et donc
actif.

Cordialement

Ga






Bonjour.
J'ai pas trop étudié ton code; est-ce que la feuille copiée
fait partie du classeur actif ?
Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%






Merci Daniel pour ta réponse,

mais j'ai une erreur sur la ligne sheets(.List(i)).copy:
n'appartient pas à la sélection.

Merci encore pour ton aide,

Cordialement.



































Avatar
ga51
Merci beaucoup pour ta réponse rapide,

Cela fonctionne au poil avec ces quelques modifs:

Private Sub CommandButton1_Click()
Workbooks.Add
ActiveWorkbook.SaveAs Filename:="LeNomQueTuVeux.xls"


UserForm1.Show
End Sub


Sub CommandButton1_Click()
UserForm1.Hide

Workbooks(1).Activate

With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(.List(i)).Copy
Before:=Workbooks("LeNomQueTuVeux.xls").Sheets(1)


Workbooks(1).Activate 'active le classeur source

End If

Next i
End With
Workbooks("LeNomQueTuVeux.xls").Save
Workbooks("LeNomQueTuVeux.xls").Close
End Sub


Une dernière chose, comment peut-on supprimer les feuilles vides qui
sont par défaut dans le classeur créé ? pour finioler !! pour éviter
d'envoyer un fichier avec des onglets vides.

Merci encore pour tout

Cordialement

Ga51


En plein dans le mille :
Code du bouton de la feuille "Feuil4" :

Private Sub CommandButton1_Click()
Workbooks.Add
ActiveWorkbook.SaveAs Filename:="LeNomQueTuVeux.xls"
Workbooks(2).Activate 'active le classeur source
UserForm1.Show
End Sub

et le code du bouton de l'userform :

Private Sub CommandButton1_Click()
UserForm1.Hide
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(.List(i)).Copy
Before:=Workbooks("LeNomQueTuVeux.xls").Sheets(1)
Workbooks(2).Activate 'active le classeur source
End If
Next i
End With
Workbooks("LeNomQueTuVeux.xls").Save
Workbooks("LeNomQueTuVeux.xls").Close
End Sub

Le code ne fonctionnait que parce que les deux classeurs avaient les mêmes
noms de feuilles.
Cordialement.
Daniel


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


J'avais déjà supprimé la ligne MsgBox .list(i).

De quel nom affiché parles-tu ? de celui de l'onglet sélectionné ? si oui,
c'est effectivement le nom de l'onglet qui fait parti de mon classeur
d'origine.

Ne serait-ce pas un problème de classeur actif ?
Lors de la copie, quel classeur doit être actif, le classeur d'origine ou
le classeur de sauvegarde ?
L'instruction Workbooks(1).Activate correspond à quel classeur ?

Merci encore de t'occuper de "mon cas"

Cordialement.

Ga51



Si tu n'as pas ôté la ligne "msgbox .list(i)", le nom affiché
appartient-il à ton classeur origine ?
Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%


Merci beaucoup pour ta réponse
C'est exactement ce que je voulais

Cela fonctionne impec avec un classeur test.

Mais j'ai une erreur: "L'indice n'appartient pas à la sélection" lors de
la copie du 2ième onglet sélectionné sur mon classeur. Le 1er onglet
sélectionné se copie parfaitement.
Une exécution pas à pas m'arrête sur la ligne lors de la 2ième tentative
de copie:
Sheets(.List(i)).Copy Before:=Workbooks("LeNomQueTuVeux.xls").Sheets(1)

Mes onglets ne sont pas protégés, ils ont simplement des boutons de
contrôles et des mise en formes.
Pourquoi ce bug ?

Cordialement

Ga51



Bonjour.
Code du bouton de Feuil3 :

Private Sub CommandButton1_Click()
Workbooks.Add
ActiveWorkbook.SaveAs Filename:="LeNomQueTuVeux.xls"
Workbooks(1).Activate
UserForm1.Show
End Sub

Code du bouton du userform :

Private Sub CommandButton1_Click()
UserForm1.Hide
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
MsgBox .List(i)
Sheets(.List(i)).Copy
Before:=Workbooks("LeNomQueTuVeux.xls").Sheets(1)
End If
Next i
End With
Workbooks("LeNomQueTuVeux.xls").Save
Workbooks("LeNomQueTuVeux.xls").Close
End Sub

Cordialement.
Daniel
"ga51" a écrit dans le message de news:
O9$



Merci pour ton exemple, il fonctionne super bien en effet.

Pour aller plus loin, en fait je voulais sauvegarder les onglets
sélectionnés dans un nouveau classeur et le renommer avec:
ActiveWorkbook.SaveAs Filename:= ...etc.. (pour envoi futur par mail)
plutôt que d'envoyer ces onglets dans un classeur déjà existant.
Car dans ma configuration de travail, cela sera impossible.
Pourrais-tu m'aider pour la syntaxe ?

Merci beaucoup de ton aide

Cordialement.

Ga51




J'ai créé un nouveau classeur minimal avec une userform et une
listbox. Ca fonctionne sans problème. Je te l'envoie.
http://cjoint.com/?fqwWPpRgFp
Cordialement.
Daniel
"ga51" a écrit dans le message de news:





Merci d'avoir insister !
En effet cela fonctionne (je n'avais pas le classeur cible
ouvert!)...
Mais si je le transpose dans ma macro, cela ne fonctionne pas.
Sans doute ce sont les propriétés de ma listbox, créée dans un
userform, qui ne correspondent pas ?
j'ai mis les propriétés à MultiSelect, je remplis la listbox avec
Additem pour l'alimenter du noms des onglets.

Qq'un pour m'aider svp

Merci beaucoup

Cordialement.

Ga51






Bonjour,

pas de pb pour moi non plus avec le fichier de Daniel alors que j'ai
la même config que toi. Il doit y avoir autre chose.
Fais une éxécution en mode pas à pas du fichier qui t'a été transmis
et regarde ce que ca donne.

A+






J'ai Excel 2000 sur win xp pro

Merci en tout cas pour tes réponses.

Cordialement

Ga51






Problème de version ?
La listbox est configurée de telle manière qu'il faut maintenir la
touche CTRL enfoncée pour faire une seconde sélection.
Sinon il va falloir que les VRAIS gourous se penchent sur ton
problème.
Cordialement.
Daniel
"ga51" a écrit dans le message de news:






Merci Daniel pour le classeur de test.
Mais j'ai toujours la même erreur sur ton classeur.(l'objet
n'appartient pas a la selection)
De plus dans la msgbox, il n'y a qu'1 seule feuille et non
toutes les feuilles sélectionnées.

Manquerait-il qqchose ?

Cordialement

Ga51






Je t'envoie le classeur qui m'a servi à faire le test.
http://cjoint.com/?fqqZYIv66K
Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%






Bonjour,

Merci pour ta réponse,

Oui tous les onglets sont dans le classeur ouvert et donc
actif.

Cordialement

Ga







Bonjour.
J'ai pas trop étudié ton code; est-ce que la feuille copiée
fait partie du classeur actif ?
Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%







Merci Daniel pour ta réponse,

mais j'ai une erreur sur la ligne sheets(.List(i)).copy:
n'appartient pas à la sélection.

Merci encore pour ton aide,

Cordialement.





































Avatar
Daniel
En remplaçant :
Workbooks("LeNomQueTuVeux.xls").Save
Workbooks("LeNomQueTuVeux.xls").Close
par :
With Workbooks("LeNomQueTuVeux.xls")
Application.DisplayAlerts = False
.Sheets("Feuil1").Delete
.Sheets("Feuil2").Delete
.Sheets("Feuil3").Delete
Application.DisplayAlerts = True
.Save
.Close
End With
si tes classeurs vierges ont trois feuilles.
Cordialement.
Daniel
"ga51" a écrit dans le message de news:

Merci beaucoup pour ta réponse rapide,

Cela fonctionne au poil avec ces quelques modifs:

Private Sub CommandButton1_Click()
Workbooks.Add
ActiveWorkbook.SaveAs Filename:="LeNomQueTuVeux.xls"

UserForm1.Show
End Sub


Sub CommandButton1_Click()
UserForm1.Hide

Workbooks(1).Activate

With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(.List(i)).Copy
Before:=Workbooks("LeNomQueTuVeux.xls").Sheets(1)


Workbooks(1).Activate 'active le classeur source

End If

Next i
End With
Workbooks("LeNomQueTuVeux.xls").Save
Workbooks("LeNomQueTuVeux.xls").Close
End Sub


Une dernière chose, comment peut-on supprimer les feuilles vides qui sont
par défaut dans le classeur créé ? pour finioler !! pour éviter d'envoyer
un fichier avec des onglets vides.

Merci encore pour tout

Cordialement

Ga51


En plein dans le mille :
Code du bouton de la feuille "Feuil4" :

Private Sub CommandButton1_Click()
Workbooks.Add
ActiveWorkbook.SaveAs Filename:="LeNomQueTuVeux.xls"
Workbooks(2).Activate 'active le classeur source
UserForm1.Show
End Sub

et le code du bouton de l'userform :

Private Sub CommandButton1_Click()
UserForm1.Hide
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(.List(i)).Copy
Before:=Workbooks("LeNomQueTuVeux.xls").Sheets(1)
Workbooks(2).Activate 'active le classeur source
End If
Next i
End With
Workbooks("LeNomQueTuVeux.xls").Save
Workbooks("LeNomQueTuVeux.xls").Close
End Sub

Le code ne fonctionnait que parce que les deux classeurs avaient les
mêmes noms de feuilles.
Cordialement.
Daniel


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


J'avais déjà supprimé la ligne MsgBox .list(i).

De quel nom affiché parles-tu ? de celui de l'onglet sélectionné ? si
oui, c'est effectivement le nom de l'onglet qui fait parti de mon
classeur d'origine.

Ne serait-ce pas un problème de classeur actif ?
Lors de la copie, quel classeur doit être actif, le classeur d'origine ou
le classeur de sauvegarde ?
L'instruction Workbooks(1).Activate correspond à quel classeur ?

Merci encore de t'occuper de "mon cas"

Cordialement.

Ga51



Si tu n'as pas ôté la ligne "msgbox .list(i)", le nom affiché
appartient-il à ton classeur origine ?
Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%


Merci beaucoup pour ta réponse
C'est exactement ce que je voulais

Cela fonctionne impec avec un classeur test.

Mais j'ai une erreur: "L'indice n'appartient pas à la sélection" lors
de la copie du 2ième onglet sélectionné sur mon classeur. Le 1er onglet
sélectionné se copie parfaitement.
Une exécution pas à pas m'arrête sur la ligne lors de la 2ième
tentative de copie:
Sheets(.List(i)).Copy Before:=Workbooks("LeNomQueTuVeux.xls").Sheets(1)

Mes onglets ne sont pas protégés, ils ont simplement des boutons de
contrôles et des mise en formes.
Pourquoi ce bug ?

Cordialement

Ga51



Bonjour.
Code du bouton de Feuil3 :

Private Sub CommandButton1_Click()
Workbooks.Add
ActiveWorkbook.SaveAs Filename:="LeNomQueTuVeux.xls"
Workbooks(1).Activate
UserForm1.Show
End Sub

Code du bouton du userform :

Private Sub CommandButton1_Click()
UserForm1.Hide
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
MsgBox .List(i)
Sheets(.List(i)).Copy
Before:=Workbooks("LeNomQueTuVeux.xls").Sheets(1)
End If
Next i
End With
Workbooks("LeNomQueTuVeux.xls").Save
Workbooks("LeNomQueTuVeux.xls").Close
End Sub

Cordialement.
Daniel
"ga51" a écrit dans le message de news:
O9$



Merci pour ton exemple, il fonctionne super bien en effet.

Pour aller plus loin, en fait je voulais sauvegarder les onglets
sélectionnés dans un nouveau classeur et le renommer avec:
ActiveWorkbook.SaveAs Filename:= ...etc.. (pour envoi futur par mail)
plutôt que d'envoyer ces onglets dans un classeur déjà existant.
Car dans ma configuration de travail, cela sera impossible.
Pourrais-tu m'aider pour la syntaxe ?

Merci beaucoup de ton aide

Cordialement.

Ga51




J'ai créé un nouveau classeur minimal avec une userform et une
listbox. Ca fonctionne sans problème. Je te l'envoie.
http://cjoint.com/?fqwWPpRgFp
Cordialement.
Daniel
"ga51" a écrit dans le message de news:





Merci d'avoir insister !
En effet cela fonctionne (je n'avais pas le classeur cible
ouvert!)...
Mais si je le transpose dans ma macro, cela ne fonctionne pas.
Sans doute ce sont les propriétés de ma listbox, créée dans un
userform, qui ne correspondent pas ?
j'ai mis les propriétés à MultiSelect, je remplis la listbox avec
Additem pour l'alimenter du noms des onglets.

Qq'un pour m'aider svp

Merci beaucoup

Cordialement.

Ga51






Bonjour,

pas de pb pour moi non plus avec le fichier de Daniel alors que
j'ai la même config que toi. Il doit y avoir autre chose.
Fais une éxécution en mode pas à pas du fichier qui t'a été
transmis et regarde ce que ca donne.

A+






J'ai Excel 2000 sur win xp pro

Merci en tout cas pour tes réponses.

Cordialement

Ga51






Problème de version ?
La listbox est configurée de telle manière qu'il faut maintenir
la touche CTRL enfoncée pour faire une seconde sélection.
Sinon il va falloir que les VRAIS gourous se penchent sur ton
problème.
Cordialement.
Daniel
"ga51" a écrit dans le message de news:






Merci Daniel pour le classeur de test.
Mais j'ai toujours la même erreur sur ton classeur.(l'objet
n'appartient pas a la selection)
De plus dans la msgbox, il n'y a qu'1 seule feuille et non
toutes les feuilles sélectionnées.

Manquerait-il qqchose ?

Cordialement

Ga51






Je t'envoie le classeur qui m'a servi à faire le test.
http://cjoint.com/?fqqZYIv66K
Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%






Bonjour,

Merci pour ta réponse,

Oui tous les onglets sont dans le classeur ouvert et donc
actif.

Cordialement

Ga







Bonjour.
J'ai pas trop étudié ton code; est-ce que la feuille copiée
fait partie du classeur actif ?
Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%







Merci Daniel pour ta réponse,

mais j'ai une erreur sur la ligne sheets(.List(i)).copy:
n'appartient pas à la sélection.

Merci encore pour ton aide,

Cordialement.







































Avatar
ga51
Super
Merci beaucoup pour ta disponibilité

Dernière question:

Comment verifier si la sélection a bien été faite dans la listbox.
J'ai testé:
If IsNull(ListBox1) Then
reponse = MsgBox("vous n'avez rien sélectionné, voulez-vous poursuivre
?", vbYesNo)
If reponse = 6 Then
MsgBox "Ok, Alors Sélectionnez une Option en cliquant dessus ! On
Recommence"
Else
MsgBox "OK ! On arrête alors"
UserForm44.Hide
End If
Else ...

mais cela ne fonctionne qu'avec la propriété listbox sur select single
et plus sur select multi.

Petit plus, peut-on copier les onglets dans l'ordre de la listbox ?
car le dernier copié se met avant l'autre. Normal je pense à cause du
Before dans la copie ?


Après, c'est promis, j'arrête de te solliciter!!


Merci encore pour tout.

Cordialement

Ga51

Cordialement

Ga51



En remplaçant :
Workbooks("LeNomQueTuVeux.xls").Save
Workbooks("LeNomQueTuVeux.xls").Close
par :
With Workbooks("LeNomQueTuVeux.xls")
Application.DisplayAlerts = False
.Sheets("Feuil1").Delete
.Sheets("Feuil2").Delete
.Sheets("Feuil3").Delete
Application.DisplayAlerts = True
.Save
.Close
End With
si tes classeurs vierges ont trois feuilles.
Cordialement.
Daniel
"ga51" a écrit dans le message de news:


Merci beaucoup pour ta réponse rapide,

Cela fonctionne au poil avec ces quelques modifs:

Private Sub CommandButton1_Click()

Workbooks.Add
ActiveWorkbook.SaveAs Filename:="LeNomQueTuVeux.xls"

UserForm1.Show
End Sub


Sub CommandButton1_Click()
UserForm1.Hide

Workbooks(1).Activate


With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(.List(i)).Copy
Before:=Workbooks("LeNomQueTuVeux.xls").Sheets(1)


Workbooks(1).Activate 'active le classeur source

End If

Next i
End With
Workbooks("LeNomQueTuVeux.xls").Save
Workbooks("LeNomQueTuVeux.xls").Close
End Sub


Une dernière chose, comment peut-on supprimer les feuilles vides qui sont
par défaut dans le classeur créé ? pour finioler !! pour éviter d'envoyer
un fichier avec des onglets vides.

Merci encore pour tout

Cordialement

Ga51



En plein dans le mille :
Code du bouton de la feuille "Feuil4" :

Private Sub CommandButton1_Click()
Workbooks.Add
ActiveWorkbook.SaveAs Filename:="LeNomQueTuVeux.xls"
Workbooks(2).Activate 'active le classeur source
UserForm1.Show
End Sub

et le code du bouton de l'userform :

Private Sub CommandButton1_Click()
UserForm1.Hide
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(.List(i)).Copy
Before:=Workbooks("LeNomQueTuVeux.xls").Sheets(1)
Workbooks(2).Activate 'active le classeur source
End If
Next i
End With
Workbooks("LeNomQueTuVeux.xls").Save
Workbooks("LeNomQueTuVeux.xls").Close
End Sub

Le code ne fonctionnait que parce que les deux classeurs avaient les
mêmes noms de feuilles.
Cordialement.
Daniel


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



J'avais déjà supprimé la ligne MsgBox .list(i).

De quel nom affiché parles-tu ? de celui de l'onglet sélectionné ? si
oui, c'est effectivement le nom de l'onglet qui fait parti de mon
classeur d'origine.

Ne serait-ce pas un problème de classeur actif ?
Lors de la copie, quel classeur doit être actif, le classeur d'origine ou
le classeur de sauvegarde ?
L'instruction Workbooks(1).Activate correspond à quel classeur ?

Merci encore de t'occuper de "mon cas"

Cordialement.

Ga51




Si tu n'as pas ôté la ligne "msgbox .list(i)", le nom affiché
appartient-il à ton classeur origine ?
Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%



Merci beaucoup pour ta réponse
C'est exactement ce que je voulais

Cela fonctionne impec avec un classeur test.

Mais j'ai une erreur: "L'indice n'appartient pas à la sélection" lors
de la copie du 2ième onglet sélectionné sur mon classeur. Le 1er onglet
sélectionné se copie parfaitement.
Une exécution pas à pas m'arrête sur la ligne lors de la 2ième
tentative de copie:
Sheets(.List(i)).Copy Before:=Workbooks("LeNomQueTuVeux.xls").Sheets(1)

Mes onglets ne sont pas protégés, ils ont simplement des boutons de
contrôles et des mise en formes.
Pourquoi ce bug ?

Cordialement

Ga51




Bonjour.
Code du bouton de Feuil3 :

Private Sub CommandButton1_Click()
Workbooks.Add
ActiveWorkbook.SaveAs Filename:="LeNomQueTuVeux.xls"
Workbooks(1).Activate
UserForm1.Show
End Sub

Code du bouton du userform :

Private Sub CommandButton1_Click()
UserForm1.Hide
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
MsgBox .List(i)
Sheets(.List(i)).Copy
Before:=Workbooks("LeNomQueTuVeux.xls").Sheets(1)
End If
Next i
End With
Workbooks("LeNomQueTuVeux.xls").Save
Workbooks("LeNomQueTuVeux.xls").Close
End Sub

Cordialement.
Daniel
"ga51" a écrit dans le message de news:
O9$




Merci pour ton exemple, il fonctionne super bien en effet.

Pour aller plus loin, en fait je voulais sauvegarder les onglets
sélectionnés dans un nouveau classeur et le renommer avec:
ActiveWorkbook.SaveAs Filename:= ...etc.. (pour envoi futur par mail)
plutôt que d'envoyer ces onglets dans un classeur déjà existant.
Car dans ma configuration de travail, cela sera impossible.
Pourrais-tu m'aider pour la syntaxe ?

Merci beaucoup de ton aide

Cordialement.

Ga51





J'ai créé un nouveau classeur minimal avec une userform et une
listbox. Ca fonctionne sans problème. Je te l'envoie.
http://cjoint.com/?fqwWPpRgFp
Cordialement.
Daniel
"ga51" a écrit dans le message de news:






Merci d'avoir insister !
En effet cela fonctionne (je n'avais pas le classeur cible
ouvert!)...
Mais si je le transpose dans ma macro, cela ne fonctionne pas.
Sans doute ce sont les propriétés de ma listbox, créée dans un
userform, qui ne correspondent pas ?
j'ai mis les propriétés à MultiSelect, je remplis la listbox avec
Additem pour l'alimenter du noms des onglets.

Qq'un pour m'aider svp

Merci beaucoup

Cordialement.

Ga51







Bonjour,

pas de pb pour moi non plus avec le fichier de Daniel alors que
j'ai la même config que toi. Il doit y avoir autre chose.
Fais une éxécution en mode pas à pas du fichier qui t'a été
transmis et regarde ce que ca donne.

A+







J'ai Excel 2000 sur win xp pro

Merci en tout cas pour tes réponses.

Cordialement

Ga51







Problème de version ?
La listbox est configurée de telle manière qu'il faut maintenir
la touche CTRL enfoncée pour faire une seconde sélection.
Sinon il va falloir que les VRAIS gourous se penchent sur ton
problème.
Cordialement.
Daniel
"ga51" a écrit dans le message de news:







Merci Daniel pour le classeur de test.
Mais j'ai toujours la même erreur sur ton classeur.(l'objet
n'appartient pas a la selection)
De plus dans la msgbox, il n'y a qu'1 seule feuille et non
toutes les feuilles sélectionnées.

Manquerait-il qqchose ?

Cordialement

Ga51







Je t'envoie le classeur qui m'a servi à faire le test.
http://cjoint.com/?fqqZYIv66K
Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%







Bonjour,

Merci pour ta réponse,

Oui tous les onglets sont dans le classeur ouvert et donc
actif.

Cordialement

Ga








Bonjour.
J'ai pas trop étudié ton code; est-ce que la feuille copiée
fait partie du classeur actif ?
Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%








Merci Daniel pour ta réponse,

mais j'ai une erreur sur la ligne sheets(.List(i)).copy:
n'appartient pas à la sélection.

Merci encore pour ton aide,

Cordialement.










































1 2 3 4