Combobox active X

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

merci

fronck

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

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

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

Salut,

j'enlèves cette partie, çà bug à l'ouverture:

sans titre

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.

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.

4cp2.xlsm (238.89 Ko)

a+

fronck

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.

ric

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

Bonjour,

Non Ric, je parlais du fichier CP2, feuille 'Mensuel', ici:

sans titre

en rapport avec la macro de la feuille Mensuel:

sans titre2

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

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

Bonjour,

Ok merci.

c'est quoi ce truc à 3 variables:

Mo = Mo + IIf(Plus, 1, -1)

a+

fronck

Bonjour,

IIf = si ... sinon

Si Plus = Vrai, l'on ajoute 1 à Mo

Si Plus = Faux, l'on soustrait 1 à Mo

La valeur Vrai ou Faux de Plus est déterminé en cliquant sur le bouton Prec

Sub Prec(Optional X As Byte)
    PrecSuiv False
End Sub

ou le bouton suiv

Sub suiv(Optional X As Byte)
    PrecSuiv True
End Sub

Chacun fait appel à la macro Sub PrecSuiv(Plus As Boolean) en lui passant un paramètre False or True. Paramètre qui est repris par la variable Plus déclarée Boolean, c'est à dire True or False.

Pas sûr d'avoir été suffisamment descriptif.

ric

C'est trés clair, merci.

fronck

Rechercher des sujets similaires à "combobox active"