Combobox active X Le sujet est résolu

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Avatar du membre
fronck
Membre fidèle
Membre fidèle
Messages : 382
Appréciations reçues : 7
Inscrit le : 26 septembre 2015
Version d'Excel : 2016
Contact :

Message par fronck » 14 juillet 2019, 19:15

Bonjour,
Je souhaiterais avoir sur ma feuille mois, une liste déroulante qui fasse doublon avec le mois affiché, et qui fonctionne avec le spinbutton.(en relation avec la liste des mois en feuille data).
Ceci pour avoir le choix de passer d'un mois à l'autre ou de sauter d'un mois à un autre plus loin.
Sans titre.png
Sans titre.png (3.59 Kio) Vu 92 fois
merci :wink:
fronck
ABSENCES 2018 forum.xlsm
(162.48 Kio) Téléchargé 9 fois
Avatar du membre
oxydum
Membre fidèle
Membre fidèle
Messages : 238
Appréciations reçues : 17
Inscrit le : 29 mai 2019
Version d'Excel : 2016 FR

Message par oxydum » 15 juillet 2019, 08:56

Bonjour,

Après
mois = SpinButton_mois.Value
Ajoute :
    ComboBox1.Clear
    For i = 1 To 12:
      ComboBox1.AddItem MonthName(i)
    Next i
    ComboBox1.ListIndex = mois - 1

Avatar du membre
fronck
Membre fidèle
Membre fidèle
Messages : 382
Appréciations reçues : 7
Inscrit le : 26 septembre 2015
Version d'Excel : 2016
Contact :

Message par fronck » 15 juillet 2019, 23:50

Bonjour oxydum,
j'ai remplacé MonthName par listemois en supposant que c'était le nom du gestionnaire de noms
                               mois = SpinButton_mois.Value
                               
                                ComboBox1.Clear
    For i = 1 To 12:
    ComboBox1.AddItem Listemois(i)
    Next i
    ComboBox1.ListIndex = mois - 1
A noter que le spinbutton fonctionne avec les chiffres du mois (1 à 12) et pas les mois (janvier à décembre).
a+ :)
fronck
ABSENCES 2019 forum.xlsm
(189.04 Kio) Téléchargé 2 fois
Avatar du membre
ric
Membre impliqué
Membre impliqué
Messages : 1'810
Appréciations reçues : 148
Inscrit le : 29 mai 2018
Version d'Excel : 365 fr

Message par ric » 16 juillet 2019, 01:38

Bonjour,

J'ai déclaré "mois" au début, afin que sa valeur puisse passer d'une macro à l'autre dans ce bloc.
J'ai renommé ComboBox_mois_Change() pour ComboBox1_Change() > le vrai nom du combobox.
Dans ComboBox1_Change() > quelques modifications.
Dans pinButton_mois_Change > un ajout.
Dans generer_mois > j'ai supprimé quelques lignes au début.
Dans ThisWorkbook > Workbook_Open > en bas, j'ai ajouté l'initialisation du combobox.
Je ne crois pas que l'on puisse changer MonthName en ListeMois.

Un essai ...





ric
ABSENCES 2018 forum V2.xlsm
(148.88 Kio) Téléchargé 2 fois
Un bon dépanneur : la touche F8 pour faire un Pas-à-Pas sur le code. :mrgreen:
Avatar du membre
fronck
Membre fidèle
Membre fidèle
Messages : 382
Appréciations reçues : 7
Inscrit le : 26 septembre 2015
Version d'Excel : 2016
Contact :

Message par fronck » 16 juillet 2019, 03:05

Salut,
j'enlèves cette partie, çà bug à l'ouverture:
Sans titre.png
Sans titre.png (7.66 Kio) Vu 51 fois
Pour le reste la combobox fonctionne, fait changer le mois, et le spinbutton suit en prenant le mois precedent ou suivant le changement de mois fait par le combobox.
ABSENCES 2018 forum combobox.xlsm
(149.63 Kio) Téléchargé 2 fois
Par contre, le spinbutton ne fait pas avancer ou reculer le mois dans le combobox comme dans ce fichier, ou il se base sur une cellule cachée en B2.
Je ne vais pas me servir de la combobox dans mon fichier, mais j'aimerais bien savoir comment cette cellule B2 changeante est générée. ::o
CP2.xlsm
(238.89 Kio) Téléchargé 3 fois
a+
fronck
Avatar du membre
ric
Membre impliqué
Membre impliqué
Messages : 1'810
Appréciations reçues : 148
Inscrit le : 29 mai 2018
Version d'Excel : 365 fr

