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 :

Macro pour Impression conditionnelle sur une autre feuille [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Janvier 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Macro pour Impression conditionnelle sur une autre feuille
    Bonjour à toutes et à tous et

    Je butte actuellement sur un problème de macro VBA qui me permettrait, au travers d'un bouton placé sur une feuille et d'une valeur dans une cellule donnée, de lancer l'impression d'une zone définie sur une autre feuille en fonction de la valeur dans la cellule en question.
    C'est vrai que je ne suis pas un PRO du VBA et je n'ai pas réussi à adapter les nombreuses macros approchantes que j'ai déjà pu consulter.

    Sur l'exemple, dont je vous en joins le fichier, selon que la cellule H6 de la feuille "Développement" vaut 1, 2, 3, 4 ou 5, je souhaiterais faire imprimer les plages A1:J28, A1:J39, A1:J50, A1:J61 ou A1:J72 de la feuille "Imprime".

    Une autre difficulté, qui n'a rien à voir avec la première et qui ne me semble pas réalisable simplement, est de pouvoir modifier la police de caractère des boites de sélection. Je n'ai trouvé aucune sélection de police de caractère possible dans les box des zones de liste utilisées. Peut être faut il utiliser d'autres objets de sélection ...

    Merci d'avance pour l'aide que vous pourrez m'apporter dans la programmation de ce fichier qui me simplifierait grandement mon activité.
    Cordialement,
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Pour réaliser une action sur une autre feuille, il suffit de préciser Worksheets("XXX") (XXX etant le nom de l'onglet cible) en parent de la méthode ou de la propriété utilisée.

    Pour définir une zone d'impression, il faut utiliser la propriété PageSetup.PrintArea de ton objet Worksheet.

    Pour lancer une impression, il faut utiliser la méthode PrintOut de ton objet Worksheet.

    Regarde ces termes dans l'aide VBA intégrée à Excel.

    Qu'est-ce que tu appelles une "boite de sélection" ?

  3. #3
    Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Janvier 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Bonjour Menhir et merci de prendre un peu de ton temps pour plancher sur mon PB.

    J'appelle une boite de sélection, les formats de contrôles qui permettent d'afficher une liste déroulante. Je t'ai mis une photo en PJ pour préciser la chose !
    Je n'arrive pas à augmenter la taille de la police de caractères même si je change la police dans la zone où le format de contrôle fait référence. Sur la photo, c'est l'objet dans lequel il y a marqué "Albatre".

    Pour ta réponse quant à l'impression, je vais essayer de construire une macro, mais je ne suis pas un spécialiste de la chose ; je fais souvent du copier/coller et j'adapte à mon besoin ...


    A bientôt,
    Fichiers attachés Fichiers attachés

  4. #4
    Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Janvier 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Re bonjour,

    Après avoir envoyé mon précédent commentaire, j'ai pensé à une autre solution ... qui me parait simple mais peut être aussi même "Géniale", malheureusement pas encore testée (:!!!
    En utilisant la mise en forme conditionnelle des cellules qui ne doivent pas être imprimées en fonction de la valeur de la cellule de référence (H6), je paramètre donc les cellules de la page "Imprime" pour les mettre en écriture blanche sur fond blanc.
    Je reste pour autant intéressé par la solution VBA, juste pour l'élégance de la programmation et aussi parce que je ne sais pas si ma solution fonctionnera ...

    Je vous tiendrais bien entendu informé de la suite,
    Cordialement,

  5. #5
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par titi08 Voir le message
    J'appelle une boite de sélection, les formats de contrôles qui permettent d'afficher une liste déroulante. Je t'ai mis une photo en PJ pour préciser la chose !
    Je n'arrive pas à augmenter la taille de la police de caractères même si je change la police dans la zone où le format de contrôle fait référence.
    A ta place, j'utiliserai plutôt une liste déroulante faite avec une validation de données.
    Ruban Données > Icone Validation de données > Validation de données > Autoriser = Liste
    Même si ça ne résout pas ton problème, tu as au moins l'affichage du résultat dans le format que tu souhaites (et c'est plus simple à gérer).

    Citation Envoyé par titi08 Voir le message
    je paramètre donc les cellules de la page "Imprime" pour les mettre en écriture blanche sur fond blanc.
    Attention. Certaines imprimantes noir et blanc convertissent toutes les couleurs en noir pour éviter les problèmes de gris trop clairs (par exemple quand on imprime du jaune).

  6. #6
    Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Janvier 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut
    Re Bonjour,

    Solution "Géniale" de mise en forme conditionnelle testée ... et là c'est moins génial parce que la mise en forme conditionnelle n'est possible que sur une même feuille ! Ou pas, mais alors dites moi comment ???

    Pour ce qui est des listes, je vais bien sûr adopter la méthode à Menhir qui est effectivement beaucoup plus simple que ce que j'avais mis en place !
    MERCI beaucoup Menhir.

  7. #7
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par titi08 Voir le message
    la mise en forme conditionnelle n'est possible que sur une même feuille ! Ou pas, mais alors dites moi comment ???
    Comme pour toute autre formule : en mettant devant la référence le nom de l'onglet suivit d'un point d'exclamation.

  8. #8
    Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Janvier 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Problème résolu
    Non, mettre le nom de la feuille devant et le ! ne fonctionne pas _ mais, ça n'empêche pas de renvoyer la valeur de la cellule de l'autre feuille vers la feuille d'impression !
    Merci Menhir pour votre contribution à la construction de mon fichier.
    Je vais travailler avec tout ça maintenant pour faire la macro qui va bien.

    Mon problème est résolu ou presque !

    A bientôt

  9. #9
    Candidat au Club
    Homme Profil pro
    retraité
    Inscrit en
    Janvier 2015
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : retraité

    Informations forums :
    Inscription : Janvier 2015
    Messages : 6
    Points : 2
    Points
    2
    Par défaut Solution VBA
    Bonjour à tous,

    Voilà, j'ai écrit un code qui fait à peu près ce que je voulais faire. Ce n'est certainement pas très pro comme programmation, mais ça marche!
    Merci encore Menhir pour tes contributions et l'aide à ma réflexion personnelle !
    Bye
    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
    Sub ImprimSitu()
    ThisWorkbook.Worksheets("Imprim").Activate
     
    If Range("D7") = 2 Then
    ActiveSheet.PageSetup.PrintArea = "$A$1:$J$39"
    End If
    If Range("D7") = 3 Then
    ActiveSheet.PageSetup.PrintArea = "$A$1:$J$50"
    End If
    If Range("D7") = 4 Then
    ActiveSheet.PageSetup.PrintArea = "$A$1:$J$61"
    End If
    If Range("D7") = 5 Then
    ActiveSheet.PageSetup.PrintArea = "$A$1:$J$72"
    End If
     
    With ActiveSheet.PageSetup
    .CenterHorizontally = True
    .Orientation = xlPortrait
    .FitToPagesWide = 1
    .FitToPagesTall = 1
    End With
     
    ActiveSheet.PrintOut
    ThisWorkbook.Worksheets("Developpement").Activate
    End Sub

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

Discussions similaires

  1. Mise en forme conditionnelle sur une autre feuille
    Par Adamas2008 dans le forum Excel
    Réponses: 4
    Dernier message: 05/06/2015, 14h10
  2. Macro pour se déplacer sur une feuille excel
    Par arkorrigan dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/03/2010, 20h41
  3. [XL-2003] Macro copier sur une autre feuille
    Par 63renaud dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 21/06/2009, 04h27
  4. Afficher nombre de lignes d'une table située sur une autre feuille
    Par nemone dans le forum Macros et VBA Excel
    Réponses: 16
    Dernier message: 08/12/2006, 16h28
  5. Copie d'une colonne de cellules sur une autre feuille
    Par maxou59 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 04/12/2006, 10h06

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