Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2013 probleme combobox listindex -1 même avec une valeur

patricktoulon

XLDnaute Barbatruc
Bonjour a tous
j'ai eu un retour étonnant d'une app que j'ai fait il y a 4/5 ans
en effet j'avais fait un mini calendar sur la base du model simply et zoomable car mon calendar V5 perso était trop gros
a l’époque j'ai fait ça sur 2007 et ça fonctionnait très bien
j'explique mon problème
par vba je met la valeur 2024 dans ma combobox "CBA"
alors ça fonctionne très bien mais des que je clique sur le dropbutton on voit bien que la liste démarre à 1900 alors que je suis sur 2024
si je clique sur le dropbutton et que je sélectionne 2024 et que je re clique sur le dropbutton on voit bien que la liste est en position sur 2024

grosso modo pour la faire courte le changement du value par vba ne me change plus le listindex

j'ai donc fait une copie de ce petit calendrier pour la discussion

on l'appelle comme ca a partire d'une cellule(5) étant la plus grosse taille et (1) la plus petite
VB:
'Target = MiniCal.showX(object appelant, zize)'argument size de 1 à 5
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
Target = MiniCal.showX(Target, 5)
Cancel = True
End Sub
je joint un fichier exemple
 

Pièces jointes

  • mini Calendar.xlsm
    22.4 KB · Affichages: 1

TooFatBoy

XLDnaute Barbatruc
Bonjour,

Franchement, je n'ai rien compris à ta question, alors désolé si je réponds complètement à côté...

Peut-être qu'il manque un truc genre
VB:
    CBA.ListIndex = Val(CBA) - 1900
à la fin de la macro "UserForm_Activate" ?
 

TooFatBoy

XLDnaute Barbatruc
visiblement tu a très bien compris le problème
OK. Tant mieux.


sauf que normalement on ne devrait pas avoir à faire ça
quand tu tape une valeur dans une combo qui existe dans sa liste le listindex est automatique puisque c'est auto selectionné
Je croyais que tu parlais de l'ouverture du UserForm, et non de la saisie dans la ComboBox.

Il me semble que l'assignation par VBA ne suffit pas et qu'on est obligé de modifier le ListIndex.
Du moins c'est que me dit ma mémoire (très souvent défaillante, il est vrai).
Je viens de regarder le code de plus près et c'est d'ailleurs aussi ce que tu fais pour le mois.


[edit]
Je viens d'essayer de faire comme tu as dit, c'est-à-dire de taper une année dans la ComboBox, mais il y a un problème : on ne peut apparemment saisir qu'un seul chiffre.
[/edit]
 
Dernière édition:

TooFatBoy

XLDnaute Barbatruc
Personnellement je ne mets jamais de nombre dans la List d'une ComboBox. Toujours seulement des textes pour qu'ils puissent être tapés et alors reconnus comme en faisant partie.
J'ai bien testé un truc à ce sujet, mais c'était probablement l'inverse qu'il fallait tester.
Je n'ai pas approfondi pour l'instant car je suis en train de regarder une série télévisée d'Arte...

Justement, j'étais en train de me demander si ça pouvait avoir une influence.
 

patricktoulon

XLDnaute Barbatruc
re
j'"ai permis le tapé dans CBA et on voit bien que l'events n'est pas déclenché

edit je me suit trompé
c'est
VB:
Private Sub CBA_Change()
If Len(CBA.Text) < 4 Then Exit Sub
reloadClavier: End Sub
mais rien n'y fait il n'y a pas d"events
 

Pièces jointes

  • mini Calendar.xlsm
    28.8 KB · Affichages: 0

patricktoulon

XLDnaute Barbatruc
re Du coup, est-ce que ce ne serait pas à la fin de reloadClavier qu'il faudrait ajouter un truc du genre :
VB:
CBA.ListIndex = Val(CBA) - Val(CBA.List(0))
oui ça ferait le laron bien sur mais pourquoi faut il le faire avant il fallait pas

bon la on peut taper sans erreur je l'ai mis en matchentrycomplete
mais il n'y a toujours pas la sélection automatique
par contre le pavé du calendar change
bizarre ce truc
 

Pièces jointes

  • mini Calendar.xlsm
    29.7 KB · Affichages: 0

patricktoulon

XLDnaute Barbatruc
re
bon ben j'ai trouvé c'est dranreb qui m'a mis sur la voie
VB:
'CBA.List = Evaluate("row(1900:" & Year(Date) + 100 & ")")
    For i = 1900 To Year(Date) + 100: CBA.AddItem (i): Next
il semblerait qu'une simple boucle même si j'ajoute des items numérique ca marche
 

TooFatBoy

XLDnaute Barbatruc
oui ça ferait le laron bien sur mais pourquoi faut il le faire avant il fallait pas
Comme dit précédemment, dans ma mémoire il y a écrit que c'était déjà le cas avant aujourd'hui.
Mais peut-être me trompé-je, surtout si ton truc fonctionnait avant ça.

J'ai essayé de mettre expressément des textes ("1900", "1901", "1902", etc.), mais même là ça ne semble pas fonctionner ton truc.



l semblerait qu'une simple boucle même si j'ajoute des items numérique ca marche
Ah ben cool.

Allez zou, je retourne définitivement à ma série télé.
 

patricktoulon

XLDnaute Barbatruc
re
si si ça fonctionnait avant
c'est le tableau evaluate qui me donne un tableau de valeur de type inconnu
d'ailleurs celui là fonctionne
c'est quoi la serie que tu regarde ?
 

Pièces jointes

  • mini Calendar.xlsm
    29.8 KB · Affichages: 0

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…