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 !

GeoTrouvePas

XLDnaute Impliqué
Bonjour tout le monde,

Voilà j'ai un petit soucis sur quelque chose de pas bien compliqué que je n'arrive pas à maîtriser.

Je voudrais exporter tous les onglets de mon classeur vers un nouveau sauf les onglets dont les noms figurent dans une plage nommée "Feuilles_A_Garder"

En fait j'arrive à faire une boucle pour les exporter les uns après les autres dans des fichiers séparés mais pas tous ensemble dans le même fichier.

Il me semble qu'il faut utiliser un "Array" mais j'ai du mal à comprendre comment ça marche.

Auriez vous une idée ?

Merci d'avance et bonne fin de journée à tout le monde
 
Re : Manipuler un Array

Salut Géo, Pascal 🙂,
A adapter
Code:
Sub test()
Dim Feuille As Worksheet
For Each Feuille In ThisWorkbook.Worksheets
If Range("Plage").Find(Feuille.Name) Is Nothing Then
MsgBox Feuille.Name
End If
Next
End Sub
Bonne soirée 😎
 
Re : Manipuler un Array

Bonsoir Paritec !

Bien pensé ! J'avais pas envisagé de prendre le problème dans ce sens là. Mais petit soucis : Les feuilles que je veux garder sont extrèmement bien remplies. Du coup une macro comme celle que tu proproses serait très longue à tourner.

Et ça m'embète un peu d'exporter des feuilles aussi lourdes pour les supprimer après.

En fait il me faudrait juste une façon de boucler comme ceci :

Code:
Sub Sauvegarder()

For i = 1 To ThisWorkbook.Sheets.Count

    [COLOR="Red"]If Sheets(i).name 'n'appartient pas à la plage("Feuilles_A_Garder") Then
        'Ajouter dans Array[/COLOR]    End If

Next

[COLOR="red"]Sheets(Array("Feuil1", "Feuil3")).Move[/COLOR]

ActiveWorkbook.SaveAs "C:\Mondossier\Sauvegarde.xls"

End Sub

Quelqu'un auriat une idée pour exprimer ce "concept" correctement ?
 
Dernière édition:
Re : Manipuler un Array

Salut JNP, on s'est croisés manifestement 😉

Merci pour ta proposition, mais mon soucis ne vient pas du fait que je ne sais pas déterminer si la feuille enquestion fait partir de ma plage d'exclusion ou pas mais plutôt du fait que je ne sais pas comment l'ajouter dans une expression du type :

Code:
Sheets(Array("Feuil1", "Feuil3")).Move
 
Re : Manipuler un Array

Bonjour GéoTrouePas, Pascal, et à ceux qui passeront par ici,

Je joins un Exemple qui fonctionne à l'envers de ce que tu demandes!
(Il suffit donc de faire un 180° avec l'écran) 😀

Je pense cependant que tu sauras l'adapter à ta recherche...

Il y manque aussi la création du Classeur de destination,
mais je ne doute que tu saches le faire.

Si tu n'y trouves pas solution; je suis disposé à aller plus loin.
(Mais il me faudra un peu de temps pour te construire un exemple)

Amicalement.

Yann
 

Pièces jointes

Dernière édition:
Re : Manipuler un Array

Bonsoir GeoTrouvePas Jean Noël🙂,
pourquoi copier les feuilles? tu copies le classeur complet avec un
saveas et après tu supprimes ta feuille
La copie d'un classeur complet n'est pas longue ou alors tu as un fichier de combien de MO ??
a+
papou 🙂

Code:
autrement dans ta boucle 
dim ws as worksheet
for each ws in worksheets
if ws.name<> " le nom a pas copier" then  "ta copie ou tu veux"
next ws
 
Re : Manipuler un Array

Re 🙂,
Bon alors, comme ça
Code:
Sub test()
Dim Feuille As Worksheet, Tableau()
ReDim Tableau(0)
For Each Feuille In ThisWorkbook.Worksheets
If Range("Plage").Find(Feuille.Name) Is Nothing Then
ReDim Preserve Tableau(UBound(Tableau) + 1)
Tableau(UBound(Tableau) - 1) = Feuille.Name
End If
Next
ReDim Preserve Tableau(UBound(Tableau) - 1)
Sheets(Tableau).Select
End Sub
Attention aux chauffards 😀...
Bonne soirée 😎
 
Re : Manipuler un Array

bonjour

peut etre un truc dans ce style :

Code:
Dim tablo()
Dim i As Byte
ReDim tablo(0)
For i = 1 To Sheets.Count
    If Sheets(i).Name <> "Feuil3" Then
        If i = 1 Then ReDim Preserve tablo(UBound(tablo)) Else ReDim Preserve tablo(UBound(tablo) + 1)
        tablo(UBound(tablo)) = Sheets(i).Name
    End If
Next i
Sheets(tablo).Select

salut
 
- 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

Réponses
7
Affichages
481
  • Question Question
Microsoft 365 Problème macro
Réponses
4
Affichages
433
Réponses
8
Affichages
653
Retour