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 :

Imprimer toutes les options d'une combo box


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Analyste en Intelligence de Marchés
    Inscrit en
    Octobre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste en Intelligence de Marchés
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 6
    Par défaut Imprimer toutes les options d'une combo box
    Bonjour,

    Je souhaiterais développer une macro me permettant d'imprimer toutes les options d'une combo box.

    J'ai un tableau de bord qui se met à jour en fonction de ma sélection dans la combo box.

    Pensez vous qu'il est possible d'imprimer ce tableau de bord avec chacune des options de la combo box?

    Imprimer sélection 1, puis sélection 2, et ainsi de suite...

    Je suis plutôt débutant sur VBA mais je serai très attentif à vos réponses

    Merci

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Est-ce que la combobox se trouve sur un userform ou sur une feuille ?

  3. #3
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut





    Attention, voir ici ‼


  4. #4
    Membre à l'essai
    Homme Profil pro
    Analyste en Intelligence de Marchés
    Inscrit en
    Octobre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste en Intelligence de Marchés
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 6
    Par défaut
    Ma combo box est un bouton que l'on peut déplacer, ce n'est pas une liste implémentée dans une cellule via Data Validation

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    C'est pas bien de cross-poster. Ceci dit, une combobox n'est pas un bouton.

  6. #6
    Membre à l'essai
    Homme Profil pro
    Analyste en Intelligence de Marchés
    Inscrit en
    Octobre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste en Intelligence de Marchés
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 6
    Par défaut
    Toutes mes excuses dans ce cas, je pensais m'adresser à deux communautés différentes via deux forums différents

    Daniel, je dirais alors que c'est un "Form control". Mais ai-je répondu à votre 1ère interrogation?

    Merci de votre aide

  7. #7
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Toutes mes excuses dans ce cas, je pensais m'adresser à deux communautés différentes via deux forums différents
    C'est bien ce qu'on te reproche.

    Adapte cette macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
        Dim Plage As Range, C As Range
        With ActiveSheet.Shapes("Drop Down 2")   '*** nom à modifier
            Set Plage = Range(.ControlFormat.ListFillRange)
            For i = 1 To Plage.Count
                .ControlFormat.Value = i
                '*****ici, ton impression
            Next i
        End With
    End Sub

  8. #8
    Membre à l'essai
    Homme Profil pro
    Analyste en Intelligence de Marchés
    Inscrit en
    Octobre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste en Intelligence de Marchés
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 6
    Par défaut
    Merci Daniel,

    Voici donc ma macro :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub MacroPrint()
    Dim Plage As Range, C As Range
        With ActiveSheet.Shapes("Drop Down 187")
            Set Plage = Range(.ControlFormat.ListFillRange)
            For i = 1 To Plage.Count
                .ControlFormat.Value = i
                Range("A30:Q69").Select
                Selection.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
            Next i
        End With
    End Sub
    Elle résulte en Run-time error 1004 : application defined or object-defined error

    Comme tu peux le voir, je cherche à imprimer une plage spécifique.
    Aussi, je travaille sur deux feuilles distinctes :
    une base qui alimente ma combobox (sheet "DATABASE")
    une feuille où j'ai mon tableau de bord et ma combobox ("Sales Analysis")

  9. #9
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Essaie comme ça. Si tu as une erreur, dis sur quelle ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub MacroPrint()
    Dim Plage As Range, C As Range
        With Sheets("Sales Analysis").Shapes("Drop Down 187")
            Set Plage = Sheets("DATABASE").Range(.ControlFormat.ListFillRange)
            For i = 1 To Plage.Count
                .ControlFormat.Value = i
                .Range("A30:Q69").PrintOut Copies:=1, Collate:=True
            Next i
        End With
    End Sub

  10. #10
    Membre à l'essai
    Homme Profil pro
    Analyste en Intelligence de Marchés
    Inscrit en
    Octobre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste en Intelligence de Marchés
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 6
    Par défaut
    J'ai une erreur sur cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Range("A30:Q69").PrintOut Copies:=1, Collate:=True
    Object doesnt support this property or method" (error 438)

  11. #11
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Au temps pour moi; mets à la place :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sheets("Sales Analysis").Range("A30:Q69").PrintOut Copies:=1, Collate:=True

  12. #12
    Membre à l'essai
    Homme Profil pro
    Analyste en Intelligence de Marchés
    Inscrit en
    Octobre 2014
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Analyste en Intelligence de Marchés
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Octobre 2014
    Messages : 6
    Par défaut
    Super, cela fonctionne.

    Penses-tu qu'il est possible de créer une légère pause suite au changement d'options? J'ai une macro (SortData) qui s'active suite à une sélection dans la combobox donc je souhaiterais laisser le temps à la macro de s'enclencher avant de lancer l'impression.

  13. #13
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Essaie comme ça. La ligne :
    doit être en tête du module.

    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
    Public Var As Boolean
    Sub MacroPrint()
    Dim Plage As Range, C As Range
        With Sheets("Sales Analysis").Shapes("Drop Down 187")
            Set Plage = Sheets("DATABASE").Range(.ControlFormat.ListFillRange)
            For i = 1 To Plage.Count
                .ControlFormat.Value = i
                Application.OnTime Now + TimeValue("0:00:5"), "FaireUnePause"
                Var = False
                Do Until Var = True
                    DoEvents
                Loop
            Next i
        End With
    End Sub
    Sub FaireUnePause()
        DoEvents
        Sheets("Sales Analysis").Range("A30:Q69").PrintOut Copies:=1, Collate:=True
        Var = True
    End Sub

Discussions similaires

  1. [AC-2007] Récupérer les valeurs d'une combo box multiple
    Par Korleone dans le forum IHM
    Réponses: 7
    Dernier message: 04/01/2015, 01h10
  2. Réponses: 1
    Dernier message: 07/06/2011, 11h43
  3. Réponses: 14
    Dernier message: 01/07/2009, 13h49
  4. Réponses: 3
    Dernier message: 28/04/2009, 00h42
  5. Imprimer toutes les colonnes sur une même feuille
    Par Soulghard dans le forum Access
    Réponses: 1
    Dernier message: 02/02/2006, 12h10

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