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 capture et insertion Image


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2017
    Messages : 30
    Par défaut Macro capture et insertion Image
    Bonjour à tous,

    Je dispose d'une macro qui permet d'insérer des images dans Excel. Ces images sont importées dans une plage de cellules définit dans le code.

    Lorsque je lance la macro, une fenêtre permettant de choisir l'image à importer s'ouvre.
    Une fois l'image sélectionnée, celle-ci est redimensionnée et se place automatiquement dans la plage de cellule définit dans le code.

    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
    Sub InsertionImage()
        Dim Emplacement As Range
        Dim Img As Object
        Dim ShapeObj As Shape
     
        'Boucle pour supprimer l'ancienne image
        For Each ShapeObj In ActiveSheet.Shapes
            If ShapeObj.Name = "Cible" Then ActiveSheet.Shapes("Cible").Delete
        Next ShapeObj
     
        If Application.Dialogs(xlDialogInsertPicture).Show Then
            'Définit l'emplacement de l'image
            Set Emplacement = Range("B3:H20")
     
            Set Img = ActiveSheet.DrawingObjects(ActiveSheet.Shapes.Count)
     
            With Img.ShapeRange
                'Nommer l'image insérée (Pour la supprimer plus facilement ensuite)
                .Name = "Cible"
                .LockAspectRatio = msoFalse
                .Left = Emplacement.Left
                .Top = Emplacement.Top
                .Height = Emplacement.Height
                .Width = Emplacement.Width
            End With
     
        Else
            MsgBox "Insertion d'image interrompue."
        End If
     
    End Sub
    J'ai plusieurs dossiers à traiter par jour avec des images différentes pour chacun d'entre eux. Je suis donc obligé de faire des captures d'écran à plusieurs reprises et de sauvegarder ces captures dans des dossiers précis pour éviter de les confondre avec d'autres.

    Je voudrais donc savoir s'il était possible de créer une macro qui permettrait de faire directement une capture de l'image désirée et qui l'insérerait (tout en la redimensionnant) dans la plage de cellules voulue plutôt que d'ouvrir une fenêtre pour choisir l'image à insérer. Cela m'éviterait d'avoir des dossiers remplis de captures d'écran et me permettrait de gagner en temps.

    Je vous remercie d'avance pour votre aide !

  2. #2
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 548
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 548
    Par défaut
    Bonjour

    Des captures de quoi ? Si c'est dans Excel, on doit pouvoir le faire sans passer par des fichiers...

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2017
    Messages : 30
    Par défaut
    Bonjour Chris,

    Je voudrais faire des captures d'écran sur différents fichiers. Çà peut être des fichiers pdf, png, jpg, d'une page internet ou autres.

    Le but est d'obtenir les informations voulues sous forme d'image et de pouvoir les insérer sur une plage de cellule définit sur Excel.

  4. #4
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    Bonjour,

    Il y a différentes façons d'y arriver certaines très complexes.

    Mais je vois pas trop l’intérêt de la macro dans ce cas ? à part le fait de se placer au bon endroit

    Tu peux utiliser l'outil "Capture" / "Capture d'écran" dans EXCEL 2010 c'est dans le menu Insertion

    en macro tu peux le lancer comme cela , mais cela ne stop pas la macro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Macro1()
    '
    ' Macro1 Macro
    '
    MsgBox "Avant"
    Application.CommandBars.ExecuteMso ("ScreenClipping")
    MsgBox "Apres"
    '
    End Sub
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2017
    Messages : 30
    Par défaut
    Bonjour Oliv-,

    Merci pour ta réponse.

    Effectivement, j'ai oublié de préciser que j'avais besoin que l'image soit redimensionnée et placée dans la bonne plage de cellules sur Excel comme le fait la macro que j'ai posté car ensuite j'utilise un collage spécial avec liaison sur un fichier Word afin que celui-ci soit automatiquement mis à jour.

    J'effectue la manipulation suivante :

    - je sélectionne la plage de cellule dans excel et je clique sur copier
    - dans Word, je me place là où je veux insérer l'image et je clique sur "collage spécial, coller avec liaison, image en mode point".

  6. #6
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  7. #7
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2017
    Messages : 30
    Par défaut
    Merci Oliv-, la macro fonctionne cependant :

    - Lorsqu'on lance la macro à plusieurs reprises, plutôt que de remplacer l'image actuelle, c'est un nouveau fichier excel qui est ouvert avec la nouvelle capture d'écran dessus.

    - Pourrait-on ajouter un curseur pour sélectionner la zone à capturer ?

    - La macro insère l'image dans la "feuille 1" du classeur excel, comment faire si on veut que l'image soit insérée dans la "feuille 2" ou "feuille 3" du classeur ? J'ai tenté une petite modification sans succès (voir pj).

    Nom : sheets 1.PNG
Affichages : 2649
Taille : 5,9 KoNom : sheets 2.PNG
Affichages : 2676
Taille : 6,1 Ko



    J'ai essayé de comprendre d'où ça pouvait venir et de le résoudre mais je suis vraiment débutant en VBA

  8. #8
    Expert confirmé
    Avatar de Oliv-
    Homme Profil pro
    solution provider
    Inscrit en
    Mars 2006
    Messages
    4 093
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : solution provider

    Informations forums :
    Inscription : Mars 2006
    Messages : 4 093
    Billets dans le blog
    20
    Par défaut
    Bonjour,
    Il va falloir étudier les bases du VBA Excel, tu trouvera tout ce qu'il faut dans la faq et les tuto.

    tu peux au lieu d'utiliser l'indice de la feuille utiliser son nom

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Wsdest=Wbdest.Worksheets("Feuil2")
    Have a nice day. Oliv'
    Votre réponse est peut être dans mon blog !
    https://www.developpez.net/forums/blogs/191381-oliv-/

  9. #9
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2017
    Messages : 30
    Par défaut
    Merci, je vais voir ça !

Discussions similaires

  1. [PPT-2010] Macro Insertion Image depuis Excel
    Par fidecourt dans le forum VBA PowerPoint
    Réponses: 4
    Dernier message: 18/01/2011, 18h08
  2. Macro d'insertion image à un endroit précis
    Par petit1986 dans le forum VBA Word
    Réponses: 1
    Dernier message: 04/09/2010, 00h35
  3. insertion image avec macro sans doublon lors de la réexécution
    Par picogunsy dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 08/07/2010, 15h24
  4. insertion image avec une macro pour word
    Par bricoleur76 dans le forum VBA Word
    Réponses: 3
    Dernier message: 12/03/2009, 22h14
  5. [VBA-E] Macro Insertion image
    Par dafalri dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/05/2006, 17h20

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