UserForm : ListBox - Réduction taille automatique non souhaitée [Résolu]

Messages postés
38
Date d'inscription
vendredi 14 juin 2013
Dernière intervention
9 décembre 2018
- - Dernière réponse : 1Alexiiis
Messages postés
38
Date d'inscription
vendredi 14 juin 2013
Dernière intervention
9 décembre 2018
- 9 déc. 2018 à 18:40
Bonjour,

Pouvez vous me dire pourquoi ma ListBox change de hauteur automatiquement alors que je ne veux pas ??
Et comment faire pour ne plus que cela se modifie automatiquement ?

Voici des captures pour mieux comprendre :

J'ai défini la hauteur dans les propriétés de la ListBox pour qu'elle s'affiche comme cela :

Mais dès que je clique sur le bouton "Valider", la ListBox se réduit en hauteur et donc affiche une ScrollBar :




Dans mon bouton "Valider" il n'y a rien qui correspond à une modification de taille...

Private Sub cmdVALIDER_Click()
    Sheets("Fichier Aide").Cells(NumLigne + 2, 7) = cboCOMMENTAIRE.Value
    If Me.lstRESULTATS.ListIndex = Me.lstRESULTATS.ListCount - 1 Then
        MsgBox "Vous avez atteint le dernier enregistrement !", vbInformation, "Dernier enregistrement atteint"
    Else: Me.lstRESULTATS.ListIndex = Me.lstRESULTATS.ListIndex + 1
    End If
End Sub



Merci d'avance pour votre aide !
Alexis
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
7443
Date d'inscription
dimanche 13 juin 2010
Dernière intervention
9 décembre 2018
1
Merci
Bonjour,

Dans initialize, essaies :
Me.lstRESULTATS.IntegralHeight = False 

Merci Patrice33740 1

Heureux de vous avoir aidé ! Vous nous appréciez ? Donnez votre avis sur nous ! Evaluez CodeS-SourceS

Codes Sources a aidé 96 internautes ce mois-ci

1Alexiiis
Messages postés
38
Date d'inscription
vendredi 14 juin 2013
Dernière intervention
9 décembre 2018
-
Bonjour,

Avec ce code, la ListBox ajoute toujours la ScrollBar + la hauteur se modifie quand même (mais moins)
Patrice33740
Messages postés
7443
Date d'inscription
dimanche 13 juin 2010
Dernière intervention
9 décembre 2018
-
C'est que ta listbox n'est pas assez haute !
1Alexiiis
Messages postés
38
Date d'inscription
vendredi 14 juin 2013
Dernière intervention
9 décembre 2018
-
Effectivement, j'ai augmenté la taille et ça ne le fait plus. Merci
Mais ça reste étrange car sur Excel 2013 je n'avais pas le problème alors sur Excel 2016 ça se modifiait...
Commenter la réponse de Patrice33740
Messages postés
1724
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
9 décembre 2018
0
Merci
bonjour
Essaie simplement avec ceci :
Private Sub cmdVALIDER_Click()
    Sheets("Fichier Aide").Cells(NumLigne + 2, 7) = cboCOMMENTAIRE.Value
End Sub


Car je ne comprends nullement pourquoi tu testes si tu es au dernier enregistrement ni pourquoi tu incrémentes
Me.lstRESULTATS.ListIndex = Me.lstRESULTATS.ListIndex + 1


Car ou tu entres un nouvel enregistrement et tu le valides ( il s'ajoute à la listbox ) ou tu sélectionnes un enregistrement dans le listbox : cela remplit la sélection et tu le modifies et à la fin tu valides son enregistrement .
1Alexiiis
Messages postés
38
Date d'inscription
vendredi 14 juin 2013
Dernière intervention
9 décembre 2018
-
Bonjour,

Ce code c'est pour passer à la ligne du dessous dans la ListBox une fois que le commentaire s'est ajouté (via le bouton Valider)
Me.lstRESULTATS.ListIndex = Me.lstRESULTATS.ListIndex + 1


J'ai enlevé ce code pour laisser uniquement l'ajout du commentaire mais le problème est toujours présent.

Je pense que c'est un bug selon la version d'Excel
- Sur Excel 2016 : J'ai le problème
- Sur Excel 2013 : Pas de problème (la taille ne se change pas)
vb95
Messages postés
1724
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
9 décembre 2018
> 1Alexiiis
Messages postés
38
Date d'inscription
vendredi 14 juin 2013
Dernière intervention
9 décembre 2018
-
Bonjour !
A tout hasard en supposant que la hauteur de la Listbox est de 150 à l'origine rajoutes à ton code la dernière ligne
Private Sub cmdVALIDER_Click()

    Sheets("Fichier Aide").Cells(NumLigne + 2, 7) = cboCOMMENTAIRE.Value
    If Me.lstRESULTATS.ListIndex = Me.lstRESULTATS.ListCount - 1 Then
        MsgBox "Vous avez atteint le dernier enregistrement !", vbInformation, "Dernier enregistrement atteint"
    Else
        Me.lstRESULTATS.ListIndex = Me.lstRESULTATS.ListIndex + 1
    End If
    Me.lstRESULTATS.Height = 150 ' ligne à rajouter avec la hauteur d'origine

End Sub

1Alexiiis
Messages postés
38
Date d'inscription
vendredi 14 juin 2013
Dernière intervention
9 décembre 2018
-
Bonjour,

J'ai remplacé ta hauteur par celle de ma ListBox initiale.
Résultat : la hauteur se modifie quand même + ajoute une ScrollBar + Bug au niveau de la dernière ligne :
Commenter la réponse de vb95

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.