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 :

[VBA-E] imprimer une feuille sans connaitre le nom


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 106
    Points : 55
    Points
    55
    Par défaut [VBA-E] imprimer une feuille sans connaitre le nom
    Bonjours,

    Me revoilà avec un autre problème.

    J'ai 8000 classeurs du meme style, chaque classeur contient 4 feuille :
    -FORM
    -JOURNAL
    -CH.OUT-XXXXX
    -GAMME_XXXXX
    (les XXXX change selon un type de machine, -machine1, -machine2, -machine3, -autremach, -encoreuneautre, etc...)

    J'ai un macro qui m'imprime sur un dblclik les feuille CH.OUT et GAMME.

    Pour faire ceci, j'ai actuellement fait un macro qui contient tous les nom de machines et qui selon la machine choisie dans une certaine case de la feuille "FORM" va imprimer tel ou tel feuille. Bref, cela fonctionne mais c'est long, et si je rajoute un machine, je suis bon pour me remodifier mes 8000000 de classeurs.

    Donc, je cherche un moyen de pouvoir selectionner la feuille non pas par son nom complet, mais juste le debut, du style "CH.OUT-*" et "GAMME*", mais cela ne marche pas. Comment faire pour que cela fonctionne ?

    ceci est mon code actuel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            Sheets("CH.OUT-Machine1").PrintOut copies:=1, collate:=True
            Sheets("GAMME_Machine1").PrintOut copies:=1, collate:=True
    A remplacer par cela ( cet exemple ne marche pas ) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
            Sheets("CH.OUT*").PrintOut copies:=1, collate:=True
            Sheets("GAMME*").PrintOut copies:=1, collate:=True
    Merci à tous les génies de ce forum vraiment top.

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    utilise la collection worksheets de ton classeur

    pour le principe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Sub boucle()
     
     
    Dim f As Worksheet
    For Each f In ThisWorkbook.Sheets
      If f.Name Like "CH.OUT*" or f.name like "GAMME*" Then
           f.PrintOut copies:=1, collate:=True
      End If
    Next
    End Sub

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Février 2007
    Messages : 106
    Points : 55
    Points
    55
    Par défaut

    Alors là, je reste complètement sur le C...

    C'est absolument parfait et tellement simple. Ca marche à merveille, et je passe de 57 lignes de programmation à 8.

    Pourquoi faire simple quand je peux faire ultra compliqué.

    Merci beaucoup bbil

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

Discussions similaires

  1. Enregistrer une feuille sans changer le nom du classeur ouvert
    Par nounours1952 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 18/06/2014, 09h09
  2. Réponses: 5
    Dernier message: 05/01/2012, 11h59
  3. [XL-2003] Imprimer une feuille par rapport à son nom
    Par pingoui dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/03/2010, 23h00
  4. Instancier une classe sans connaitre son nom
    Par Molkobain dans le forum Langage
    Réponses: 8
    Dernier message: 16/02/2009, 14h49
  5. modifier une propriété sans connaitre son nom
    Par cyberchand dans le forum C#
    Réponses: 2
    Dernier message: 17/04/2007, 16h17

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