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 d'image selon des conditions [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Juin 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 6
    Par défaut insertion d'image selon des conditions
    Bonjour,

    Novice en VBA, j'ai toutefois réussi à réaliser quelques commandes, notamment grace à des réponses que j'ai pu trouver sur développez.com
    J'en profite donc déjà pour remercier celles et ceux qui apportent des réponses à toutes nos questions.
    En revanche, je bloque maintenant sur une problèmatique qui je pense est pourtant simple. en espérant être clair, je souhaiterais copier dans une cellule d'une feuille une image en fonction du résultat d'un condition. en exemple, dans le fichier joint :
    sur l'onglet données : chaque jour est incrémenté le réslutat de la veille (vente de patates)
    sur l'onglet météo : je souhaiterais qu'en fonction de la moyenne des 5 jours précédants, soit copier une image importée d'un dossier annexe.
    Dans l'exemple,
    si la moyenne des 5 jours précédants est > à 500, mettre un soleil
    Si la moyenne est comprise entre 450 et 500, mettre un nuage
    Si la moyenne est inférieure à 450, mettre un orage
    Ce n'est qu'un exemple..

    En espérant que quelqu'un à une solution..

    Merci
    Bonne fin de journée
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent 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
    Par défaut
    Bonjour

    1. En Feuille météo insère un contrôle ActiveX Image nommé Image1
    2. Dans un dossier insère tes 3 images nommées soleil, orage et nuage
    3. Mets ce code dans le module de ta feuille Données

    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
    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:\Users\user\Desktop\"
        Select Case M
            Case Is <= 450: Fichier = "orage.jpg"
            Case Is <= 500: Fichier = "nuage.jpg"
            Case Else: Fichier = "soleil.jpg"
        End Select
        Worksheets("météo").Image1.Picture = LoadPicture(Chemin & Fichier)
    End If
    End Sub

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Juin 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 6
    Par défaut
    Bonjour,

    Tout d'abord merci pour la réponse apportée (Menant plusieurs projets de front, je reviens un peu tard sur ce acs)
    Le code que tu me proposes est très intéressant, mais il y a quelques chose que je ne comprends pas :

    l'image devant s'afficher étant différente suivant un résultats, comment dois-je formuler le chemin. En effet, dans le chemin je dois spécifier une image, mais, par conséquent, c'est toujours la même qui s'affiche...

    Merci encore

    Cordialement

  4. #4
    Expert éminent 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
    Par défaut
    Bonjour
    je n'ai pas compris ton problème
    Tu as un dossier Chemin (à adapter) où tu as les 3 images orage.jpg, nuage.jpg et soleil.jpg.
    Sur ta feuille tu as un contrôle ActiveX nommé Image1
    Et en fonction de la moyenne des 5 dernières données l'image se met à jour.

    PS: j'ai testé! à toi d'adapter

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Juin 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 6
    Par défaut
    Re-bonjour

    Je me suis mal exprimé et j'ai du mal adapté le code
    Concernant le contrôle et l'insertion de l'image ==> Ok ça fonctionne quand je donne le chemin suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("météo").Image1.Picture = LoadPicture("E:\0 - Vincent\UI - C3P\Instances\Outils\Images\4Orageux.jpg")
    Mais comme tu peux le voir, une seule image est spécifiée, et donc seul cette image est copiée.

    Donc comment spécifier le chemin pour que le choix soit donné au 3 images en fonction du résultat ?
    j'ai essayé d'autres choses, mais à chaque fois, "erreur75 erreur d'accés chemin/fichier"

    Tu vas me trouver nul, désolé

  6. #6
    Expert éminent 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
    Par défaut
    C'est ce que fait le code du post #3 (à adapter au niveau du chemin, et des noms)
    A chaque saisie d'une nouvelle donnée, le code calcule la moyenne des 5 dernières lignes et l'image se met à jour automatiquement.

    Si tu n'arrive pas, tu peux mettre en PJ ton fichier (réduit et sans données confidentielles)

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Juin 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 6
    Par défaut
    Avec le fichier..

    Merci pour ton aide
    Fichiers attachés Fichiers attachés

  8. #8
    Expert éminent 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
    Par défaut
    Adapte cette partie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Chemin = "C:\Users\user\Desktop\"
    En mettant le chemin de TON dossier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Chemin = "E:\0 - Vincent\UI - C3P\Instances\Outils\Images\"
    et aussi cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("météo").Image1.Picture = LoadPicture("E:\0 - Vincent\UI - C3P\Instances\Outils\Images\4Orageux.jpg")
    Avec cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Worksheets("météo").Image1.Picture = LoadPicture(Chemin & Fichier)

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Juin 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 6
    Par défaut
    Hé bien voilà !

    C'est parfait (quelle buse je fais !)

    Merci à toi pour tes réponses précises et ta réactivité

    Cordialement

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Juin 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2011
    Messages : 6
    Par défaut
    Une dernière question

    est-il possible d'enchainer ces codes si je veux appliquer cela à plusieurs mesures ?

    Merci

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

Discussions similaires

  1. Insertion d'image selon des conditions
    Par timso dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/08/2011, 12h10
  2. afficher des ecrans selon des conditions
    Par chamssou dans le forum SAP
    Réponses: 1
    Dernier message: 24/03/2011, 12h35
  3. Réponses: 1
    Dernier message: 21/01/2011, 10h17
  4. Réponses: 13
    Dernier message: 22/07/2009, 14h36
  5. [SQL Server 8] fonction Max --- selon des conditions
    Par Baquardie dans le forum Langage SQL
    Réponses: 2
    Dernier message: 31/01/2006, 21h06

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