OVH Cloud OVH Cloud

copier onglets

3 réponses
Avatar
ga51
Bonjour à tous,

Je recherche une formule qui à partir d'un userform avec listbox pour
choix de plusieurs onglets, me permette de copier les onglets
selectionnés dans un nouveau fichier.
J'y arrive avec un seul onglet selectionné mais je sèche avec plusieurs....
J'ai activé la propriété multiselect de la listbox mais après ????

voici ce que j'utilise:
une premiere macro pour déterminer le nom des onglets et les afficher
dans la listbox:
.......
ListBox1.Clear
With Me.ListBox1
ListBox1.AddItem "AA"
ListBox1.AddItem "AB"
ListBox1.AddItem "AC"
ListBox1.AddItem "AD"
ListBox1.AddItem "AE"
ListBox1.AddItem "AF"
ListBox1.AddItem "AG"
end with
.......
puis une autre macro pour copier l'onglet sélectionné:(l'onglet synthese
étant toujours copié par défaut)
........
onglet = UserForm44.ListBox1.Value
Sheets(Array(onglet, "SYNTHESE")).Select
Sheets("SYNTHESE").Activate
Sheets(Array(onglet, "SYNTHESE")).Copy
ActiveWorkbook.SaveAs Filename:=repertoire & "\" & nom .......


Merci de votre aide

Cordiales salutations

3 réponses

Avatar
Daniel
Bonjour.
Avec une listbox à sélection multiple, il ne faut pas utiliser la propriété
"value" mais "selected". Ci joint un exemple de code dans un commandbutton :

Private Sub CommandButton1_Click()
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
MsgBox .List(i)
End If
Next i
End With
End Sub

Cordialement.
Daniel
"ga51" a écrit dans le message de news:
%
Bonjour à tous,

Je recherche une formule qui à partir d'un userform avec listbox pour
choix de plusieurs onglets, me permette de copier les onglets selectionnés
dans un nouveau fichier.
J'y arrive avec un seul onglet selectionné mais je sèche avec
plusieurs....
J'ai activé la propriété multiselect de la listbox mais après ????

voici ce que j'utilise:
une premiere macro pour déterminer le nom des onglets et les afficher dans
la listbox:
.......
ListBox1.Clear
With Me.ListBox1
ListBox1.AddItem "AA"
ListBox1.AddItem "AB"
ListBox1.AddItem "AC"
ListBox1.AddItem "AD"
ListBox1.AddItem "AE"
ListBox1.AddItem "AF"
ListBox1.AddItem "AG"
end with
.......
puis une autre macro pour copier l'onglet sélectionné:(l'onglet synthese
étant toujours copié par défaut)
........
onglet = UserForm44.ListBox1.Value
Sheets(Array(onglet, "SYNTHESE")).Select
Sheets("SYNTHESE").Activate
Sheets(Array(onglet, "SYNTHESE")).Copy
ActiveWorkbook.SaveAs Filename:=repertoire & "" & nom .......


Merci de votre aide

Cordiales salutations


Avatar
ga51
Merci pour la réponse,

Mais l'utilisation de Selected à la place de Value, me fait une erreur
de compil: argument non facultatif.

Le code proposé est Ok pour afficher les onglets selectionnés.
mais pour récupérer ceux sélectionnés et les copier dans un autre
classeur, là c'est pas cool ...
Comment m'en sortir ?
Merci beaucoup pour l'aide

Cordialement


Bonjour.
Avec une listbox à sélection multiple, il ne faut pas utiliser la propriété
"value" mais "selected". Ci joint un exemple de code dans un commandbutton :

Private Sub CommandButton1_Click()
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
MsgBox .List(i)
End If
Next i
End With
End Sub

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

Bonjour à tous,

Je recherche une formule qui à partir d'un userform avec listbox pour
choix de plusieurs onglets, me permette de copier les onglets selectionnés
dans un nouveau fichier.
J'y arrive avec un seul onglet selectionné mais je sèche avec
plusieurs....
J'ai activé la propriété multiselect de la listbox mais après ????

voici ce que j'utilise:
une premiere macro pour déterminer le nom des onglets et les afficher dans
la listbox:
.......
ListBox1.Clear
With Me.ListBox1
ListBox1.AddItem "AA"
ListBox1.AddItem "AB"
ListBox1.AddItem "AC"
ListBox1.AddItem "AD"
ListBox1.AddItem "AE"
ListBox1.AddItem "AF"
ListBox1.AddItem "AG"
end with
.......
puis une autre macro pour copier l'onglet sélectionné:(l'onglet synthese
étant toujours copié par défaut)
........
onglet = UserForm44.ListBox1.Value
Sheets(Array(onglet, "SYNTHESE")).Select
Sheets("SYNTHESE").Activate
Sheets(Array(onglet, "SYNTHESE")).Copy
ActiveWorkbook.SaveAs Filename:=repertoire & "" & nom .......


Merci de votre aide

Cordiales salutations







Avatar
Daniel
Bonsoir.
Essaie :

Private Sub CommandButton1_Click()
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
Sheets(.List(i)).Copy
Before:=Workbooks("Classeur2").Sheets(1)
End If
Next i
End With
End Sub

Cordialement.
Daniel

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

Merci pour la réponse,

Mais l'utilisation de Selected à la place de Value, me fait une erreur de
compil: argument non facultatif.

Le code proposé est Ok pour afficher les onglets selectionnés.
mais pour récupérer ceux sélectionnés et les copier dans un autre
classeur, là c'est pas cool ...
Comment m'en sortir ?
Merci beaucoup pour l'aide

Cordialement


Bonjour.
Avec une listbox à sélection multiple, il ne faut pas utiliser la
propriété "value" mais "selected". Ci joint un exemple de code dans un
commandbutton :

Private Sub CommandButton1_Click()
With ListBox1
For i = 0 To .ListCount - 1
If .Selected(i) Then
MsgBox .List(i)
End If
Next i
End With
End Sub

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

Bonjour à tous,

Je recherche une formule qui à partir d'un userform avec listbox pour
choix de plusieurs onglets, me permette de copier les onglets
selectionnés dans un nouveau fichier.
J'y arrive avec un seul onglet selectionné mais je sèche avec
plusieurs....
J'ai activé la propriété multiselect de la listbox mais après ????

voici ce que j'utilise:
une premiere macro pour déterminer le nom des onglets et les afficher
dans la listbox:
.......
ListBox1.Clear
With Me.ListBox1
ListBox1.AddItem "AA"
ListBox1.AddItem "AB"
ListBox1.AddItem "AC"
ListBox1.AddItem "AD"
ListBox1.AddItem "AE"
ListBox1.AddItem "AF"
ListBox1.AddItem "AG"
end with
.......
puis une autre macro pour copier l'onglet sélectionné:(l'onglet synthese
étant toujours copié par défaut)
........
onglet = UserForm44.ListBox1.Value
Sheets(Array(onglet, "SYNTHESE")).Select
Sheets("SYNTHESE").Activate
Sheets(Array(onglet, "SYNTHESE")).Copy
ActiveWorkbook.SaveAs Filename:=repertoire & "" & nom .......


Merci de votre aide

Cordiales salutations