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 :

Insertion image dans un fichier


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 59
    Points : 24
    Points
    24
    Par défaut Insertion image dans un fichier
    bonjour tout le monde,
    je cherche depuis un moment comment faire pour insérer dans un fichier excel une image à partir d'un répertoire donné
    j'ai essayé d'adapter ce code que j'ai trouvé sur le net mais le seul prob c'est que je n'est pas le bon répertoire directement à l'ouverture
    comment faire pour préciser le répertoire ou ce trouve les images

    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("B25:J38")
     
            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
    merci d'avance pour votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par SOTUMA Voir le message
    Bonjour,

    Un exemple de chargement de photos ici : chargement-automatique-photos

  3. #3
    Membre à l'essai
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2016
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 59
    Points : 24
    Points
    24
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Bonjour,

    Un exemple de chargement de photos ici : chargement-automatique-photos
    merci pour le lien mais ce n'est pas ce que je cherche
    ce que je cherche c'est plus simple je cherche a insérer une seule image
    le code que j'ai posté ouvre un répertoire image autre que le répertoire de travail comment modifier le code pour qu'il ouvre un répertoire donné
    tout mon prob vient de cette instruction
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.Dialogs(xlDialogInsertPicture).Show
    elle ouvre un repertoire par defaut comment faire pour rendre mon répertoire de travail en tant que répertoire par défaut
    merci pour votre aide

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par SOTUMA Voir le message
    A tester : Nécessite la référence Microsoft Windows Image Acquisition Library
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    Option Explicit
     
    ' Nécessite la référence Microsoft Windows Image Acquisition Library
     
    Sub RecupererLImage(ByVal FeuilleEnCours As Worksheet, ByVal CelluleImage As Range, ByVal Repertoire As String)
     
    Dim LargeurImage As Single, HauteurImage As Single
    Dim Img As WIA.ImageFile
     
    Dim MonImage As Shape
    Dim MonFichier As Variant
     
        With FeuilleEnCours
     
             ChDir Repertoire
     
             MonFichier = Application.GetOpenFilename("Fichiers Image (*.jpg;*.gif;*.png;*.tif;*.bmp),*.jpg;*.gif;*.png;*.tif;*.bmp")
             If MonFichier = False Then Exit Sub
     
              For Each MonImage In .Shapes
                 Select Case MonImage.Name
                        Case "Cible"
                             .Shapes("Cible").Delete
                 End Select
             Next MonImage
     
             Set Img = CreateObject("WIA.ImageFile")
             Img.LoadFile MonFichier
             If Img.Width > Img.Height Then
                LargeurImage = 319 ' A adapter
                HauteurImage = LargeurImage / Img.Width * Img.Height
             Else
                LargeurImage = 212 ' A adapter
                HauteurImage = LargeurImage / Img.Width * Img.Height
             End If
             Set Img = Nothing
     
             Set MonImage = .Shapes.AddShape(msoShapeRectangle, CelluleImage.Left, CelluleImage.Top, LargeurImage, HauteurImage)
             With MonImage
                  .Name = "Cible"
                  With .Fill
                       .Visible = msoTrue
                       .UserPicture MonFichier
                       .TextureTile = msoFalse
                       .ForeColor.ObjectThemeColor = msoThemeColorText1
                  End With
                  With .Line
                       .Visible = msoTrue
                       .Weight = 1
                  End With
              End With
     
         End With
     
    End Sub
     
    Sub TestRecupererLesImages()
     
            With ActiveSheet
                 RecupererLImage ActiveSheet, .Range("B25"), .Range("RepertoireImage")
            End With
     
    End Sub

Discussions similaires

  1. [PrestaShop] insertion image dans l'accueil par le fichier header.tpl
    Par freakss dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 17/02/2015, 18h27
  2. Réponses: 5
    Dernier message: 18/11/2013, 15h20
  3. Récupérer la taille d'une image dans un fichier (GIF/JPEG)
    Par SheikYerbouti dans le forum Multimédia
    Réponses: 4
    Dernier message: 12/05/2005, 14h17
  4. [Stockage] Image dans un fichier XML
    Par ovh dans le forum XML/XSL et SOAP
    Réponses: 4
    Dernier message: 30/04/2003, 16h21

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