cs_sql84
Messages postés21Date d'inscriptionmercredi 31 janvier 2007StatutMembreDernière intervention24 novembre 2007
-
18 nov. 2007 à 13:24
cs_sql84
Messages postés21Date d'inscriptionmercredi 31 janvier 2007StatutMembreDernière intervention24 novembre 2007
-
18 nov. 2007 à 14:27
Bonjour la communauté,
J'ai un petit soucie concernant la selection d'un index dans un ComboBox, je vous explique en quelques mots de quoi il retourne.
j'ai sur une feuille de calcul les dates. en A1:A31 j'ai les jours, en B1:B12 j'ai les mois et en C1:C94 j'ai les années de 2007 à 2100
jusque là pas de problème.
Dans VB j'ai créer un UserForm avec 3 ComboBox (2, 3, 4) dans chacun d'entres eux j'alloue une plage définie sur ma feuille de calcul :
ComboBox2.RowSource = "dates!A1:A31"
ComboBox3.RowSource = "dates!B1:B31"
ComboBox4.RowSource = "dates!C1:C94"
jusque là pas de problème, lorsque je lance le UserForm, mes Combo contiennent bien les valeurs de mes plages.
Maintenant dans le cas d'une modification d'enregistrement, j'ai créer un autre UserForm pour pouvoir modifier les enregistrements présents. je souhaite donc préselectionner l'index des ComboBox pour afficher la date inscrite dans l'enregistrement
j'ai fait une procedure qui permet de récupérer une date (11/15/2007 par exemple) et d'extraire le mois, le jour et l'année dans 3 variables. je me sert ensuite de ces valeurs pour préselectionner l'index du Combo comme suit :
' Afficher le jour
UserForm11.ComboBox2.ListIndex = JourDate - 1
' Affiche le mois
UserForm11.ComboBox3.ListIndex = MoisDate - 1
' Affiche l'annee
UserForm11.ComboBox4.ListIndex = AnneeDate
' Affiche le formulaire
UserForm11.Show
Lorsque je lance le UserForm mon ComboBox2 et 3 ont bien les valeurs préselectionnées (15 pour le jour, 11 pour le mois)
par contre le ComboBox4 qui doit afficher l'année reste sans valeur et j'ai une erreur qui me plante le programme :
Erreur d'execution '380'
Impossible de définir la propriété ListIndex. Valeur de propriete non valide
losque j'analyse le résultat du debuggage je constate que ma propriete listIndex est à -1
MsgBox(UserForm11.ComboBox4.ListIndex)
Ma question est la suivante, avez vous une idée de ce qui provoque cela, et si oui avez vous une solution ?
Par avance je remercie toutes les bonnes volontés de leurs aides.
cs_sql84
Messages postés21Date d'inscriptionmercredi 31 janvier 2007StatutMembreDernière intervention24 novembre 2007 18 nov. 2007 à 13:51
Salut,
ma valeur vaut 2007
puisque c'es le resultat de ma prodecure pour récuperer le jour, le mois et l'année
JourDate vaut 15
MoisDate vaut 11
AnneeDate vaut 2007
mais je vient de comprendre...
mes listes de dates pour les jours et les mois commence à 1
alors que pour les année cela commence à 2007
en fait avec ce code j'alloue la valeur de la case 2007 ? n'est-ce pas ?
ComboBox4.ListIndex = AnneeDate
auriez vous une solution à me proposer pour regler cela ?
Et encore Merci !!
cs_sql84
Messages postés21Date d'inscriptionmercredi 31 janvier 2007StatutMembreDernière intervention24 novembre 2007 18 nov. 2007 à 14:05
re,
oui effectivement,
tu me conseille de revoir l'allocation de la plage de
ComboBox4.RowSource = "dates!C1:C94"
à
ComboBox4.RowSource = "dates!C1:C93" ?
je vais essayer
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_sql84
Messages postés21Date d'inscriptionmercredi 31 janvier 2007StatutMembreDernière intervention24 novembre 2007 18 nov. 2007 à 14:14
Haaa
excuse j'avais pas vu la première ligne
Tout simplement : UserForm11.ComboBox4.ListIndex = AnneeDate-2007
je vient de comprendre dans ce cas l'index sera 0 et mon index sera bon
pour 2008 l'index sera 1 et ainsi de suite
au TOP t'es vraiment un gourou !
je vient de tester, j'ai bien l'index dans ma variable AnneeDate, mais le problème persiste (même erreur)
cela ne viendrais t-il pas que ma variable est un String ?
Dim AnneeDate as String