Actualiser par macro un ComboBox

Magic_Doctor

XLDnaute Barbatruc
Bonsoir,

J'essaie d'actualiser au moyen d'une macro un ComboBox.
Une partie du chemin a déjà été faite, mais je n'arrive pas au bout...

Ci-joint un exemple.

Merci pour l'aide.
 

Pièces jointes

  • Exemple ComboBox.zip
    21.5 KB · Affichages: 76
  • Exemple ComboBox.zip
    21.5 KB · Affichages: 79
  • Exemple ComboBox.zip
    21.5 KB · Affichages: 71

Magic_Doctor

XLDnaute Barbatruc
Re : Actualiser par macro un ComboBox

Bonjour,

Avec l'aide du forum j'ai donc rédigé une macro paramétrable qui permet de mettre à jour des ComboBox. La macro est relativement courte, très pratique et fonctionne correctement. Le seul problème est pour un des paramétrages, celui qui stipule quel item de la liste du ComboBox doit être sélectionné par défaut (les paramétrages de la macro sont je pense bien expliqués dans le module où se trouve la macro).
Dans la 1ère feuille il y a un ComboBox qui permet de choisir la langue.
Dans la 2ème feuille il y a un ComboBox qui permet de choisir le mois. Les noms des mois qui apparaissent sont dans la langue qui a été choisie dans la 1ère feuille. Supposons que nous ayons choisi le mois de "Juin" (dont la valeur dans la liste = 6 ; valeur récupérée dans une cellule nommée) et que nous revenions à la feuille 1 pour changer la langue (nous étions en français et nous voulons passer à l'anglais ou à l'espagnol). Si dans le corps de la macro déclenchée par le ComboBox des langues nous mettons dans le paramétrage de la macro qui actualise le ComboBox des mois de la feuille2 6 comme valeur du mois qui doit être sélectionné par défaut, la macro marche parfaitement. En revanche si, au lieu de 6, nous mettons le nom de la cellule qui récupère le numéro du mois qui avait été sélectionné (autrement dit 6), et bien là plus rien ne marche. Je tourne et retourne en rond sans bien comprendre le hic.
De toutes façons, un bon exemple vaut mieux qu'un discours ennuyeux !

Un très grand merci d'avance pour toute aide.
 

Pièces jointes

  • ComboBox4.zip
    39.5 KB · Affichages: 34

ninbihan

XLDnaute Impliqué
Re : Actualiser par macro un ComboBox

Bonjour Magic Doctor,

J'ai ajouté un flag pour éviter que la macro évenementielle se déclenche plusieurs fois + déclaration variable car la valeur de ChMois n'est pas dispo quand on essaie de l'utiliser

A tester Code Hoja1:
Code:
Option Explicit
Public flag As Boolean
Private Sub ComboBoxLangue_Change()
Dim Temp As Integer
If flag = True Then Exit Sub
flag = True
Temp = CInt([ChxMois])
Application.ScreenUpdating = False

    '2 petits bidouillages "brute de décoffrage" afin d'éviter les références circulaires
    [NumChxLangue].Copy
    [NumChxLangueBis].Select
        Selection.PasteSpecial Paste:=xlPasteValues
        
    [NomChxLangue].Copy
    [NomChxLangueBis].Select
        Selection.PasteSpecial Paste:=xlPasteValues
        
    [CR3].Select
    Application.CutCopyMode = False
    
    'Change le contenu du label suivant la langue sélectionnée
    Select Case [NumChxLangue].Value
        Case 1: EtiquetteIdioma.Caption = "Langue"
        Case 2: EtiquetteIdioma.Caption = "Language"
        Case 3: EtiquetteIdioma.Caption = "Idioma"
    End Select

    ActiveSheet.Shapes("EtiquetteIdioma").ZOrder msoSendToBack  'Place le label en arrière plan (derrière le ComboBox)

    '***** Actualisation Liste ComboBoxMeses ***** [ChxMois]
    'Supposons que nous ayons séleccionné le mois de "Juin" (= 6) dans le ComboBox
    'de la feuille "Intro".
    'Ça Marche très bien si on met pour le paramètre "SelectListe"
    '(dans la macro "ActualisationCombo") la valeur correspondante (= 6) :
    'Call ActualisationCombo("ComboBoxMeses", [ListeComboBoxMeses], 2, , 6)  '--> OK
    'En revanche, si au lieu de 6 nous mettons [ChxMois] dont la valeur est pourtant 6,
    'alors plus rien ne marche :
    Call ActualisationCombo("ComboBoxMeses", [ListeComboBoxMeses], 2, , Temp) 
    
Sheets(1).Select
    
Application.ScreenUpdating = True
flag = False
End Sub
Bon aprés midi,

Ninbihan
 

Magic_Doctor

XLDnaute Barbatruc
Re : Actualiser par macro un ComboBox

Bonjour ninbihan,

Merci pour ta solution qui marche presque. En effet, quand on change la langue rien ne se passe (peut-être ai-je oublié quelque chose...). Mais je suis persuadé que la solution "élégante" va dans ce sens.

Ci-joint un fichier avec tes modifications.

J'enverrai ensuite un autre fichier où j'ai résolu le problème mais à la hussarde et sans faire dans la dentelle : c'est lourd, c'est pas beau mais ça marche...
 

Pièces jointes

  • ComboBox5_ninbihan.zip
    38.8 KB · Affichages: 27

Magic_Doctor

XLDnaute Barbatruc
Re : Actualiser par macro un ComboBox

Re,

Alors là je ne comprends rien !!

Je viens d'ouvrir le fichier en question et ça marche cette fois-ci très bien.

Peut-être l'autre fichier (solution "obèse") était-il ouvert et qu'il y a eu interférence ??
Curiosités exceliennes....

Bonne journée.
 

Discussions similaires

Statistiques des forums

Discussions
312 104
Messages
2 085 335
Membres
102 864
dernier inscrit
abderrashmaen