Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

un "save as" spécial

  • Initiateur de la discussion Initiateur de la discussion Fugy
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Fugy

XLDnaute Occasionnel
Bonjour à tous !!
j'ai un petit soucis sur un save as depuis 1 semaine et impossible de trouver une réponse...

J'ai fait des recherches mais je crois que mes connaissances en VBA son limité
voila le soucis :
J'ai une expression appeler ced qui me sort une liste de feuilles suivant une listbox. Je souahiterai en fait avoir des noms de feuilles (par exemple MODELE, LISTE...) qui soit déjà inscrit ds VBA.

Lorsque je clique sur ok, cela me copie dans un nouveau classeur avec les feuilles déjà inscrit dans VBA + les feuilles choisis dans la listbox.
Voila la formule save as + la pièce jointe du prog.
Si qqun à une petite idée, il serait tip top cool !

Dim wb As Workbook
Dim i As Integer, tmp As Byte
Dim ced() As Variant
Set wb = ActiveWorkbook
With ListBox2
For i = 0 To .ListCount - 1
If .Selected(i) = False Then
ReDim Preserve myarray(tmp)
ced(tmp) = ListBox2.List(i)
tmp = tmp + 1
End If
Next
End With
wb.Worksheets(ced).Copy
Application.Dialogs(xlDialogSaveAs).Show



Pour info j'avais essayé cela mais cela ne fonctionner pas :
ced(tmp) = ListBox2.List(i) + Sheets. ("MODELE")
mais cela ne fonctionner pas.
 

Pièces jointes

Re : un "save as" spécial

Bonjour
Je pense que cela devrait répondre à ta demande... A tester.
Code:
Private Sub ok_contrat_Click()

'Copie plusieurs feuilles pour enregistrer
Dim wb As Workbook
Dim IB As Object
Dim i As Integer, tmp As Byte
Dim ced() As Variant
Set wb = ActiveWorkbook
tmp = 0
With ListBox2
    For i = 0 To .ListCount - 1
        If .Selected(i) = False Then
            ReDim Preserve ced(tmp)
            ced(tmp) = ListBox2.List(i)
            tmp = tmp + 1
        End If
    Next
End With
IB = InputBox("Nom du fichier de sauvegarde")
wb.Sheets(ced).Copy
ActiveWorkbook.SaveAs (IB)
wb.Activate
Unload contratentretien
contratentretien.Hide

End Sub
Cordialement

Edit : pas vu pierrejean, bonjour
 
Dernière édition:
Re : un "save as" spécial

Merci de votre aide pierrejean et Spitnolan08 mais le soucis que j'ai c'est qu'il faudrait "en plus" des feuilles choisis dans la listbox 2 que la feuille "liste ou modele ou les 2" soit inscrit dans le code VBA.

Cela me permettra de faire un nouveau classeur avec :

- les feuilles choisis dans la listbox2

- Plus (et c'est la que je bloque) les feuilles (MODELE et LISTE) SANS que je la choissise dans la listbox2. Et seront tout le temps dans les nouveaux classeurs crée. Ce ne sera pas le cas des feuilles (Feuil1, Feuil2 ...)

voila ;-)
 
Re : un "save as" spécial

Re
Code:
Private Sub ok_contrat_Click()
.........
With ListBox2
    For i = 0 To .ListCount - 1
        If .Selected(i) = False Then
            ReDim Preserve ced(tmp)
            ced(tmp) = ListBox2.List(i)
            tmp = tmp + 1
        End If
        ReDim Preserve ced(tmp+2)
        ced(tmp+1)="Liste"
        ced(tmp+2) = "Modele"
    Next
End With
....
End Sub
Cordialement
 
Re : un "save as" spécial

Merci messieurs (enfin pour pierrejean car pour Spitnolan08 je sais pas)
la formule de pierre jean fonctionne, j'ai adapté une p'tite bricole. sinon pour Spitnolan08, j'ai pas réussi à faire fonctionner ta formule, je sais pas pourquoi.

Merci encore !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
520
Réponses
7
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…