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 :

Intégration d'une image dans un UserForm (à l'aide de LoadPicture): "Erreur 424"


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Intégration d'une image dans un UserForm (à l'aide de LoadPicture): "Erreur 424"
    Bonjour !
    Je bosse actuellement sur un projet en informatique et ça fait 2h que je bloque sur une ligne de programme.
    J'essaie de copier une partie de ma feuille de calcul en tant qu'image (jusque là, ça va), puis de la copier dans un UserForm. J'ai essayé dans un cadre et dans un objet Image, mais je me retrouve toujours avec l'erreur 424 "Objet requis".
    J'ai regardé sur plein de forums, et il me semble utiliser la formulation souvent conseillée, mais allez savoir pourquoi, chez moi ça bug..

    Où est-ce-que je me plante ?

    Voilà ma Sub pour l'instant :

    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
    Private Sub Frame1_Click()
     
    Dim NomIm As Variant, pic As Variant
    Dim poutre As Range
     
     
    Set poutre = Feuil2.Range(Cells(1, 1), Cells(10, 10))  
     
    NomIm = poutre.CopyPicture(xlScreen, xlBitmap)     'copie la sélection en tant qu'image dans le presse papier
     
    'Création d'une zone de diagramme temporaire :
     
    With ActiveSheet.ChartObjects.Add(0, 0, 150, 150).Chart
            .Paste
            .Export ThisWorkbook.Path & "\ImagePoutre.gif", "GIF"       ' Sauvegarde l 'image du graphique au format gif dans le dossier courant
    End With
     
     
    'On Error Resume Next
     
    'Et c'est la ligne suivante qui provoque un message d'erreur :
    UserForm3.Frame2.Picture = LoadPicture("C:\Users\Hélène\Documents\Cours\Projet_Info\ImagePoutre.gif")  'Affiche l'image dans l'userform
     
     
       'Supprime le graphique et la forme :
       With ActiveSheet
            .ChartObjects(ActiveSheet.ChartObjects.Count).Delete
            .Shapes(ActiveSheet.Shapes.Count).Delete
       End With
     
    End Sub
    Merci de votre aide

  2. #2
    Expert éminent sénior


    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
    Points : 20 040
    Points
    20 040
    Par défaut
    Bonsoir,

    Vérifie le nom de ton Userform3 et de ta Frame2...

  3. #3
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Testé ce code (le tiens)
    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
    Private Sub Frame1_Click()
    Dim FichierImg As String
     
    FichierImg = ThisWorkbook.Path & "\ImagePoutre.gif"
    With Feuil2
        .Range(.Cells(1, 1), .Cells(10, 10)).CopyPicture xlScreen, xlBitmap     'copie la sélection en tant qu'image dans le presse papier
        With .ChartObjects.Add(0, 0, 150, 150).Chart
            .Paste
            .Export FichierImg, "GIF"                ' Sauvegarde l 'image du graphique au format gif dans le dossier courant
        End With
        Me.Frame2.Picture = LoadPicture(FichierImg)  'Affiche l'image dans l'userform
        .ChartObjects(.ChartObjects.Count).Delete
    End With
    Kill FichierImg
    End Sub
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  4. #4
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Novembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2011
    Messages : 5
    Points : 5
    Points
    5
    Par défaut Merci !
    Super, ça marche !

    bbil, effectivement il y avait un problème dans mes appellations... Erreur de débutant..

    Et mercatog, merci pour ton programme, c'est plus simple que ce que j'avais fait !

    Et surtout merci de votre rapidité

+ 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, 12h28
  2. Réponses: 2
    Dernier message: 14/11/2010, 19h38
  3. Réponses: 2
    Dernier message: 25/03/2009, 15h32
  4. 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, 19h37
  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, 05h43

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