Impression en boucle, ignorer les feuilles qui n'existent pas dans la plage

Salut à tous les membres de la communauté.

Depuis hier, je suis bloqué dans l'écriture d'un code VBA qui doit me faire une impression en boucle à partir des noms de feuilles se trouvant dans une plage de données dynamiques. Ma plage données contient les feuil(A,B,D,F)

J'ai pu adapter un code qui récupère et imprime mes données. Mais un gros soucis demeure :

lorsque je lance la macro, elle imprime la feuil(A), puis, la feui(B) deux fois , avant de passer à la feuil(D) en deux exemplaires aussi, puis la feui(F).

Je ne sais pas quelle condition je dois mettre pour passer de la feuil(A, puis, B, puis D...)

Merci d'avance

boujour Some,

Sub test()
     Dim Cellule, i, sh

     For Each Cellule In Range("A1:A10").Cells     'les noms de vos feuilles sont dans la plage A1:A10
          With Cellule                       'boucle ces cellules
               If Len(.Value) > 0 Then       'cellule n'est pas vide
                    On Error Resume Next
                    Set sh = Nothing
                    Set sh = Sheets(CStr(.Value))     'essayer à assigner cette feuille
                    On Error Resume Next
                    If Not sh Is Nothing Then     'si c'est réussi
                         sh.PrintPreview     'imprimer vers ecran
                         'sh.PrintOut'imprimer
                    End If
               End If
          End With
     Next
End Sub

Bonjour BsAlv.

j'ai essayé d"adapter votre code à ma macro. Mais je ne parviens pas.

il me revient toujours :

Erreur d'exécution '424':

Objet requis 

je ne sais vraiment pas comment faire. L'évolution du code s'arrête au moment de la copie des données vers la feuille de destination.

j'ai joint un classeur test avec mon code de départ et celui que j'ai essayé d'adapter, en m'inspirant de votre code.

cordialement

13fichiertest.xlsm (69.18 Ko)

re,

8fichiertest.xlsm (68.87 Ko)

re,

Merci bien BsAvl, le code marche correctement

Un autre soucis, si vous me le permettez. Dans certaines de mes feuilles ( de mon classeur original), je voudrais récupérer des données spécifiques de certaines colonnes. Pas les données de toute la ligne.

Dans ce cas, comment dois-je remanier le code pour ne copier que les données des colonnes concernées.

je suppose que c'est au niveau de

LO.ListRows.Add.range.resize(r, 10). Value = SH.ListObjects(1). DataBodyRange.Value

que doit se passer la réadaptation du code.

j'ai essayé mais, les données ne se copient pas sur ma ListObject. Elles s'éparpillent un peut partout dans la feuille.

je reviens à vous encore.

merci

re, je ne sais pas ce que vous voulez faire, donc c'est un pari ...

Je copie 3 blocs de r lignes et chaque fois quelque chose différent ....

15fichiertest.xlsm (70.16 Ko)

Ré,

Bonsoir BsAlv Je m'excuse pour le retard dans le retour.

Depuis hier, on nous avait coupé la connexion, ce qui fait que j'ai pas pu vous revenir à temps.

DANS L'UNE DE VOS TROIS PROPOSITIONS de votre dernier post part rapport à mon dernier soucis, je retrouve effectivement ce que je recherche.

Infiniment merci pour votre aide.

bonne soirée à vous

Rechercher des sujets similaires à "impression boucle ignorer feuilles qui existent pas plage"