IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Impression personnalisée multi onglet


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2021
    Messages : 1
    Par défaut Impression personnalisée multi onglet
    Bonjour à tous,

    Après de nombreuses recherches et de nombreux essais infructueux, je m'en remets à vous pour m'aiguiller s'il vous plait ^^'

    Voici mon besoin :

    Fichier excel ayant de nombreux onglets

    Les 30 premiers servent à l'enregistrement brut des valeurs prises avec LV.

    Les onglets suivants servent à la mise en page d'un rapport.

    - 1 tab correspond à une fonction
    - 4 tab par onglet
    - 2 tab par page
    - chaque onglet : fcts de même type

    Les fonctions effectuées étant complètement aléatoires, je voudrais pouvoir imprimer seulement les pages ayant au moins un tableau rempli
    un apercu avant impression serait ideal.

    Petite précision : les pages de droite (colonnes > H) contiennent du contenu servant la construction de ces tableaux.

    Donc la sélection qui m'intéresse : A1:H50 pour la page 1 et A51:H100 pour la page 2 ( si ces 2 pages contiennent au moins un tab rempli)

    Je sais comment lancer l'impression de ces onglets si je pouvais me pemettre d'imprimer tout l'onglet.
    Seulement ici, il faut sélectionner une sélection bien spécifique.

    Je pensais avoir trouvé la botte secrète avec le "union" mais ca ne marche pas pour des selections dans des onglets différents.

    Je vous mets en copie un excel avec moins d'onglet que celui que j'utilise pour des raisons de confidentialité et je reste dispo.
    Si j'ai pas été assez clair n'hésitez pas à me le dire.

    Merci d'avance
    Fichiers attachés Fichiers attachés

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 418
    Par défaut
    Bonjour,

    A mon avis, le plus simple est de recopier les parties utiles dans une autre feuille tampon, ce qui permet d'avoir un bon "aperçu avant impression". Par exemple ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    Option Explicit
     
    Sub PréparerImpression()
        Dim wshPrint As Worksheet, wshToPrint As Worksheet, wsh As Worksheet
        Dim sName As String, kR As Long, kRtp As Long
        Set wshPrint = ThisWorkbook.Worksheets("Page impression")
        Set wshToPrint = ThisWorkbook.Worksheets("A imprimer")  '--- feuille tampon
        wshToPrint.Cells.Clear          '--- nettoie la feuille tampon
        kR = 2                          '--- n° ligne dans wshPrint
        kRtp = 1                        '--- n° ligne dans wshToPrint
        While Range("B" & kR) <> ""
            If Range("C" & kR) <> "" Then
                sName = Range("B" & kR)
                Set wsh = ThisWorkbook.Worksheets(sName)
                If wsh.Range("B16") <> "" Or wsh.Range("B32") <> "" Then
                    wsh.Range("A1:H50").Copy
                    wshToPrint.Range("A" & kRtp).PasteSpecial xlPasteValues
                    wshToPrint.Range("A" & kRtp).PasteSpecial xlPasteFormats
                    kRtp = kRtp + 50
                End If
                If wsh.Range("B66") <> "" Or wsh.Range("B82") <> "" Then
                    wsh.Range("A51:H100").Copy
                    wshToPrint.Range("A" & kRtp).PasteSpecial xlPasteValues
                    wshToPrint.Range("A" & kRtp).PasteSpecial xlPasteFormats
                    kRtp = kRtp + 50
                End If
            End If
            kR = kR + 1
        Wend
        wshToPrint.Select
        Set wsh = Nothing
        Set wshPrint = Nothing
        Set wshToPrint = Nothing
    End Sub
    Cordialement.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. zone d'impression excel multi utilisateur
    Par bouba_95 dans le forum Excel
    Réponses: 3
    Dernier message: 08/03/2007, 21h55
  2. Editeur de texte multi-onglets et SynEdit
    Par Jorael dans le forum Delphi
    Réponses: 5
    Dernier message: 05/02/2007, 22h59
  3. impression etat multi exemplaires
    Par @rkane dans le forum Contribuez
    Réponses: 5
    Dernier message: 28/06/2006, 09h36
  4. Impression de deux onglets à la fois
    Par auriolbeach dans le forum Access
    Réponses: 3
    Dernier message: 17/10/2005, 05h34
  5. Impression personnalisée
    Par stof dans le forum MFC
    Réponses: 45
    Dernier message: 31/08/2005, 10h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo