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 :

Créer un tableau dynamique des feuilles à imprimer


Sujet :

Macros et VBA Excel

  1. #1
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut Créer un tableau dynamique des feuilles à imprimer
    Hello zazaraignée, Alain, Michel et les autres
    Je vois que vous êtes tous là alors j'ai une question qui s'adresse aux essspécialistes que vous êtes.
    Pour créer un tableau en dynamique et en extraire une chaîne on peut faire tout ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub LaSub()
    Dim Tableau(), LeTableau
       ReDim Tableau(1)
       Tableau(1) = """X""" & ", "
       ReDim Preserve Tableau(2)
       Tableau(2) = """IX"""
       'Conversion en chaîne
       LeTableau = Join(Tableau) '=> "X", "IX"
    End Sub
    Par ailleurs, pour imprimer un tableau de feuilles de calculs on peut faire ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(Array("Sommaire", "Feuil1", "III", "V", "VII", "IX")).PrintOut
    Dernier code offert gratuitement par Michel, y'a longtemps.
    Ma question : Comment utiliser LeTableau de mon premier exemple dans la syntaxe du second
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets(Array(LeTableau)).PrintOut
    ce dernier exemple ne fonctionnant pas quelque soit la manière de créer la chaîne "LeTableau" (en concaténant ou en partant d'un tableau converti par join)
    Existe-t-il une manière de faire ça, sachant que c'est pour imprimer un ensemble variable de feuilles numérotées ou mieux, créer un pdf unique de ces feuilles.
    Par avance, un grand merci.

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir cher Ouskel'n'or

    tu peux utiliser

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub Test()
        Dim Tableau() As String
        Dim TabTemp As Variant
     
        ReDim Tableau(1 To 2)
        Tableau(1) = "Feuil1"
        Tableau(2) = "Feuil3"
     
        TabTemp = Tableau()
        Worksheets(TabTemp).PrintPreview
    End Sub

    Un peu de lecture complémentaire

    http://silkyroad.developpez.com/vba/tableaux/


    bonne soirée
    michel

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 543
    Points
    15 543
    Par défaut
    Bonsoir Michel,
    J'ai testé ta réponse sans rien changer et, naturellement, ça fonctionne au premier quart de tour. Merci pour ta réponse.
    Mais si je te dis que j'avais testé cette solution et que j'avais le message sur l'indice soit disant en dehors des clous, tu ne me croiras pas. Sauf... si j'ajoute que j'avais omis les parenthèses sur TabTemp = Tableau()...
    Mais si je te dis qu'en enlevant les parenthèses à tableau ton code fonctionne aussi, serait-ce parce que j'ai déclaré TabTemp sans préciser as variant pisk l'est "as variant" par défaut ?
    Non, je viens de tester, ça fonctionne aussi.
    La nuit portant conseil, je ferais mieux d'aller me coucher. "Plus tard" dans la journée je reprendrai mon code et tâcherai de trouver le pourquoi de la chose.
    Si je trouve, je viendrai ici avouer ma faute
    Encore merci.
    Bonne nuit.

    Edit
    Rien ne vaut une bonne nuit de sommeil. Donc, chose promise...
    Mon erreur ? J'avais laissé les guillemets en créant le tableau :
    Tableau(n) = """X"""
    Faut pas
    Je vais pouvoir aller profiter du grand soleil l'esprit tranquille

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 9
    Dernier message: 04/04/2007, 11h16
  2. Réponses: 4
    Dernier message: 20/03/2007, 19h28
  3. [MySQL] Comment enlever des doublons lors de l'affichage d'un tableau dynamique ?
    Par wylls dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 22/12/2006, 14h54
  4. Ajouter dynamiquement des lignes à un tableau HTML
    Par jeannot1974 dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 20/11/2006, 15h39
  5. [Conception] Recuperer des données dans un tableau dynamique
    Par Tartanjet dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 05/09/2006, 00h28

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