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 :

Sélection de feuilles via une liste cochable


Sujet :

Macros et VBA Excel

  1. #21
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Points : 57
    Points
    57
    Par défaut
    Ok, je comprends mieux maintenant.
    C'est un décalage entre l'index de la listbox et l'index des feuilles.

    Donc il faut bien opéré ce décalage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    liste_feuilles(taille_tableau) = Sheets(i + 1).Name
    Et en ramenant la propriété TopIndex de ma listbox à 0 (par défaut elle est à -1), ça change la donne?

  2. #22
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Points : 855
    Points
    855
    Par défaut
    Ca c'est à toi de nous le dire: on est pas derrière toi pour tester sur ton ordi.

  3. #23
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Points : 57
    Points
    57
    Par défaut
    Alors il n'aime pas du tout que je lui mette une autre valeur que la sienne dans TopIndex.

    Ca c'est fait.

    Par contre un truc bizarre apparait avec ton code à l'usage.
    Quand je l'ai inséré, toutes mes feuilles étaient visibles et la macro fonctionnait bien. Grace à un bouton dans une barre d'outils j'ouvrais mon usf avec la listbox contenant la liste de toutes les feuilles visibles du classeur. Je sélectionne tout ou qq une, je click sur le bouton impression qui commande ton code et pan ça imprime tout bien.


    Je finalise mon classeur pour lui donner l'allure finale, cad que je cache toutes mes feuilles sauf une, puis en fonction des renseignements fournis, d'autres deviennent à leur tour visibles.
    Je lance mon usf d'impression je sélectionne tout et là erreur : erreur 1004, la méthode PrintOut de la classe Sheets à échoué.

    Je redécouvre toutes mes feuilles, recommence et là pas de souçi.

    ?????????????????????????????????????????????????????????????

    Si tu veux je peux t'envoyer le classeur.

  4. #24
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Points : 855
    Points
    855
    Par défaut
    Envoie moi le classeur car là je n'ai rien compris.

  5. #25
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 12
    Points : 14
    Points
    14
    Par défaut
    Normal. L'indice de ta liste ne correspond plus à l'indice de la feuille du classeur.
    Tu te retrouves à imprimer des feuilles cachées...
    Veux pas faire mon boulet débutant, mais dans ton tableau de nom de feuille, charge la valeur de ta ligne de listbox plutot que récupérer le nom de la feuille à partir de l'indice.

  6. #26
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Points : 57
    Points
    57
    Par défaut


    Alors, pour faire simple :

    Quand je laisse le calsseur dans l'état actuel (celui dans lequel je te l'envoi), pas de souçis, l'impression fonctionne

    Quand je masque toutes les feuilles sauf DONNEES T°C, qui à terme sera la seule visible à l'ouverture du classeur, là ça me balance une erreur!!!



    Pour lançer l'impression, clic sur le bouton de la barre d'outils créée en haut à gauche. Ca lance un usf avec la liste des feuilles visibles.
    Fichiers attachés Fichiers attachés

  7. #27
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Points : 855
    Points
    855
    Par défaut
    Ahh OK, je n'avais pas compris que tu cachais des feuilles.

    Oui frednts a raison: si tes feuilles sont cachées tu ne peux pas les imprimer.

    Mais contrairement à ce qu'il dit, ça ne fonctionnera pas plus si tu te bases sur ta listbox.
    Comme les feuilles doivent être affichées pour être imprimées, ce que tu peux faire c'est:
    -désactiver la mise à jour de l'affichage avec ScreenUpdating
    -"afficher" toutes les feuilles
    -imprimer
    -"remasquer" toutes tes feuilles
    -réactiver la mise à jour de l'affichage

    Visuellement, tu ne verras pas tes feuilles s'afficher et se remasquer, car tu auras désactivé la mise à joru de l'affichage: ça fait plus propre.

    Je ne te donne pas le code pour faire tout ça: je dois partir en week end.
    Si tu sèche au mieux je pourrai te répondre lundi.

    PS: fais bien attention d'afficher les feuilles avant de les lister, sinon ton programme continuera de planter.

  8. #28
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Points : 57
    Points
    57
    Par défaut
    J'ai bien compris ton message mais en faisant comme ça, je vais lister toutes mes feuilles, et pas uniquement celles masquées!!! Non?

    Sinon frednts, comment tu t'y prends pour récupérer le nom de tes feuilles à partir de ton tableau. Car j'ai essayé mais au mieux ça imprimer mes pages une par une et me foutait en l'air ma pagination.

  9. #29
    Membre à l'essai
    Inscrit en
    Octobre 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 12
    Points : 14
    Points
    14
    Par défaut
    Sauf erreur, tu ne listes que les feuilles visibles, pas celles masquées, non ?
    Si oui alors au lieu de faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    liste_feuilles(taille_tableau) = Sheets(i + 1).Name
    tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    liste_feuilles(taille_tableau) = .list(i)

  10. #30
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Points : 57
    Points
    57
    Par défaut
    Simplement avec ta méthode je retombe sur l'ancien pb, à savoir qu'il commence à imprimer la feuille d'avant ma selection !

    J'ai essayé d'opérer le décalage avec :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    liste_feuilles(taille_tableau) = .List(i + 1)
    mais il me met l'erreur suivante : l'indice n'appartient pas sélection en me surlignant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sheets(liste_feuilles).PrintOut copies:=1, collate:=True

  11. #31
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 106
    Points : 57
    Points
    57
    Par défaut
    En remettant le compteur de ma boucle à i=0, ça fonctionne!!!!

    Je laisse le post ouvert en attendant de torturer ce code tout le we

    Je vais voir s'il craque ou pas.


    En tous cas merci les gars, j'ai encore appris pas mal de choses en VBA grâce à vous et vous en remercie.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 10
    Dernier message: 15/07/2012, 14h18
  2. [Toutes versions] Recopier un tableau d'une autre feuille via une liste déroulante
    Par alex.du.09 dans le forum Excel
    Réponses: 3
    Dernier message: 18/05/2011, 18h10
  3. Export d une liste de feuilles via une listbox
    Par truespace dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 26/12/2009, 18h58
  4. [Requête] Tri via une liste déroulante
    Par Burnout dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 09/01/2006, 19h16
  5. récupération des données via une liste déroulante
    Par rahan_dave dans le forum Access
    Réponses: 1
    Dernier message: 13/10/2005, 13h27

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