VBA Concatener des feuilles pour les imprimer

[Résolu/Fermé]
Signaler
-
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
-
Bonjour,

Dans Excel 2010, J'ai un tableau avec dans la 1er colonne des noms d'onglets de mon classeur.
Dans la 10iè colonne, je mets des croix pour savoir si je veux les imprimer ou non.

Je n'arrive pas à trouver le code pour concatener ma sélection d'onglets à imprimer.

J'ai écrit :

Dim Fichiers_a_imprimer As Sheets
For i = 2 To maPlage.Rows.Count

If maPlage.Cells(i, 10) = "X" Then

Set Fichiers_a_imprimer = Array(Fichiers_a_imprimer, Sheets(maPlage.Cells(i, 1)))

End If
Next

Lorsque je le fais manuellement, sur quelques onglet, j'obtiens bien:

Sheets(Array("A6.3", "A1.1", "A5.2", "A5.5")).Select

Merci de votre aide

2 réponses

Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 536
Bonjour,

Si j'ai compris ce que tu veux, je te propose cette écriture :

Dim Fichiers_a_imprimer(), i As Integer, n As Integer
With maPlage
    For i = 2 To .UsedRange.Rows.Count
        If .Cells(i, 10) = "X" Then
            ReDim Preserve Fichiers_a_imprimer(n)
            Fichiers_a_imprimer(n) = .Cells(i, 1)
            n = n + 1
        End If
    Next i
End With
Sheets(Fichiers_a_imprimer).Select

Merci bien, c'est exactement ça!
Simplement une question: tu es obligé de commencer avec n=0 ou on peut partir de 1 également?
Merci encore!
Messages postés
14934
Date d'inscription
lundi 18 octobre 2004
Statut
Contributeur
Dernière intervention
24 juin 2020
4 536
Par défaut, le premier élément du tableau reçoit l'index 0 et non pas 1.

Ceci peut être changé en ajoutant en tête de module :

option base 1

Dans ton cas ce n'a pas beaucoup d'importance car à priori tu ne manipules pas le tableau.