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 Création commentaire avec image/Photo automatique


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Macro Création commentaire avec image/Photo automatique
    Bonjour a tous,

    Je cherche a créer automatiquement des commentaires avec incrustation dedans de photos/images.

    Ces codes me semble très intéressants, mais je suis très très limité dans ma connaissance du VBA.
    Du coup je sollicite votre aide.

    Mon classeur contient différentes feuilles nommées majoritairement en "xxx JEUX", "xxx ACC" et d'autres qui ne nous intéressent pas ici.
    Dans ces feuilles se trouve des colonnes dont la "A" correspond a un nom, et la "B" a rien, elle est la pour recevoir un commentaire avec une photo dedans.

    Je cherche donc a automatiser la création de ce commentaire avec une photo dedans.
    Je souhaite que la macro cherche le nom de la photo ou image dans un dossier précis en rapport avec le nom de la colonne "A".
    Ca, c'est le minimum, car je peux copier et modifier pour chaque feuilles, mais l'idéal serait si la macro pouvait être unique a tout le classeur, et donc chercher pour la feuille "1234 JEUX" dans le dossier image "xxxx\xxxx\1234 JEUX", et pour la feuille "5678 JEUX" Dans dossier image "xxxx\xxxx\5678 JEUX", etc.

    Important, si cette macro pouvait ne pas toucher aux cellule de la colonne "B" qui ont déjà un commentaire.

    Merci d'avance de votre aide

  2. #2
    Rédacteur/Modérateur

    Bonjour,

    pour commencer, es-tu capable de faire ce que tu demandes sans macro ?

    Si oui, alors c'est très simple, tu peux passer par l'enregistreur de macros pour voir le code qui sera généré, et il faudra l'adapter ensuite
    Cycle de vie d'un bon programme :
    1/ ca fonctionne 2/ ca s'optimise 3/ ca se refactorise

    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016 et Access 2019

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre éprouvé
    Bonjour à tous,

    Excel n'est pas le meilleur outil pour l'intégration d'images. Celles-ci ne peuvent en effet pas être intégrées aux cellules, et il faut donc en permanence vérifier qu'elles ne se décalent pas par rapport au texte.
    L'utilisation d'un tableau Word pourrait être plus adaptée au besoin exprimé.

    Cdt

  4. #4
    Candidat au Club
    Bonjour,

    Merci de vos réponses.

    L’intégration d'images ne dois pas se faire dans une cellule, mais dans un commentaire.

    Je peu le faire sans macro, mais cela demande un temps fou pour une photo, alors des centaines...

    Je fais :

    -clique droit sur la cellule cible, insérer commentaire, clique droit sur le bord du commentaire, format commentaire, couleur et trait, motif et texture, image, sélectionner image, Choisir l'image, ok, et enfin encore ok.

    Ca fait long, très long, pour plusieurs centaines... c'est pour ça que je cherche une macro.

    J'avais commencé avec une macro qui ce créait toute seul en notant dans la cellule un"code" en l’occurrence "com", mais je ne parviens pas a faire en sorte que la macro intègre automatiquement l'image.
    J'ai aussi récupéré une macro pour intégrer une image dans le commentaire, mais, comme je le disais, mes connaissances VBA Macro, sont très très limitées, je suis plutôt sur une méthode empirique, je "bidouille" des Macro que je trouve pour les adapter, mais la c'est vraiment trop complexe pour moi.

    Jean-Philippe André : Je n'ai pas bien compris, si je fait une création de commentaire avec intégration d'image, je dois pouvoir avoir un code macro quelque part?

    Je viens d'essayer l'enregistrement, mais excel m'indique que l'enregistrement ne peu pas se faire...

  5. #5
    Candidat au Club
    Citation Envoyé par Ben_L Voir le message
    Bonjour à tous,

    Excel n'est pas le meilleur outil pour l'intégration d'images. Celles-ci ne peuvent en effet pas être intégrées aux cellules, et il faut donc en permanence vérifier qu'elles ne se décalent pas par rapport au texte.
    L'utilisation d'un tableau Word pourrait être plus adaptée au besoin exprimé.

    Cdt
    Je sais bien, mais c'est un classeur excel qui existe depuis des années, et ces photos, servent a avoir le visuel d'un produit quand on passe la sourie dessus, pour ce repérer rapidement et facilement.

    J'avais pensé a Acces, mais je ne le connais pas du tout,et, j'avoue n'être franchement pas emballé dans l'idée de tout refaire, ce classeur est un "logiciel" de gestion de collection, d'ou les photos dans excel et non dans Word.

  6. #6
    Membre éprouvé
    Bonjour,

    Merci pour vos explications, je comprends mieux le besoin.
    Essayez d'utiliser la procédure suivante :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub ImgInComment(Rng As Range, ImgPath As String)
        Rng.AddComment
        With Rng.Comment
            .Text Text:=""
            .Shape.Fill.UserPicture ImgPath
        End With
    End Sub

    Cette fonctionnalité fait partie de celles pour lesquelles l'enregistreur de macros est inopérant...

    Cdt

  7. #7
    Candidat au Club
    Bonjour,

    Merci pour votre réponse,

    Pouvez m'expliquer ce que je dois faire de ce code?

    Car quand je le copie dans Module 4 ou sur une feuille je n'ai pas la possibilité d’exécuter le code.

    D'habitude, je fais : exécuter sub/userform, et je vois la macro dans la liste et je peux la faire fonctionner, mais la elle n’apparaît pas.
    Comme je vous le disais, je suis loin de connaitre le VBA, du coup je tâtonne pour modifier les codes que je trouve.

    Voici un code que j'avais fais pour créer automatiquement (ou presque) un commentaire :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Value = "Com" Then
        com = InputBox("Commentaire accompagnant la cellule:")
        Target.AddComment
        Target.Comment.Text Text:=com
    End If
    End Sub


    En gros je demande a VBA de créer un commentaire dans la cellule de la feuille quand celle ci a comme texte "Com", c'est pas mal déjà pour moi mais je ne sais pas comment lui demander d'ajouter une image en allant la chercher lui même dans le dossier correspondant a la feuille par rapport au nom de la cellule de la colonne "A".

    Je joint une des feuilles du classeur, peut être cela aidera a comprendre un peu plus facilement.


  8. #8
    Membre éprouvé
    Bonjour,

    La procédure que je vous ai transmise n'est exécutable directement avec F5 (équivalent de "exécuter sub/userform") car elle prend des arguments (que vous ne pouvez pas fournir si vous lancer directement la procédure).
    Pour ajouter un commentaire avec image dans la cellule A1 de la première feuille du classeur, utilisez :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub ImgInA1()
        With ThisWorkbook.Sheets(1).Cells(1, 1)
            .AddComment
            With .Comment
                .Text Text:=""
                .Shape.Fill.UserPicture "C:\Chemin\Vers\Mon\Image.jpg"
            End With
        End With
    End Sub

    Adapté à votre code, cela pourrait donner quelque chose comme :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Value = "Com" Then
        com = InputBox("Commentaire accompagnant la cellule:")
        Target.AddComment
        Target.Comment.Text Text:=com
        Target.Comment.Shape.Fill.UserPicture "C:\Racine\" & Target.Offset(0, 1 - Target.Column).Text & "\Image.jpg"
    End If
    End Sub

    Ce code suppose que la colonne A contient des noms de sous-dossiers, tous situés dans le répertoire "C:\Racine\", et que dans chaque sous-dossier se trouve une image nommée "Image.jpg".
    J'imagine que cela ne décrit pas exactement votre situation : il vous faudra adapter.

    Probablement plus problématique : le texte du commentaire va se trouver au dessus de l'image, qui sera elle-même étirée aux dimensions de la fenêtre de commentaire.
    Et je ne sais pour l'instant pas comment forcer Excel à conserver les proportions de l'image via VBA.

    Mais essayez déjà d'intégrer une image à un commentaire programmatiquement. La mise en forme pourra se faire dans un deuxième temps.

    Cdt

###raw>template_hook.ano_emploi###