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éation d'une zone d'impression à dimention variable


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 71
    Par défaut création d'une zone d'impression à dimention variable
    bonjour à tous,

    le titre est un peu pompeu mais pas grave!

    voila, j'ai un tableau, et j'aimerai qu'une macro me selectionne automatiquement le tableau (qui va comporter 19 lignes aujourd'hui, et 15 demain), puis qu'elle me le désigne en tant que zone d'impression.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Range("A2").Select
        Range(Selection, Selection.End(xlDown)).Select
    ActiveSheet.PageSetup.PrintArea = "selection"
    mais malheureusement, il ne reconnait pas le "selection"

    si quelqu'un a une solution...

    merci d'avance

  2. #2
    Membre chevronné
    Inscrit en
    Décembre 2003
    Messages
    434
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 434
    Par défaut
    Salut,

    Comme ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.PageSetup.PrintArea = Selection.Address
    ++
    Minick

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 71
    Par défaut
    merci beaucoup pour ta réponse. en fait il ne me manquais que le ".adress" XD.

    par contre, j'ai entendu parler d'une optimisation du coe pour accelerrer son exécution. je vais faire des recherches, car l'exécution de cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.PageSetup.PrintArea = Selection.Address
    est un peu longue.

    sinon ca marche du feu de dieu.


    EDIT: pour les deux autres réponse, désolé mais je ne l'ai ai pas essayé car la premiere fonctionne parfaitement.
    en réponse à Fvandermulen, tu as raison, j'ai fait une erreur en tapant le code sur le forum mais il s'agissait bien de ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Range("A1:H1").Select
        Range(Selection, Selection.End(xlDown)).Select
    ActiveSheet.PageSetup.PrintArea = "selection"
    merci pour tout

  4. #4
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Re,
    Tu parles d'optimalisation, dans ce cas la proposition de Dead78 est la meilleur, il fait la même chose en une seule ligne.
    L'optimalisation s'obtient, dans ton cas, en évitant les sélections.
    Donc si je reprends son code avec les bonnes colonnes:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.PageSetup.PrintArea = ("A1:H" & Range("A65536").End(xlUp).Row)
    Bonne continuation

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 71
    Par défaut
    re,

    je viens de faire le test des deux formules.

    la premiere est plus longue a exécuter mais elle fonctionne. alors que même si la deuxième va bcp plus vite, elle ne fonctionne pas. la totalité de mon tableau n'a pas été selectionné.


    1er solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Range("A1:H1").Select
        Range(Selection, Selection.End(xlDown)).Select
    ActiveSheet.PageSetup.PrintArea = "selection.address"
    2ème solution
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveSheet.PageSetup.PrintArea = ("A1:H" & Range("A65536").End(xlUp).Row)
    ...

    en fait, apres test, aucune des deux formules ne fonctionne. j'ai ajouté des lignes, et la selection ne se fait pas. moi pas comprendre. pourtant le code semble vraiment logique...

  6. #6
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Etrange pour la solution2, je viens de tester pour être certain et ça fonctionne très bien.

  7. #7
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Salut,
    Tu parles de tableau mais tu ne te réfère qu'à la colonne A.
    Voici une manière qui te permettra d'adapter en fonction du nombre de colonnes, remplace C par ce dont tu as besoin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub DefPrintArea()
        
        MyEnd = Cells(2, 1).End(xlDown).Row
        ActiveSheet.PageSetup.PrintArea = "A2:C" & MyEnd
    
    End Sub

  8. #8
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    682
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 682
    Par défaut
    Bonjour,

    Le plus simplement possible, tu as :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Test()
     
    ActiveSheet.PageSetup.PrintArea = ("A2:D" & Range("A65536").End(xlUp).Row)
     
    End Sub
    Ici nous disons que la tableau va de la colonne A à la colonne D (ça c'est fixe) et il va de la ligne 2 (toujours fixe, la première) jusqu'à la dernière ligne remplie de la ligne A (la fin de ton tableau donc).

    EDIT : ben dis donc Fvandermeulen, on s'est croisé pour poster exactement la même chose

  9. #9
    Membre Expert Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Par défaut
    Salut DeaD78,
    T'as une ligne de moins quand même

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

Discussions similaires

  1. Determiner le nombre de ligne d'une zone d'impression variable
    Par GoFio dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/05/2014, 16h31
  2. Réponses: 7
    Dernier message: 24/04/2014, 18h05
  3. [XL-2007] Variable dans une zone d'impression
    Par mep1607 dans le forum Excel
    Réponses: 9
    Dernier message: 18/05/2012, 17h34
  4. [VBA-E] Range de la page d'une zone d'impression ?
    Par JulienCEA dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 22/05/2006, 15h39
  5. définir une zone d'impression sous Excel
    Par mirumoto dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/11/2005, 12h26

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