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 :

[E-07] amélioration code capture image feuille


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut [E-07] amélioration code capture image feuille
    Bonjour à tou(te)s,

    Cette nuit, j'ai concrétiser un code pour mes besoins propres, comme je l'ai enregistré en XLAM (excel 2007), je l'édite pour savoir si des améliorations peuvent être apportées,
    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 CAPTURE_FEUILLE()
    Dim mes As Range, monImage As String, Sh As Shape, m As String
    m = InputBox("NOM DE L'IMAGE", "DEFINIR UN NOM")
    If m = "" Then: Exit Sub 'si l'operation est annulée
    Set mes = Application.InputBox("Choix de cellule(s)", Type:=8)
     
        monImage = mes.Address
        Range(monImage).CopyPicture Appearance:=xlScreen, Format:=xlBitmap
        Sheets("Feuil1").Select
        ActiveSheet.Paste
      'Récupère la dernière forme de la feuille
        Set Sh = ActiveSheet.Shapes(ActiveSheet.Shapes.Count)
        'Définit le nom et le lieu de stockage de l'image
     
        monImage = "C:\Users\Dominique\Pictures\" & m & ".jpg"
     
        'Colle l'image dans un graphique
        With ActiveSheet.ChartObjects.Add(0, 0, Sh.Width, Sh.Height).Chart
            .Paste
            'Sauvegarde l'image du graphique au format jpg
            .Export monImage, "JPG"
        End With
     
        'Supprime le graphique et la forme.
        With ActiveSheet
            .ChartObjects(ActiveSheet.ChartObjects.Count).Delete
            .Shapes(ActiveSheet.Shapes.Count).Delete
        End With
     
    End Sub
    Merci d'avance
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  2. #2
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut
    Voila quelques modifs
    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
    31
    32
    33
    34
    35
    36
    37
    38
    Sub CAPTURE_FEUILLE()
    Dim mes As Range, monImage As String, Sh As Shape, m As String
    m = InputBox("NOM DE L'IMAGE", "DEFINIR UN NOM")
    If m = "" Then: Exit Sub 'si l'operation est annulée
    Set mes = Application.InputBox("Choix de cellule(s)", Type:=8)
     
        'monImage = mes.Address
        'Range(monImage).CopyPicture Appearance:=xlScreen, Format:=xlBitmap
        mes.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
        'Sheets("Feuil1").Select
        'ActiveSheet.Paste
        With Sheets("Feuil1")
            'Sheets("Feuil1").Paste
            .Paste
            'Récupère la dernière forme de la feuille
            'Set Sh = ActiveSheet..Shapes(ActiveSheet..Shapes.Count)
            Set Sh = .Shapes(.Shapes.Count)
            'Définit le nom et le lieu de stockage de l'image
            monImage = "C:\Users\Dominique\Pictures\" & m & ".jpg"
     
            'Colle l'image dans un graphique
            With .ChartObjects.Add(0, 0, Sh.Width, Sh.Height).Chart
                '.Paste
                .Chart.Paste ' pour eviter les probleme lié a l'imbrication de with, normalement ca n'est pas utili mais bon paste etant valable pour chart comme opur sheets("feuil1")
                'Sauvegarde l'image du graphique au format jpg
                '.Export monImage, "JPG"
                .Chart.Export monImage, "JPG"
            End With
     
            'Supprime le graphique et la forme.
            '.ChartObjects(ActiveSheet.ChartObjects.Count).Delete
            '.Shapes(ActiveSheet.Shapes.Count).Delete
            .ChartObjects(.ChartObjects.Count).Delete
            .Shapes(.Shapes.Count).Delete
     
        End With
     
    End Sub
    A++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Je viens de regarder, me suis rendu compte que tu l'avais bien allégé.

    Quant à la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Error = "424" Then Exit Sub
    je croyais déjà l'avoir supprimée, c'est vrai qu'elle ne servait à rien

    Merci encore
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  4. #4
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut
    Je n'ai et ne vois toujours pas pas cette ligne dans ton code , toi tu es fatigué ^^.
    a++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  5. #5
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    C'est parce que j'ai comparé avec la macro que j'avais gardé mais je n'ai pas du enregistré quand j'ai enlevé cette ligne,

    J'aurai pas du le dire, ça faisait une bétise de moins

    Mais là, j'ai fait attention à tout, remplacé par ton code et bien enregistré mon xlam.

    Merci encore
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

Discussions similaires

  1. Capturer image webcam + code QR
    Par hugo7 dans le forum VB.NET
    Réponses: 2
    Dernier message: 25/05/2011, 08h10
  2. Execution de code sur plusieurs feuilles
    Par anisr dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/12/2006, 11h12
  3. code et images sur cssplay
    Par darcy dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 15/12/2006, 09h57
  4. [excel] même code sur plusieurs feuilles
    Par sabotage dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 16/11/2005, 12h23
  5. Capture image par imprime ecran
    Par tomnie dans le forum Applications et environnements graphiques
    Réponses: 9
    Dernier message: 14/04/2004, 09h02

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