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 :

Importer une image depuis windows


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mars 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 15
    Points : 10
    Points
    10
    Par défaut Importer une image depuis windows
    Bonjour,

    Je sais que le sujet a été traité un nombre incalculable de fois mais rien ne semble marcher chez moi.

    J'aimerais importer une image depuis mon disque dur, en fonction d'un nom, et la coller dans un zone de mon tableau. Or les images pouvant etre verticale ou horizontale, je dois redéfinir la taille de la zone selon celle de l'image, et je ne trouve pas ..

    Merci d'avance


    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
    NomImage = Test & "\" & TypePompe & ".png"
            If FichierExiste(NomImage) Then
                Dim zone As String
                If ?? Then
                    zone = "F15:M26"
                Else
                    zone = "F11:H32"
                End If
                Dim Shp As Shape
                Set Shp = Feuil1.Shapes.AddPicture(NomImage, msoFalse, msoCTrue, _
                ActiveSheet.Range(zone).Left, _
                ActiveSheet.Range(zone).Top, _
                ActiveSheet.Range(zone).Width, _
                ActiveSheet.Range(zone).Height)
                Importer = True
            End If

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut,tu devrais voir dans la FAQ http://excel.developpez.com/faq/?page=Image

  3. #3
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mars 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    J'ai du changer mes images en .jpg au lieu de .png et ca marche !

    Merci beaucoup

    Ma fonction d'import donne donc ca :

    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
    Private Function Importer(TypePompe As String) As Boolean
        Dim Wb As Workbook
        Dim Ws As Worksheet
        Dim NomClasseur As String
        Dim NomImage As String
     
        Application.ScreenUpdating = False
        NomClasseur = Test & "\" & TypePompe & ".xlsx"
        If FichierExiste(NomClasseur) = True Then
            Set Wb = Workbooks.Open(NomClasseur, , True)
            Set Ws = Wb.Worksheets(1)
            Ws.Range("A3:D8").Copy ThisWorkbook.Worksheets(1).Range("A39")
            Wb.Close
            Application.ScreenUpdating = True
            Set Ws = Nothing
            Set Wb = Nothing
            NomImage = Test & "\" & TypePompe & ".jpg"
            If FichierExiste(NomImage) Then
                Dim iPict As IPictureDisp
                Dim zone As String
                Set iPict = LoadPicture(NomImage)
                If iPict.Width >= iPict.Height Then
                    Set iPict = Nothing
                    zone = "F15:M30"
                Else
                    ThisWorkbook.Worksheets(1).Range("F11:G13").Cut ThisWorkbook.Worksheets(1).Range("L14")
                    ThisWorkbook.Worksheets(1).Range("H11:I13").Cut ThisWorkbook.Worksheets(1).Range("L18")
                    ThisWorkbook.Worksheets(1).Range("J11:K13").Cut ThisWorkbook.Worksheets(1).Range("L22")
                    ThisWorkbook.Worksheets(1).Range("L11:M13").Cut ThisWorkbook.Worksheets(1).Range("L26")
     
                    ThisWorkbook.Worksheets(1).Range("E10:N34").Interior.ColorIndex = 2
                    zone = "F11:H32"
                End If
                Dim Shp As Shape
                Set Shp = Feuil1.Shapes.AddPicture(NomImage, msoFalse, msoCTrue, _
                ActiveSheet.Range(zone).Left, _
                ActiveSheet.Range(zone).Top, _
                ActiveSheet.Range(zone).Width, _
                ActiveSheet.Range(zone).Height)
                Importer = True
            End If
        Else
            MsgBox ("Erreur : le type de pompe ne correspond à aucun fichier.")
            Importer = False
        End If
    End Function
    Des conseils d'optimisation ?

  4. #4
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274
    Par défaut
    Salut,plutût un conseil, intéresse toi au CodeName ,pour cela voir http://www.developpez.net/forums/d92...cel/vba-bases/
    Cela présente l'avantage de ne pas avoir à toucher au code VBA si l'utilisateur déplace une feuille, la renomme ou en ajoute

  5. #5
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Mars 2011
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    Bonsoir,

    Effectivement cette "vérification" pourrait être utile

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2007] Importer une images en fonction de son nom dans l'exporateur windows
    Par Aziz_Az dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 07/06/2014, 14h12
  2. [Windows Phone 7] Socket, transfert d'une image depuis windows phone vers mon PC et vice-versa
    Par juvenalvangu dans le forum Windows Phone
    Réponses: 1
    Dernier message: 13/10/2013, 14h14
  3. Réponses: 0
    Dernier message: 19/01/2009, 21h10
  4. [C#] Récupération d'une image depuis une table SQL Server
    Par borgfabr dans le forum Accès aux données
    Réponses: 10
    Dernier message: 08/04/2004, 13h20

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