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

Réinitialisation de l'affichage d'une listbox

F

Francis

Guest
Bonjour le forum et mes meilleurs à tous,

Pascal76 m'avais donné les renseignement suivants l'année dernière pour ce Pb, mais pour cause de vacances je n'ai pu lui demandé des explications:

- Dans mon userform, j'ai une Listbox et deux CheckBox pour afficher telles ou telles colonnes ds la listbox. j'aimerais qu'après un click sur une checkbox, l'affichage ds ma listbox ne revienne pas à la 1ère ligne.
Francis

- Tu peux peut-être sur l'evenement click de tes checkbox récupérer en premier la valeur de ta listbox dans une variable, continuer le code et en fin de code retourner la valeur de ta listbox avec la valeur de ta variable.

Pascal

Est ce que quelqu'un sait de quelle(s) valeur(s) parle Pascal.

Merci pour votre aide

Francis
 
M

myDearFriend

Guest
Bonsoir Francis, le Forum.


Je suppose que notre ami Pascal76 te parlait de la propriété ListIndex de ta ListBox :

Private Sub CheckBox1_Click()
Dim Idx As Byte
   Idx = ListBox1.ListIndex
   ..
   (ICI TON TRAITEMENT)
   ..
   ListBox1.ListIndex = Idx
End Sub


Cordialement.

Didier_mDF
 
F

Francis

Guest
Bonsoir MyDearFriend, bonsoir à tous,

Merci pour ta réponce Didier_mDF.
j'ai insérer ton code en déclarant Idx au début par
Private Idx as Byte
et en renommant ListBox1 par son nom ds mon utilisation, mais quand je l'execute il me met une erreur d'execution '6' ; dépassement de capacité. mon index est à 426 sur une liste de + de 3000.

Y a t'il autre chose à ajouter, sinon d'ou peut venir cette erreur?

Francis
 
M

myDearFriend

Guest
Re- Francis,


Une liste de 3000 items... lol !


Dans ce cas, il te faut modifier la déclaration de la variable Idx, remplace :

   Dim Idx As Byte -------> Maxi 255 !!!

Par :

   Dim Idx As Integer ----> Maxi 32767


Cordialement.

Didier_mDF
 
F

Francis

Guest
Bonjour Didier_mDF, le forum,

j'avais effectivement remplacé Byte par Integer,ce qui m'a supprimé l'erreur, mais ma ListBox repart à la première ligne comme avant. j'ai pourtant bien retransmis la bonne valeur a listbox.Index avant de sortir de mon traitement du Click (Range("a1") = Listbox.Index) pour vérif.

je ne comprend pas?

Francis
 
M

myDearFriend

Guest
Bonsoir Francis,


C'est difficile de te dire, comme ça, ce qui ne va pas dans ton code, peut-être pourrais-tu joindre ton fichier ici (ou une partie seulement) afin que l'on puisse voir...

A moins que...
Tu dis "j'ai pourtant bien retransmis la bonne valeur a listbox.Index avant de sortir de mon traitement du Click (Range("a1") = Listbox.Index)"... heu... je vois deux erreurs dans cette phrase :

   1/ Il s'agit de ListBox.ListIndex (et non ListBox.Index).

   2/ En fin de code, si je veux réaffecter la bonne valeur à ListBox.ListIndex, je fais ListBox.ListIndex = Valeur (et non l'inverse).

S'il s'agit de simples erreurs de retranscription, alors désolé, je confirme qu'il conviendrait de joindre ton fichier ici Francis....


Cordialement.

Didier_mDF
 

Discussions similaires

F
Réponses
1
Affichages
977
P
F
Réponses
0
Affichages
902
Francis
F
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…