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 :

Utilisation de AddPicture avec image provenant d'un onglet


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Par défaut
    Bonjour,

    J'ai fait un petit programme qui marche très bien actuellement, mais dont j'aimerai changer le fonctionnement.

    Mon programme insère une image dans une cellule en fonction de la valuer d'une autre cellule.
    Ces images sont stockées sur mon disque dur. Elles sont ajoutées via la methode AddPicture.

    voici le code:
    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
     
    Private Sub Worksheet_Change(ByVal Target As Excel.Range)
     
    ' déclaration des variables
    Dim OS15, OS40, OS60, telephone As String
    Dim Sh As Shape
     
     
     ' Récupération des fichiers
       OS15 = "D:\Bibliotheque\OS15.jpg" 
       OS40 = "D:\Bibliotheque\OS40.jpg"
       OS60 = "D:\Bibliotheque\OS60.jpg"
     
    ' Suppression des images existantes
        For Each Sh In Worksheets("Profils").Shapes
           If Left(Sh.Name, 6) = "Profil" Then Sh.Delete
        Next
     
        On Error GoTo errorhandler
     
    ' test de la valeur  et ajout de l'image en fonction
        If Worksheets("Profils").Range("C7").Value <> "" Then
                positionX1 = "S5"
                positionY1 = "S5"
               Select Case Left(Worksheets("Profils").Range("C7").Value, 12)
                Case "OpenStage 15"
                    telephone = OS15
                Case "OpenStage 40"
                    telephone = OS40
                Case "OpenStage 60"
                    telephone = OS60
                Case Else
                    telephone = OS15
                End Select
     
                Set Sh = Feuil5.Shapes.AddPicture(telephone, msoFalse, msoCTrue, Range(positionX1).Left, Range(positionY1).Top, 60, 45)
                With Sh
                .Name = "Profil_Tel"
                End With
       End If
       Exit Sub
    errorhandler:
    End Sub
    Maintenant je voudrais que ces images soient embarquées dans un onglet Excel (bibliothèque). Mais je n'arrive pas a récupérer le nom des images pour l'utiliser dans la fonction addpicture.

    (j'ai fouillé dans la FAQ mais la méthode Copypicture à la place du AddPicture ne me convient pas trop)


    Est-ce possible? et comment? (je m'embrouille un peu avec les Shapes !)

    Merci d'avance pour votre aide.

    En gros, est on obligé de mettre le chemin dans la procédure addpicture, ou peut on mettre la référence d'un objet? Et si oui, comment?

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Bonjour,

    peux-tu expliquer ceci ?
    ou peut on mettre la référence d'un objet?
    J'ignore si ceci peut répondre à ta a question :

    issu de l'aide en ligne VBA :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Set myDocument = Worksheets(1)
    myDocument.Shapes.AddPicture _
        "c:\microsoft office\clipart\music.bmp", _
        True, True, 100, 100, 70, 70
    Devrait aussi pouvoir s'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     Dim chemin as string
    chemin  = "c:\microsoft office\clipart\music.bmp"
    Set myDocument = Worksheets(1)
    myDocument.Shapes.AddPicture _
        chemin, _
        True, True, 100, 100, 70, 70
    Pour moi stocker tes images dans un onglet excel n'est pas une bonne idée du out, car ta "librairie" n'est pas comme ton disque dur indexée et tu vas devoir recherche ton image dans la collection image. de plus au niveau gestion de la mémoire, cela pourrait tourner à

  3. #3
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Par défaut
    En fait, mon problème est que le programme que j'ai fait plus haut fonctionne très bien.

    Mais je dois envoyer ce fichier excel a des clients qui n'auront donc pas accès aux répertoires du réseau (ou de mon DD) où sont stockées mes images.

    Du coup, j'essaye d'embarquer ça dans Excel.

    Avez vous une autre idée?

  4. #4
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Je comprend maintenant le but, partiellement, mais pas le fonctionnement ni la finalité.

    restons sur ta situation connectée au réseau. Comment utilises-tu les images au niveau de ton excel ? en fonction des manipulations ou bien tu les charges au début.

    Qu'est ce qui t'empêche de charger les images et d'envoyer le fichier a tes clients avec le code de chargement des images déja effectué et donc les images chargées à leur place, donc pas comme une librairie.

    Peux-tu revenir en détail sur le but et le fonctionnment de ton application.

    J'ai sous la main un exemple (bof bof bof pas top du tout) mais qui marche +- d'un classeur qui charge les images de tous les articles d'un catalogue ) à côté de l'article, mais j'ignore si c'est ton besoin.
    La méthode utilisée est insert.Picture.

  5. #5
    Membre confirmé
    Inscrit en
    Juin 2006
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 79
    Par défaut
    Avant tout, merci de te pencher sur mon cas

    Je pense en effet que je vais devoir utiliser insert.picture.

    Dommage, j'avais écrit plusieurs pages de code avec addpicture.

    Pour répondre à ta question, mon document génère des schémas en fonction de données dans des formulaires excel.

    Du coup, en fonction d'une liste déroulante, il va afficher un schéma différent (ces schémas se basant sur les images + paramètres associés).

    Exemple : je choisi un numéro de téléphone dans une liste. En fonction du numéro de téléphone choisi et de la stratégie de débordement des appels et des paramètres associés...il va dessiner un schéma vulgarisé permettant de comprendre comment fonctionne la stratégie d'appels; (Si non réponse, débordement au bout de 5seconde sur n° de téléphone xxx xxx, puis sur numéro xxx yyy ..etc)

    Bref...je m'amuse comme un fou

    je reviens vers vous si je trouve quelque chose qui fonctionne

  6. #6
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Re,

    vu la multitude de cas possibles, ne peux tu pas transmettre ton fichier excel et les images associées, toutes, dans un fichier zippé. ce zip contiendrait ton classeur et un sous-folder, images par exemple, où toutes les images seraient stockées. le client devrait juste dézipper l'ensemble. Ton vba serait construit de la manière suivante : a chaque fois que tu devrais aller chercher une image de référence, le chemin ou il la trouverait serait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Thisworkbook.path & "\Images\"
    Et le tout est joué.

    C'est possible pour toi ?

Discussions similaires

  1. utilisation de ginput avec images
    Par romainmill dans le forum Programmation multimédia/Jeux
    Réponses: 1
    Dernier message: 04/04/2014, 17h24
  2. Réponses: 5
    Dernier message: 18/05/2011, 19h51
  3. Réponses: 2
    Dernier message: 31/05/2009, 20h28
  4. Utiliser OLE Objet avec plusieurs images?
    Par solaar dans le forum VBA Access
    Réponses: 2
    Dernier message: 11/11/2008, 01h43
  5. [GD] Utilisation de imagecreatefromjpeg() avec des images de plus de 2 000 pixels
    Par jojo33bx dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 11/09/2007, 20h40

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