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 :

Afficher/Masquer image dans Userform avec nom image dynamique [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club Avatar de Bloodric
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Octobre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier

    Informations forums :
    Inscription : Octobre 2018
    Messages : 8
    Par défaut Afficher/Masquer image dans Userform avec nom image dynamique
    Bonjour à tous,

    Cela fait un long moment que je tourne sur votre site. Il m'a aidé pour beaucoup de sujets autant pro que perso. ( surtout dans Access)
    Mais voilà pour une fois je n'ai pas réussi à trouver ma réponse malgré de nombreuses recherches et tests.

    Je viens de me mettre au vba dans excel afin de créer une "application" pour gérer l'équipe de jeune footeux que j’entraîne.

    - Gestion effectif
    - Gestion Match, score, compte rendu, note ....

    Il y a un problème que je n'arrive pas à résoudre. Je souhaiterai gérer l'affichage de petites images (les cartons et les buteurs), présentes dans le formulaire mais masquées au départ, en fonction du joueurs sélectionné dans une listbox. J'ai réussi quand c'est une image avec un nom fixer ex : image3 avec un "if" et le résultat d'une chechbox sous condition vrai un simple Image3.visible = True , par contre quand je récupère le numéro du joueur concaténé avec le début du nom de l'image il ne veut pas.
    Et là je sèche depuis 2 jours dessus en essayant pleins de possibilités livrées dans les forums.

    Pour vous faire une idée de ce qui est en-cours

    Nom : gesfoot.PNG
Affichages : 1623
Taille : 33,5 Ko
    Nom : gesfoot2.PNG
Affichages : 1570
Taille : 56,2 Ko

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    '**********************************************
    'Procédure pour récupérer les données
    'du joueur de la sélection match
    '**********************************************
    Private Sub lstJoueurM2_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
     
    ' Déclaration des variables
     
        Dim MonJoueur
        Dim MaLigne As Integer
        Dim m As String
        Dim CartonJ As String
        Dim CartonR As String
     
    'Affectation des variables
     
        MonJoueur = Me.lstJoueurM2.ListIndex 'Trouver le numéro de la ligne selectionnée dans la listbox
     
    'Affectation du numero de matricule du joueur
        Me.txtJoueurM.Value = Me.lstJoueurM2.Column(0, MonJoueur)
     
    'On affecte le numéro de match pour aller sur la bonne feuille
        m = "M" & txtMatriculeM
     
    'On se positionne sur la cellule du matricule à modifier
        Sheets(m).Activate
        MaLigne = MonJoueur + 2
     
    '    MsgBox MaLigne Vérification du numéro de ligne
     
        Cells(MaLigne, 1).Select
    'On teste que le contenu de la cellule active ne soit pas vide
        If ActiveCell <> "" Then
            Me.lblNomJoueurM.Caption = Cells(MaLigne, 3)
            Me.lblPrenomJoueurM = Cells(MaLigne, 2)
            Me.cboBut = Cells(MaLigne, 5)
            Me.cboNote = Cells(MaLigne, 4)
            Me.txtCom = Cells(MaLigne, 6)
     
        End If
     
    'Afficher étoile Homme du match
        If Cells(MaLigne, 7) = 1 Then
            chkHM = True
            Else
            chkHM = False
     
        End If
     
        If Me.chkHM = True Then
            Image3.Visible = True
        Else
            Image3.Visible = False
        End If
     
    'Afficher Carton Jaune Joueur
     
        CartonJ = "lblcj" & MaLigne
     
    '    MsgBox CartonJ
     
        If Cells(MaLigne, 9) = 1 Then
            chkcj = True
            Else
            chkcj = False
        End If
     
        If Me.chkcj = True Then
     
            CartonJ.Visible = True
        Else
            CartonJ.Visible = False
        End If
     
    'Afficher Carton Rouge Homme du match
     
    '    CartonR = "lblcr" & MaLigne
     
    '    If Cells(MaLigne, 10) = 1 Then
    '        chkHM = True
    '        Else
    '        chkHM = False
    '    End If
     
    '    If Me.chkcr = True Then
    '        cr.Visible = True
    '    Else
    '        cr.Visible = False
    '    End If
     
    '------------------------------
     
        Sheets("CLUB").Activate 'Retourne à la feuille de gestion
        Range("A1").Select
     
    End Sub
    Pour l'étoile "Homme du match" pas de soucis mais pour les cartons avec le nom de l'image CartonJ = "lblcj" & MaLigne impossible malgré de multiples tests avec des directions bien différentes.

    Je suis preneur si vous avez une solution pour le débutant que je suis.

    Cordialement

  2. #2
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonjour,
    c'est pas évident, mais j'ai l'impression que vous appelez de la même manière, l'image carton jaune et la variable Carton jaune, je pense que c'est de la que vient votre problème.
    Essayez de rectifier cela et je crois qu'après ça va aller. ça semble marcher bien pour l'étoile qui elle dispose d'un nom différent pour l'un et l'autre.
    Par ailleurs, il faut expliciter mieux le problème rencontré. Dire que ça plante, par exemple, ça fait pas avancer si on précise pas le message d'erreur ou ce qui se passe exactement!

    Cordialement

  3. #3
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Re bonjour
    Vous pourriez aussi au lieu de mettre des images carton rouge ou jaune utiliser la propriétés .width du checkBox avec la couleur de fond correspondante.
    Je me suis amusé à vous faire une petite démonstration, vous en ferez ce que vous voudrez.
    Nom : Capture d’écran 2018-10-13 à 07.55.30.png
Affichages : 1395
Taille : 12,0 Ko
    Nom : Capture d’écran 2018-10-13 à 07.55.46.png
Affichages : 1358
Taille : 12,2 Ko
    Nom : Capture d’écran 2018-10-13 à 07.56.19.png
Affichages : 1366
Taille : 12,2 Ko
    Et voici le code qui y correspond, tout cela est bien sur à adapter, si ça vous plait.

    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
    Private Sub CheckBox1_Click()
    With CheckBox1
    If .Value = False Then
        .Width = 21
    Else
       .Width = 100
    End If
    End With
    End Sub
     
    Private Sub CheckBox2_Click()
    With CheckBox2
    If .Value = False Then
        .Width = 21
    Else
        .Width = 100
    End If
    End With
    End Sub
    Je précise, que lorsque vous chargez une ligne existante, il est possible aussi d 'effectuer l'opération automatiquement
    Cordialement

  4. #4
    Membre du Club Avatar de Bloodric
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Octobre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier

    Informations forums :
    Inscription : Octobre 2018
    Messages : 8
    Par défaut
    Bonjour Transitoire,

    Merci de d'être penché sur ma problématique.

    Pour ce qui est du nom de l'image et de la variable, je ne pense pas avoir la même chose puisque les images se nomment lblcj1, lblcj2 ... et la variable CartonJ , c'est juste la variable CartonJ qui doit récupérer le nom de l'image.

    Voilà pour le message d' erreur

    Nom : gesfoot3.PNG
Affichages : 1390
Taille : 18,2 Ko

    Pour la proposition avec les Checkbox je vais regarder ce que ça peu donner dans l'espace, réduit, que j'ai sur le formulaire

    Encore Merci

  5. #5
    Membre du Club Avatar de Bloodric
    Homme Profil pro
    Responsable d'un système d'information métier
    Inscrit en
    Octobre 2018
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Responsable d'un système d'information métier

    Informations forums :
    Inscription : Octobre 2018
    Messages : 8
    Par défaut
    je viens de me rendre compte, comme quoi il faut prendre du recul par moment, que ce ne sont pas des images mes "minis" carton jaune mais des Labels au fond jaune ou rouge que je masque ou pas selon la condition.

    ça ne change pas grand chose pour ce que je veux faire mais peut-être que la commande doit être différente

    EDIT : en fait peu import le type de contrôle que je tente dès que c'est issu d'un concaténation j'ai ce message d'erreur.

  6. #6
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonsoir,
    Il y a un truc que j'arrive pas à comprendre en fait?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    'Afficher Carton Jaune Joueur
    CartonJ = "lblcj" & MaLigne         'Donc si MaLigne = 4, Vous êtes conscient que CartonJ = lblcj4. si il y a un Label qui s'appelle lblcj4, le code ci dessous doit marcher?
     
        If Cells(MaLigne, 9) = 1 Then
            chkcj = True
            Else
            chkcj = False
        End If
        If Me.chkcj = True Then
            CartonJ.Visible = True
        Else
            CartonJ.Visible = False
        End If
    La macro double click, en fait elle sert à prendre des valeurs existantes dans une ligne de la listBox et de les afficher pour un joueur et les réintégrer après modif ou quoi?
    Et le carton jaune (ou pas de carton jaune) doit-il s'afficher dans quelle partie, celle du joueur, celle de la liste ou les deux? Parceque suivant le cas, le code n'est pas le même?
    Cordialement

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

Discussions similaires

  1. [XL-2010] Alimenter Combobox dans Userform avec noms définis variables
    Par aethangaia dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 27/06/2014, 14h24
  2. Inserer image dans excel avec PHP
    Par hamzito dans le forum Langage
    Réponses: 5
    Dernier message: 12/08/2011, 12h53
  3. Réponses: 8
    Dernier message: 30/08/2006, 14h22
  4. insérer des images dans MySQL avec PHPMyAdmin
    Par intik dans le forum Outils
    Réponses: 1
    Dernier message: 29/08/2006, 09h59
  5. Liaison avec des images dans une table
    Par ValérieBruxelles dans le forum Access
    Réponses: 5
    Dernier message: 25/11/2005, 14h21

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