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 :

vba excel : insertion d image gif dans feuille excel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 39
    Par défaut vba excel : insertion d image gif dans feuille excel
    bonjour a tous,

    j ai ecrit une petite macro qui insere dans les cellule de mon tableau les images de mon choix apres m avoir demandé via une inputbox le nom de celle que je veux inserer:

    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
    Sub image()
     
    '
    Dim reponse As String
    reponse = InputBox("nom de l image ?")
     
    If reponse = "b2" Then
    ActiveCell.Select
        ActiveSheet.Pictures.Insert( _
            "D:\DossierA\image\b2.gif").Select
    ElseIf reponse = "b1" Then
    ActiveCell.Select
        ActiveSheet.Pictures.Insert( _
            "D:\DossierA\image\b1.gif").Select
    ElseIf reponse = "a025" Then
    ActiveCell.Select
        ActiveSheet.Pictures.Insert( _
            "D:\DossierA\image\a025.gif").Select
    ElseIf......
    Mon code est lourd et je repete autant de fois ElseIf que j ai d image.
    je ne sais pas comment integrer la variable "reponse" dans l emplacement de l image

    un truc du style:

    ActiveCell.Select
    ActiveSheet.Pictures.Insert( "D:\DossierA\image\reponse.gif").Select

    me permettrait d eviter d ecrir 36 ElseIf
    mais je sais pas comment integrer cette variable dans "le chemin de l image"

    Comment vous faites dans ce cas la ? SVP

  2. #2
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    une simple concaténation de chaine ... du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    
      ActiveSheet.Pictures.Insert("D:\DossierA\image\" & reponse  & ".gif")...
    faudrai peu-être au préalable tester l'existence du fichier gif... par un DIR...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 39
    Par défaut à la tienne bbil !
    ok merci beaucoup

    juste par curiosité est ce qu il existe une facon simple de coder que l insertion de ton image se face en plein milieu de ta cellule.

    Dans mon cas je suis pas géné parceque meme si j ai plein d image differentes je n ai que 3 format differents different qui apparaisse ds le nom de mon image :
    le nom de toutes les images au format 1 se termine par "2.gif", par "1.gif" au format 2 et "5.gif" au format 3
    donc je m en sort avec le code suivant :

    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
    Sub test()
    '
    Dim reponse As String
    reponse = InputBox("nom de l image ?")
     
    ActiveCell.Select
    ActiveSheet.Pictures.Insert( _
            "C:\DossierA\Image\" & reponse & ".gif").Select
    Dim nom As String
    nom = "C:\DossierA\Image\" & reponse & ".gif"
         If Right(nom, 5) = "1.gif" Then
            With Selection
             .ShapeRange.IncrementTop 49.5
             .ShapeRange.IncrementLeft 7.5
             End With
        ElseIf Right(nom, 5) = "2.gif" Then
            With Selection
            .ShapeRange.IncrementTop 15
            .ShapeRange.IncrementLeft 3
            End With
        ElseIf Right(nom, 5) = "5.gif" Then
            With Selection
            .ShapeRange.IncrementLeft 15
            .ShapeRange.IncrementTop 96
            End With
        End If
    End Sub
    mais si j avais eu plein de format differents j aurais eu du mal a tout centrer.

    meilleurs veux,
    chamus.

  4. #4
    Expert éminent


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Par défaut
    tiens pour centrer inspire toi de cela :

    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
     
     
    Dim c As Range
    Set c = ActiveCell
    Dim p As Picture
    Dim r As Double
    Set p = c.Parent.Pictures.Insert("dvp\a5-rap.gif")
    Debug.Print "bon maintenant il n'y as plus qu'as effectuer un petit calcul pour le centrage !!"
    Debug.Print c.Height & " x " & c.Width
    Debug.Print p.Height & " x " & p.Width
    r = (c.Width / 2) - (p.Width / 2)
    Debug.Print r
    If r > 0 Then
      p.ShapeRange.IncrementLeft r
    End If
    r = (c.Height / 2) - (p.Height / 2)
    Debug.Print r
    If r > 0 Then
      p.ShapeRange.IncrementTop r
    End If

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    39
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 39
    Par défaut
    Excellent !

    vu l etat de mes connaissances il m en faut peut etre peu,
    mais je trouve ce code génial bbil

    merci bcp

Discussions similaires

  1. Insertion d'images d'une feuille excel sur un userform
    Par damienator dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/04/2012, 22h57
  2. [E 07] archiver contenu text box vba dans feuille excel
    Par doommaster100 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/11/2008, 16h28
  3. [VBA] problème choix de cellule dans feuille excel
    Par beegees dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 01/02/2006, 10h48
  4. VBA : copier une image d'une feuille excel à une autre
    Par Equus dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 08/12/2005, 14h01
  5. (EXCEL) Effacer des images gif insérées sur une feuille ?
    Par romo3 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/08/2005, 21h31

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