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 dans un userform [Toutes versions]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2012
    Messages : 25
    Points : 30
    Points
    30
    Par défaut Importer une image dans un userform
    Bonjour,

    N'étant pas experte en VBA, je me suis inspirée de codes existants trouvés dans des forums pour écrire le code suivant.

    Description du fichier :

    L'utilisateur entre des données dans un userform. Celui-ci envoi les données dans un onglet "Données 2". A partir de cette base de donnée, 4 tableaux croisés dynamiques sont générés. Sur ces 4 tableaux, trois sont transformés en graphiques. Ces graphiques doivent ensuite apparaître dans le userform. Pour celà, un emplacement est réservé pour chacun d'autre eux : Image1 à Image3.


    Démarche :

    Après avoir cherché sur Internet, j'ai trouvé le code ci-dessous que j'ai un peu modifié. Celui-ci a très bien fonctionné quelques temps et maintenant il me donne le code erreur 481 "Image incorrect". Pourquoi???

    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
    Option Explicit
     
    Const Fichier As String = "C:\ImageTemp.gif"
    _________________________________________________________________
     
    Private Sub UserForm_Initialize()
     
    'Gestion des images de graphiques
    Dim graph As Integer
    For graph = 2 To 4
     
        'Supprime l'image temporaire si elle existe
        If Dir(Fichier) <> "" Then Kill Fichier
     
        'Définit le graphique dans l'onglet "RowSource" et exporte le graphique au format image
        With Worksheets("RowSource").ChartObjects(graph)
            .Height = 138 'assure la bonne hauteur
            .Width = 210 'assure la bonne largeur
            .Chart.Export Filename:=Fichier, filtername:="GIF" 'exporte le graphique
        End With
     
        'Affiche l'image dans le UserForm
        If graph = 2 Then
        Me.Image1.Picture = LoadPicture(Fichier)
        ElseIf graph = 3 Then
        Me.Image2.Picture = LoadPicture(Fichier)
        ElseIf graph = 4 Then
        Me.Image3.Picture = LoadPicture(Fichier)
        End If
     
        Next graph
     
    End Sub

  2. #2
    Membre éprouvé
    Homme Profil pro
    ingénieur d'étude
    Inscrit en
    Juin 2013
    Messages
    563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : ingénieur d'étude
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2013
    Messages : 563
    Points : 1 141
    Points
    1 141
    Par défaut
    Bonjour,

    D'après l'aide microsoft (page en anglais car la traduction automatique en français est incompréhensible...) il s'agit d'un problème d'espace disque.

    Vérifiez la place restante sur votre disque, la taille de l'image créée par votre macro et ce que vous obtenez lorsque vous souhaitez ouvrir cette image manuellement.

    Cdt

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2012
    Messages : 25
    Points : 30
    Points
    30
    Par défaut Réponse et nouveaux éléments
    Bonjour,

    Tout d'abord, merci BEN pour ta réponse. J'ai essayé de suivre l'aide pour la résolution mais j'ai vite été larguée... Je suis tout de même partie de ce que j'avais compris du problème et je ne pense pas que l'espace disque soit le problème.
    Premièrement parce que mon image ne prend que 12 Ko sur le disque, et deuxièmement parce que qu'il me reste 39.9 Go d'espace libre sur le disque C: donc ça me paraît bon de ce côté là. Bien sûr, il reste la possibilité que je soit à côté de la plaque

    Ensuite, j'ai fais quelques tests supplémentaires et ce sont les lignes suivantes qui bloquent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        'Affiche l'image dans l'UserForm
        If graph = 1 Then
        UF_Retouches.Image1.Picture = LoadPicture(Fichier)
        ElseIf graph = 2 Then
        UF_Retouches.Image2.Picture = LoadPicture(Fichier)
        ElseIf graph = 3 Then
        UF_Retouches.Image3.Picture = LoadPicture(Fichier)
        End If
    Pour Excel, il y a un problème sur "UF_Retouches.Image1.Picture" car il me met "=Nothing" dans le Débogage. Cette image existe et j'ai vérifié les noms, rien de ce côté là. Le code exporte bien mes graphiques en images est je peux les retrouver donc rien non plus de ce côté ci.

    Fait intéressant, le code fonctionne par intermittence. Je m'explique. A la première utilisation il ne fonctionne pas. Mais si je change le code par autre chose (n'importe quoi), je l’exécute, au débogage suivant je réécrit le code initial, je l'exécute.... Il fonctionne!!!!

    Quelqu'un comprend?

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    Inscrit en
    Décembre 2012
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2012
    Messages : 25
    Points : 30
    Points
    30
    Par défaut
    Après intervention de mon service Informatique, il semblerait qu'il y ai un petit soucis de compatibilité entre Office 2003 et Office 2010 qui viendrait interférer avec le code.

    Merci à BEN pour ses éléments de réponse, le code reste dispo pour ceux qui le souhaitent puisqu'il est bon

    Sujet clos.

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

Discussions similaires

  1. Rotation d'une image dans un UserForm
    Par VicomteRaoul dans le forum VBA Word
    Réponses: 5
    Dernier message: 26/12/2022, 13h28
  2. Réponses: 2
    Dernier message: 25/03/2009, 16h32
  3. Insertion d'une image dans un UserForm
    Par babylone_59 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 29/09/2008, 20h37
  4. comment faire pour importer une image dans un projet eclipse
    Par javanoiid dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 02/04/2008, 19h24
  5. [VBA-E] Lien hypertexte relié à une image dans un userform
    Par sebek_2000 dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 22/02/2007, 06h43

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