Message par ric » 16 juillet 2019, 12:25

Bonjour,

À propos de ce bout-ci ...
... Par contre, le spinbutton ne fait pas avancer ou reculer le mois dans le combobox comme dans ce fichier, ou il se base sur une cellule cachée en B2. ...
Au début de la macro Sub generer_mois(), il y a mois = SpinButton_mois.Value qu'il faut remplacer par ComboBox1.ListIndex = mois - 1 ... comme dans le fichier que j'ai soumis.

Une fois remplacé ... le SpinButton fait avancer et reculer les mois dans le combobox. :mrgreen:





ric
Un bon dépanneur : la touche F8 pour faire un Pas-à-Pas sur le code. :mrgreen:
Avatar du membre
ric
Membre impliqué
Membre impliqué
Messages : 1'810
Appréciations reçues : 148
Inscrit le : 29 mai 2018
Version d'Excel : 365 fr

Message par ric » 16 juillet 2019, 12:37

Bonjour,
... j'aimerais bien savoir comment cette cellule B2 changeante est générée. ...
Regarde la ligne Cells(2, 1) = Sheets("data").Range("C" & j).Value ' << écriture dans B2 ici
Sub generer_mois()

Application.ScreenUpdating = False

Range("A1:CV100").ClearContents

    ComboBox1.ListIndex = mois - 1
 
'année
 annee = Year(Sheets("cascade").Range("D2"))
 Cells(1, 1) = annee
 
 'mois  1ere col
    'mois en lettres
    For j = 1 To 12
        If Sheets("data").Range("B" & j) = mois Then
        Cells(2, 1) = Sheets("data").Range("C" & j).Value ' << écriture dans B2 ici
        End If
    Next j



ric
Un bon dépanneur : la touche F8 pour faire un Pas-à-Pas sur le code. :mrgreen:
Avatar du membre
fronck
Membre fidèle
Membre fidèle
Messages : 382
Appréciations reçues : 7
Inscrit le : 26 septembre 2015
Version d'Excel : 2016
Contact :

Message par fronck » 16 juillet 2019, 18:55

Bonjour,
Non Ric, je parlais du fichier CP2, feuille 'Mensuel', ici:
Sans titre.png
Sans titre.png (3.92 Kio) Vu 25 fois
en rapport avec la macro de la feuille Mensuel:
Sans titre2.png
Sans titre2.png (3.57 Kio) Vu 22 fois
Concernant mon fichier:
Au début de la macro Sub generer_mois(), il y a mois = SpinButton_mois.Value qu'il faut remplacer par ComboBox1.ListIndex = mois - 1 ... comme dans le fichier que j'ai soumis.
çà bug.
a+
fronck
Avatar du membre
ric
Membre impliqué
Membre impliqué
Messages : 1'810
Appréciations reçues : 148
Inscrit le : 29 mai 2018
Version d'Excel : 365 fr

Message par ric » 16 juillet 2019, 19:19

Bonjour,

Fichier CP2.xlsm > feuille "Mensuel" > B2 et C2 sont écrits à partir du module "Time" ...
Sub PrecSuiv(Plus As Boolean)
Dim Mo As Integer, An As Integer

    With Sheets("Mensuel")
        Mo = .Range("B2")
        An = .Range("C2")
        Mo = Mo + IIf(Plus, 1, -1)
        An = An + IIf(Mo = 0, -1, IIf(Mo = 13, 1, 0))
        Mo = IIf(Mo = 0, 12, IIf(Mo = 13, 1, Mo))
        
        .Range("B2") = Mo  ' <<<<< B2  ici
        .Range("C2") = An  ' <<<<< C2  ici
        
        .ComboBox1.ListIndex = Mo - 1
        .ComboBox2.Value = An
    End With
End Sub
Un bon dépanneur : la touche F8 pour faire un Pas-à-Pas sur le code. :mrgreen:
Avatar du membre
fronck
Membre fidèle
Membre fidèle
Messages : 382
Appréciations reçues : 7
Inscrit le : 26 septembre 2015
Version d'Excel : 2016
Contact :

Message par fronck » 16 juillet 2019, 19:48

Bonjour,
Ok merci.
c'est quoi ce truc à 3 variables: :)
Mo = Mo + IIf(Plus, 1, -1)
a+
fronck
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message