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 :

ComboBox Evenement clic et change


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 93
    Par défaut ComboBox Evenement clic et change
    Bonjour.

    J'ai une combobox à laquuelle j'ai associé un évènement click.

    Le clic sur un autre de mes controles a pour effet de modifier le texte de la combobox : mais alors tout la procédure évènement click est effectuée. L'action n'est pourtant pas un click, mais plutôt un change (je n'ai pas défini d'évènement change pour la combo).

    Comment faire pour que le changement de valeur de la combo ne déclenche pas un évènemlent click ?

    Merci.

  2. #2
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    bonjour,
    tu ne saurait pas
    l'événement click arrive avant le change
    et pour changer une combo box.... ben ... faut cliquer dessus!

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 93
    Par défaut
    Je comprends que le change vienne après le click.
    Mais pourquoi le click alors que je ne clique pas. On peut très bien changer la valeur d'une combobox sans cliquer, dans le code : combobox.text= "hhh" .

    Le fait de fair ça déclenche l'événement click. Je ne comprends pas.

    Merci pour votre aide

  4. #4
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    un pti bout de code?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    93
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 93
    Par défaut
    Voici le code pour le click

    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
    Private Sub ListExo_Click()
     
    'Gère ce qui se passe lorsque l'on sélectionne un exercice dans la liste des exercices de la séance en cours
     
     
    ListExoSeance.Tag = "Non"
     
    'Si on a enregistré une image pour cette exercice, elle est affichée. Sinon, on remet l'image du groupe musculaire
    If Dir("I:\Pictures\Groupes musculaires\Exos " & ListGroupMusc.Text & "\" & ListExo.Text & ".jpg") <> "" Then
     ImageExo.Picture = LoadPicture("I:\Pictures\Groupes musculaires\Exos " & ListGroupMusc.Text & "\" & ListExo.Text & ".jpg")
    Else
     ImageExo.Picture = LoadPicture("I:\Pictures\Groupes musculaires\Images pour groupes\" & ListGroupMusc.Text & ".jpg")
    End If
     
    'Permet que l'image change effectivement
    ImageExo.Visible = False
    ImageExo.Visible = True
     
    'On cache les frames des séances précédentes et celle des stats
    Call CacheDernieresSeancesExos
     
    'On efface les données de l'exercice précédent
    For i = 1 To 15 Step 1
     Controls("TextChargeser0" & i).Text = ""
     Controls("NbreRepser0" & i).Text = ""
     Controls("TempsRepos0" & i).Text = ""
    Next
     
    'Si on a effectivement sélectionné un exercice, il faut afficher le contenu des trois dernières séances.
    If ListExo.Text <> "" Then
     
    LigneExo = NomExoVersNumero(ListExo.Text & " (" & ListGroupMusc.Text & ")") + 16
    NomExo = "Exo" & LigneExo - 16
     
    Set Feuille = ActiveWorkbook.Sheets(NomExo) 'On prend une instance de la feuille de l'exercice
     
    'Mise à jour du numero de l'exercice
    ExerciceEnCours.Caption = "Exercice" & ListExoSeance.ListCount + 1
     
    'Affichage de la description de l'exercie
    TextDescription.Value = ActiveWorkbook.Sheets("Groupes-exercices").Cells(LigneExo, 2).Value
     
     'On compte le nombre de séances à afficher, trois au maximum
     Compteur = Mini(Feuille.Cells(1, 65).Value, 3)
     NbreSeance = Feuille.Cells(1, 65).Value
     
     'Si il y a des séances à afficher (i.e. si ce n'est pas la première séance)
      If Compteur <> 0 Then
       Call DernieresSeances(NomExo, NbreSeance, 1, Compteur)
      End If
     End If
     
     'On affiche le nom de l'exercie en cours
     If ComboMethode.Text <> "" Then
      TextExoCour.Text = ListExo.Text & " (" & ListGroupMusc.Text & ")" & ", " & ComboMethode.Text
     Else
      TextExoCour.Text = ListExo.Text & " (" & ListGroupMusc.Text & ")"
     End If
    End Sub
    et celui qui modifie seulement le texte

    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
    Private Sub ListExoSeance_Click()
      NomExo = "Exo" & NomExoVersNumero(NomSansMethode(ListExoSeance.Text))
      Set Feuille = ActiveWorkbook.Sheets(NomExo)
      NbreSeance = Feuille.Cells(1, 65).Value
     
     'On indique que l'on a choisi un exercice de la liste
     ListExoSeance.Tag = "Oui"
      
        
      NomGr = NomGroupe(ListExoSeance.Text)
      NomMet = NomMethode(ListExoSeance.Text)
      VraiNomExo = NomExercice(ListExoSeance.Text)
     
      ListGroupMusc.Text = NomGr
      ListExo.Text = VraiNomExo Ici
      ComboMethode.Text = NomMet
      SpinExo.Value = ListExoSeance.ListIndex
     
     Call CacheDernieresSeancesExos
     
     If BoutonModifier.Tag = "Inactif" Then
      NumeroExo = NbreSeance
     Else
      NumeroExo = QuelNumero(NomExo, CDate(ComboDate.Text), NbreSeance + 1, 19) - 1
     End If
    
      
      ExerciceEnCours.Caption = "Exercice " & ListExoSeance.Value + 1
      Compteur = Mini(NumeroExo, 4)
    
      Call DernieresSeances(NomExo, NumeroExo, 0, Compteur - 1)
     
    End Sub

  6. #6
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    je vais y jeter un oeil mais a chaud une autre question

    VraiNomExo existe dans le combo box ListExo?

  7. #7
    Candidat au Club
    Homme Profil pro
    Logistique
    Inscrit en
    Juillet 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Logistique
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3
    Par défaut Précision !?
    Citation Envoyé par mayekeul Voir le message
    bonjour,
    tu ne saurait pas
    l'événement click arrive avant le change
    et pour changer une combo box.... ben ... faut cliquer dessus!
    Bonsoir,

    Peut être que j'ai mal interprété le langage, en tout cas, le fichier joint démontre le contraire de ce qui est avancé.
    Dans le fichier joint, le click survient après le change. Le change arrive en premier, ensuite le click survient après.
    Il semble qu'il peut y avoir change sans click. Le click est substantiellement un change, le click une modalité du change.

    Cordialement.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [XL-2010] Evenement "Click" et " Change" d'une ComboBox
    Par oppositif dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 13/01/2014, 15h46
  2. Dissocier les evenements clic et onDragStart
    Par gelko dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 08/11/2006, 12h36
  3. [C#] evenement clic souris
    Par vince3320 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/04/2006, 10h07
  4. [ComboBox] Evenement
    Par stailer dans le forum Composants
    Réponses: 3
    Dernier message: 08/05/2004, 11h34
  5. capter l'evenement clic sur une cellule d'un string grid
    Par lasconic dans le forum Composants VCL
    Réponses: 3
    Dernier message: 25/06/2003, 10h51

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