ajuster Userform en fonction de la largeur et de la hauteur du ListBox1

  • Initiateur de la discussion Initiateur de la discussion modus57
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

modus57

XLDnaute Occasionnel
Bonjour à tous.🙂

Comment faire pour ajuster la largeur de l’Userform en fonction de la largeur d'un ListBox1.

En adaptant la procédure ci-dessous trouvée dans un autre forum, la hauteur de l’userform s’adapte à la hauteur du ListBox1.

Code:
Private Sub UserForm_Initialize()
Dim HauteurUserform, HauteurListBox1, HauteurListBox1Niew
    HauteurUserform = Me.Height
    HauteurListBox1 = Me.ListBox1.Height
    With ListBox1
        .ColumnCount = 4
        For i = 1 To Range("liste_data").Rows.Count
            .AddItem Cells(i, 1)
            .List(.ListCount - 1, 1) = Cells(i, 2)
            .List(.ListCount - 1, 2) = Cells(i, 3)
            .List(.ListCount - 1, 3) = Cells(i, 4)
        Next i
        'MsgBox Me.ListBox1.ListCount
        Me.ListBox1.Height = Me.ListBox1.ListCount * 10.5
        
        For i = 1 To .ColumnCount
            With Me.Controls.Add("Forms.TextBox.1", Name:="txtTemp" & i)
                .AutoSize = True
                .MultiLine = True
                .WordWrap = False
                .SelectionMargin = False
                With .Font
                    .Name = ListBox1.Font.Name
                    .Size = ListBox1.Font.Size
                End With
            End With
        Next i
        For i = 0 To .ListCount - 1
            Me.Controls("txtTemp1").Text = Me.Controls("txtTemp1").Text & vbCr & .List(i, 0)
            Me.Controls("txtTemp2").Text = Me.Controls("txtTemp2").Text & vbCr & .List(i, 1)
            Me.Controls("txtTemp3").Text = Me.Controls("txtTemp3").Text & vbCr & .List(i, 2)
            Me.Controls("txtTemp4").Text = Me.Controls("txtTemp4").Text & vbCr & .List(i, 3)
        Next i
        For i = 1 To .ColumnCount
            StrCWidths = StrCWidths & Me.Controls("txtTemp" & i).Width & ";"
            lngTotalWidth = lngTotalWidth + Me.Controls("txtTemp" & i).Width
            Me.Controls("txtTemp" & i).Visible = False
            Me.Controls.Remove ("txtTemp" & i)
        Next i
        .Width = lngTotalWidth + ListBox1.ColumnCount + 5
        .ColumnWidths = StrCWidths
    End With
    HauteurListBox1Niew = Me.ListBox1.Height
    Me.Height = HauteurUserform + (HauteurListBox1Niew - HauteurListBox1)
End Sub

J’ai beau cherché, je ne trouve pas de solution pour ajuster aussi la largeur.

Qui aurait une petite idée.

Merci d’avance pour votre réponse.
 
Dernière édition:
Re : ajuster Userform en fonction de la largeur et de la hauteur du ListBox1

RE :

C'est tout de suite plus parlant.

Il suffit donc d'ajouter la ligne Me.Width = ListBox1.Width + (ListBox1.Left * 2) juste avant la fin de la procédure.

Vois sur la copie de ton fichier ci-joint.

Cordialement.
 

Pièces jointes

Re : ajuster Userform en fonction de la largeur et de la hauteur du ListBox1

Re bonjour.

C'est super ça marche.

J'ai pas pensé à ta solution
Code:
Me.Width = ListBox1.Width + (ListBox1.Left * 2)

Si j'ai bien compris, il faut ajouter 2 x l'espace de gauche du ListBox1 au ListBox1.

Pourrais-tu confirmer SVP.
 
Re : ajuster Userform en fonction de la largeur et de la hauteur du ListBox1

Re bonjour.

C'est super ça marche.

J'ai pas pensé à ta solution
Code:
Me.Width = ListBox1.Width + (ListBox1.Left * 2)

Si j'ai bien compris, il faut ajouter 2 x l'espace de gauche du ListBox1 au ListBox1.

Pourrais-tu confirmer SVP.

RE :

Oui, j'ai ajouté deux fois l'espace de gauche de la liste déroulante afin de la centrer dans la fenêtre. Mais rien ne t'empêche de définir une valeur fixe si tu le préfères.

Cordialement.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
417
  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
374
Réponses
3
Affichages
766
Réponses
10
Affichages
809
Réponses
4
Affichages
524
Retour