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

Résolu
1Alexiiis
Messages postés
48
Date d'inscription
vendredi 14 juin 2013
Statut
Membre
Dernière intervention
14 décembre 2020
- 26 nov. 2018 à 21:10
1Alexiiis
Messages postés
48
Date d'inscription
vendredi 14 juin 2013
Statut
Membre
Dernière intervention
14 décembre 2020
- 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

2 réponses

Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
21
1 déc. 2018 à 12:46
Bonjour,

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

1
1Alexiiis
Messages postés
48
Date d'inscription
vendredi 14 juin 2013
Statut
Membre
Dernière intervention
14 décembre 2020

1 déc. 2018 à 16:12
Bonjour,

Avec ce code, la ListBox ajoute toujours la ScrollBar + la hauteur se modifie quand même (mais moins)
0
Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
21
1 déc. 2018 à 18:54
C'est que ta listbox n'est pas assez haute !
0
1Alexiiis
Messages postés
48
Date d'inscription
vendredi 14 juin 2013
Statut
Membre
Dernière intervention
14 décembre 2020

9 déc. 2018 à 18:40
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...
0
vb95
Messages postés
2629
Date d'inscription
samedi 11 janvier 2014
Statut
Modérateur
Dernière intervention
13 mai 2022
151
28 nov. 2018 à 05:56
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 .
0
1Alexiiis
Messages postés
48
Date d'inscription
vendredi 14 juin 2013
Statut
Membre
Dernière intervention
14 décembre 2020

28 nov. 2018 à 19:19
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)
0
vb95
Messages postés
2629
Date d'inscription
samedi 11 janvier 2014
Statut
Modérateur
Dernière intervention
13 mai 2022
151 > 1Alexiiis
Messages postés
48
Date d'inscription
vendredi 14 juin 2013
Statut
Membre
Dernière intervention
14 décembre 2020

Modifié le 29 nov. 2018 à 19:16
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

0
1Alexiiis
Messages postés
48
Date d'inscription
vendredi 14 juin 2013
Statut
Membre
Dernière intervention
14 décembre 2020

1 déc. 2018 à 16:00
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 :
0