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 :

Activation ou non d'une fonction d'affichage dans une fenêtre d'une image


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2012
    Messages : 12
    Points : 10
    Points
    10
    Par défaut Activation ou non d'une fonction d'affichage dans une fenêtre d'une image
    Bonjour,

    J'ai besoin de créer une méthode qui permet d'activer ou non la fonction d'affichage dans une fenêtre de l'image résultat ou résultat du test (test fonctionnel) de la ligne en cours d'un fichier Excel qui contient 3 colonnes : 1- Numéro d'action, 2- description du résultat attendu et 3-capture d'écran du résultat attendu.
    L'idéal serait d'indiquer dans une nouvelle cellule les valeurs : "pas d'affichage càd aucune image disponible","résultat", "résultat test". Si l'une des deux dernières options est active, lorsque la cellule courante est sur une ligne d'action, le système affiche dans une fenête volante l'image correspondant au résultat du test attendu ou au résultat constaté lors de l'exécution du test. Si pour une ligne il n'y a pas d'image à afficher, le contenu de la fenêtre volante est vide.

    Voici le code réalisé jusqu'à présent pour afficher l'image :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Debug.Print Target.Address, Target.Row, Target.Value
    If UCase$(Right$(Target.Value, 4)) = ".JPG" Then
        If Dir(Target.Value) <> "" Then
            Mafenetre.Picture = LoadPicture(Target.Value)
            Mafenetre.Show False
        End If
    End If
    End Sub
     
    Sub Bouton1_Clic()
        Mafenetre.Show False
    End Sub
    Étant débutante en vba, je ne sais pas comment m'y prendre pour le reste (surtout la fonction d'activation ou non de l'affichage de l'image).
    Je compte énormèment sur votre aide.
    Merci d'avance


    aquarium33

  2. #2
    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
    Pas claire comme explication

    Si au cas ou l'image est inexistante et que tu veux afficher l'usf vide ainsi qu'écrire sur la colonne 10 de la ligne
    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
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim Img As String
    Dim Existe As Boolean
     
    If Target.Count = 1 Then
        Img = Target.Value
        If Img <> "" Then
            If UCase$(Right$(Img, 4)) = ".JPG" Then
                If Dir(Img) <> "" Then
                    Mafenetre.Picture = LoadPicture(Target.Value)
                    Existe = True
                End If
                If Not Existe Then Cells(Target.Row, 10) = "Aucune image disponible"
                Mafenetre.Show False
            End If
        End If
    End If
    End Sub

  3. #3
    Membre à l'essai
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Janvier 2012
    Messages : 12
    Points : 10
    Points
    10
    Par défaut Activation ou non d'une fonction d'affichage d'une image
    Bonjour,

    Merci de votre aide. ça m'a été trés utile.
    C'est vrai que mon message était pas clair du tout car je ne maîtrisais pas le sujet. Après éclaircissement, j'ai fini d etrouver le résultat.
    Voici, le code correspondant :

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
     
    Const CSTR_RESULTAT_TEST = "résultat test"
    Const CSTR_RESULTAT_EXECUTION = "résultat exécution"
    Const CSTR_PAS_AFFICHAGE = "pas d'affichage"
     
    Const CINT_POSITION_IMAGE_RESULTAT_TEST = 6
    Const CINT_POSITION_IMAGE_RESULTAT_EXECUTION = 5
    Const CINT_POSITION_IMAGE_RESULTAT_NE_PAS_AFFICHER = -99
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Dim cellule As Range
    Dim Position_image As Integer
    Dim Pint_colonne_courante As Integer
    Dim Pstr_nom_image As String
    ' je vais contrôler si je dois ou non afficher,
    ' si je dois afficher ce que je dois afficher
    Mafenetre.Lbl_pb_image.Visible = False
     
     
    Set cellule = Worksheets("Test fonctionnel").Range("F6")
    Select Case cellule.Value
        Case CSTR_RESULTAT_TEST:
            Position_image = CINT_POSITION_IMAGE_RESULTAT_TEST
        Case CSTR_RESULTAT_EXECUTION:
            Position_image = CINT_POSITION_IMAGE_RESULTAT_EXECUTION
        Case CSTR_PAS_AFFICHAGE:
            Position_image = CINT_POSITION_IMAGE_RESULTAT_NE_PAS_AFFICHER
    End Select
     
     
    If Position_image = CINT_POSITION_IMAGE_RESULTAT_TEST Or Position_image = CINT_POSITION_IMAGE_RESULTAT_EXECUTION Then
        Pint_colonne_courante = Target.Column
        Pstr_nom_image = Target.Offset(0, Position_image - Pint_colonne_courante).Value
        If Pstr_nom_image <> "" Then
             If UCase$(Right$(Pstr_nom_image, 4)) = ".JPG" Then
                 If Dir(Pstr_nom_image) <> "" Then
                     Mafenetre.Picture = LoadPicture(Pstr_nom_image)
                     Mafenetre.Show False
                 Else
                     Mafenetre.Picture = LoadPicture("")
                     Mafenetre.Lbl_pb_image.Caption = "Image Non Trouvée ???"
                     Mafenetre.Lbl_pb_image.Visible = True
     
                 End If
            Else
                'Mafenetre.Picture = LoadPicture("")
                Mafenetre.Hide
            End If
        Else
            'Mafenetre.Picture = LoadPicture("")
            Mafenetre.Hide
        End If
    Else
        ' je n'affiche pas
        Mafenetre.Hide
    End If
    End Sub
    Merci beaucoup pour votre aide

    aquarium

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

Discussions similaires

  1. Réponses: 17
    Dernier message: 16/07/2012, 14h10
  2. Réponses: 1
    Dernier message: 27/03/2012, 17h14
  3. Réponses: 1
    Dernier message: 04/02/2011, 09h18
  4. Réponses: 1
    Dernier message: 23/02/2007, 08h49
  5. une fonction d'affichage à rajouter
    Par isidore dans le forum C++
    Réponses: 17
    Dernier message: 27/02/2005, 17h03

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