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 :

Set rng = page de mise en page [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 20
    Par défaut Set rng = page de mise en page
    Bonjour à tous,
    pour une besoin pro j'ai récupérer la marco suivante de Philippe PONS,
    ma question :
    est il possible de faire correspondre "set rng" a mes différente page d'une feuille excel ?

    Car sur une même feuille j'ai 6 pages différentes dont la taille peux varier mais pas la mise en page.

    je suis conscient qu'il y à beaucoup de fois pages dans cette page ...

    Merci de votre aide précieuse

    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
    Sub exportRange()
        Dim sh As Worksheet
        Dim rng As Range
        Dim chartobj As ChartObject
     
        Dim output As String
        Dim zoom_coef As Double
        ' référence sur la feuille qui contient la plage à exporter
        Set sh = Worksheets("Données sources")
        ' le fichier image
        output = "c:\test\SavedRange4.jpg"
        ' el zoom
        zoom_coef = 100 / sh.Parent.Windows(1).Zoom
        ' sélectionner la plage à exporter
        Set rng = sh.Range("A1").CurrentRegion
        ' copier dans le presse-papier
        rng.CopyPicture xlPrinter
     
        Set chartobj = sh.ChartObjects.Add(0, 0, rng.Width * zoom_coef, rng.Height * zoom_coef)
        chartobj.Chart.Paste
        ' exporter l'image
        chartobj.Chart.Export output, "JPG"
        ' supprimer
        chartobj.Delete
    End Sub

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour Gwilym (P... ! que c'est dur à écrire...), bonjour le forum,

    Sans connaître l'adresse de début des 6 plages, difficile de t'aider... Tes 6 plages sont elles bien séparées les une des autres par au moins une ligne vide ?

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 20
    Par défaut
    Plus que Thautheme -< j'ai du le copier/coller ?

    oui au moins une ligne vide entre chaque

    après je pourrais rentré les range de chaque plage mais elle peuvent être amené à changer

    pour exemple

    page 1 : A1:K9
    Page 2 : A10:K21
    page 3 : A22:K35 ou 36...

  4. #4
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Re,

    Citation Envoyé par Gwilym Voir le message
    Plus que Thautheme -< j'ai du le copier/coller ?
    C'est pas faux !... Mort de rire...

    Et à défaut du fichier qui va bien, une ou quelques captures d'écran seraient les bienvenues...

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2017
    Messages : 20
    Par défaut
    Voila un exemple page 1 et page 2

    Nom : xl.JPG
Affichages : 670
Taille : 84,4 Ko

  6. #6
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Re,

    Essaie comme ça :

    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
    27
    28
    29
    30
    Sub exportRange()
        Dim sh As Worksheet
        Dim rng As Range
        Dim chartobj As ChartObject
        Dim output As String
        Dim zoom_coef As Double
     
        ' référence sur la feuille qui contient la plage à exporter
        Set sh = Worksheets("Données sources")
        ' le fichier image
        output = "c:\test\SavedRange4.jpg"
        ' el zoom
        zoom_coef = 100 / sh.Parent.Windows(1).Zoom
        ' sélectionner la plage à exporter
        Set rng = sh.Range("A1").CurrentRegion
        ' copier dans le presse-papier
        rng.CopyPicture xlPrinter
     
        Set chartobj = sh.ChartObjects.Add(0, 0, rng.Width * zoom_coef, rng.Height * zoom_coef)
        chartobj.Chart.Paste
        ' exporter l'image
        chartobj.Chart.Export output, "JPG"
        ' supprimer
        chartobj.Delete
     
    For i = 1 To ActiveSheet.HPageBreaks.Count
        Set rng = Range(ActiveSheet.HPageBreaks(i).Location.Address).CurrentRegion
        'le code
    Next i
    End Sub

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

Discussions similaires

  1. [XL-2003] impression (mise en page) et agrafage des pages suite à macro
    Par bartsho dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 15/12/2011, 11h14
  2. Mise en page et affichage multi-pages
    Par tyler94 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 50
    Dernier message: 14/05/2009, 17h35
  3. Mise en page d'une seule page
    Par Antale dans le forum Mise en forme
    Réponses: 8
    Dernier message: 01/04/2009, 12h46
  4. Mise en page de la première page
    Par frizou11 dans le forum Mise en forme
    Réponses: 3
    Dernier message: 25/09/2007, 16h34
  5. largeur de la page web - mise en page sans scroll
    Par Pepito dans le forum Webdesign & Ergonomie
    Réponses: 5
    Dernier message: 24/07/2005, 01h27

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