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 :

Insertion image dans cellule [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2011
    Messages : 14
    Points : 8
    Points
    8
    Par défaut Insertion image dans cellule
    Bonjour,

    Je cherche à insérer une image dans une cellule en fonction du résultat obtenu dans la cellule voisine.
    Sur le forum j'ai trouvé la réponse de " mercatog" de juin 2011 qui me convient parfaitement; mais je n'arrive pas à adapter ses conditions d'affichage.

    Je voudrais seulement trois conditions en fonction du résultat obtenu dans ma cellule: -5%, entre -5% et +5% et supérieur à 5%.
    Mon souci est que je n'arrive pas à adapter la première partie de son code.

    Je vous remercie pour l'aide que vous pourriez m'apporter.

  2. #2
    Expert éminent
    Avatar de Didier Gonard
    Homme Profil pro
    Formateur Office et développeur VBA en freelance
    Inscrit en
    Février 2008
    Messages
    2 805
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Formateur Office et développeur VBA en freelance

    Informations forums :
    Inscription : Février 2008
    Messages : 2 805
    Points : 6 699
    Points
    6 699
    Par défaut
    Bonjour,

    En mettant le lien vers le sujet évoqué, en mettant la partie de code concernée et en explicitant le problème ça sera plus facile de répondre

    cordialement,

    Didier

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2011
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Merci pour ta réponse et excuses moi pour l'oubli je suis impardonable.

    Je te joins le fichier initial de "mercatog" sur le quel j'ai travaillé. Son problème était d'afficher une image en fonction de la moyenne du résultat des 5 jours précédents.

    Mon problème est beaucoup plus simple, je veux afficher une image par exemple en G11, pour un résultat de calcul qui s'affiche en F11 sous la forme d'un pourcentage. J'aimerais que mon image change si ce résultat est inférieur à -5%, supérieur à +5% ou entre -5% et +5%.

    J'ai donc essayé de modifier le code de mercatog ( le IF ) qui est joint au fichier, mais je n'y arrive pas.


    Excuses moi mais je suis un débutant et j'essaie tous les jours de m'améliorer.


    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
    Sub Worksheet_Change(ByVal Target As Range)
     
    Dim Fichier As String, Chemin As String
     
    Dim R As Long, S As Long
     
    Dim M As Double
     
     
    If Target.Count = 1 And Target.Column = 2 And Target.Row > 1 Then
     
        R = Target.Row
     
        If R <= 6 Then
     
            S = 2
     
        Else
     
            S = R - 4
     
        End If
     
        'Moyenne des 5 derniers jours, si <5 jours, moyenne des jours à partir de B2
     
        M = Evaluate("AVERAGE(B" & S & ":B" & R & ")")
     
        Chemin = "C:\Documents and Settings\MENOT\Bureau\Emoti\"
     
        Select Case M
     
            Case Is <= 450: Fichier = "smiley_bon.gif"
     
            Case Is <= 500: Fichier = "smiley_egal.gif"
     
            Case Else: Fichier = "smiley_mauvais.gif"
     
        End Select
     
        Worksheets("météo").Image1.Picture = LoadPicture(Chemin & Fichier)
     
    End If
     
    End Sub
    .

    Merci de ton aide.
    Fichiers attachés Fichiers attachés

  4. #4
    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
    Est le code modifié ?


    Target c'est une référence vers la cellule qui change d'état .. modifie donc la ligne IF qui définit les cellules concernées par ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Target.Count = 1 And Target.Column = 2 And Target.Row > 1 Then
    par exemple en restant sur les colonnes/lignes : pour F11

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Target.Count = 1 And Target.Column = 6And Target.Row =11  Then
    ensuite si l'image à afficher dépends seulement de la valeur calculée en F11.. modifie l'intérieur de ton IF en simplifiant et laissant juste un case...
    puis montre nous ou tu en est et dit nous ce qui se passe ...

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2011
    Messages : 14
    Points : 8
    Points
    8
    Par défaut Insertion image
    Merci pour ta réponse

    Voilà où j'en suis : j'insère bien mon image en G11, mais elle ne change pas avec le changement de valeur de F11

    Mon 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
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    Dim Fichier As String, Chemin As String
     
     
    Dim M As Double
     
     
    If Target.Count = 1 And Target.Column = 6 And Target.Row = 11 Then
     
     
     
     
        M = Cells("G", "11")
     
        Chemin = "C:\Users\REGIS\Desktop\Emoti\"
     
        Select Case M
     
            Case Is <= -5: Fichier = "smiley_mauvais.gif"
     
            Case Is > 5: Fichier = "smiley_bon.gif"
     
            Case Else: Fichier = "smiley_egal.gif"
     
        End Select
     
        Worksheets("données").Image1.Picture = LoadPicture(Chemin & Fichier)
     
    End If
     
    End Sub
    Encore merci pour ta patience

  6. #6
    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
    Target te renvoi la cellule modifié ... tu n'as pas besoin de ton M...


  7. #7
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2011
    Messages : 14
    Points : 8
    Points
    8
    Par défaut
    Je l'ai modifié ainsi mais j'ai toujours le même problème; il ne choisit que l'image " egal"


    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
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    Dim Fichier As String, Chemin As String
     
    If Target.Count = 1 And Target.Column = 6 And Target.Row = 11 Then
     
        Chemin = "C:\Users\REGIS\Desktop\Emoti\"
     
        Select Case Target.Column = 7 And Target.Row = 11
     
            Case Is <= -5: Fichier = "smiley_mauvais.gif"
     
            Case Is > 5: Fichier = "smiley_bon.gif"
     
            Case Else: Fichier = "smiley_egal.gif"
     
        End Select
     
        Worksheets("données").Image1.Picture = LoadPicture(Chemin & Fichier)
     
    End If
     
    End Sub

  8. #8
    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
    Pour tester la valeur dans la cellule tu mais juste le code que j'ai posté :

    pas de AND et .Column....

  9. #9
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2011
    Messages : 14
    Points : 8
    Points
    8
    Par défaut insertion image
    Je suis trop nul et j'aime ça......
    J'ai enfin compris et tout marche nickel.
    Je te remercie vivement pour ta patience et ta gentillesse.
    Je joins le code définitif qui peut servir à un autre

    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 Worksheet_Change(ByVal Target As Range)
     
    Dim Fichier As String, Chemin As String
     
     
     
     
     
    If Target.Count = 1 And Target.Column = 6 And Target.Row = 11 Then
     
     
     
     
     
        Chemin = "Chemin_ de_votre_fichier_image"
     
        Select Case Target
     
            Case Is <= -5: Fichier = "smiley_mauvais.gif"
     
            Case Is > 5: Fichier = "smiley_bon.gif"
     
            Case Else: Fichier = "smiley_egal.gif"
     
        End Select
     
        Worksheets("données").Image1.Picture = LoadPicture(Chemin & Fichier)
     
    End If
     
    End Sub

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

Discussions similaires

  1. [XL-2007] insertion image dans cellule
    Par cath2123 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 27/01/2014, 10h57
  2. Insertion image dans une cellule d'un tableau
    Par bigmousse69 dans le forum Word
    Réponses: 1
    Dernier message: 25/06/2010, 18h09
  3. insert image dans cellule
    Par philguio dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 06/06/2007, 10h05
  4. [Upload] Insertion image dans mysql après upload
    Par alexmorel dans le forum Langage
    Réponses: 4
    Dernier message: 21/03/2006, 00h46
  5. Differentes images dans cellules d'une StringGrid
    Par gazier20 dans le forum Composants VCL
    Réponses: 8
    Dernier message: 24/01/2006, 00h10

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