Pb Affichage dans listbox

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 !

p.pat27

XLDnaute Junior
Slt a tous les fous du VBA
j'ai encore besoin d'un peu d'aide!
Je rencontre un problème d'affichage avec une listbox dans laquelle j'ai rapatrié une liste de fichier. Certain nom de fichier sont très long car composé d'une sorte de code qui se termine par la date de création du fichier (ceci est imposé; donc stop au bidouilleurs qui auraient voulu mettre plusieurs colonnes) et donc dépasse de la listbox : on ne voit donc pas la fin du nom du fichier !!
Je cherche donc la propriété de la listbox qui permettrai d'afficher dans une "bulle", ou bien comme dans l'explorateur windows le petit cadre qui apparait au bout de 2 secondes avec le nom complet.

Fait travailler vos neurones, le mien a explosé (Eh oui! y'en a qu'un)

A+
Pat
 
Re : Pb Affichage dans listbox

Bonjour,

Une piste avec la démarche suivante

RESTRICTIONS
1) Ceci ne fonctionne qu'avec un UserForm vbModal. Le programme plante en vbModeless et je ne sais pas pourquoi.
2) L'ouverture du Userform doit se faire par l'intermédiaire de l'instruction UserForm1.Show vbModal.
Si vous le lancer directement à partir de sa fenêtre de conception dans le VBE par la touche F5, le programme plante.

MARCHE A SUIVRE
1) Dans un nouveau classeur, renommez une feuille "test" et renseignez-la avec du texte plus ou moins long
2) Créez un UserForm1 et une ListBox1
3) Dans la fenêtre de code du UserForm, copiez le code suivant
Code:
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Dim OL As OLEObject

Private Sub ListBox1_MouseDown(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal y As Single)
Dim i&
Dim j&
Dim L As msforms.Label
On Error GoTo Erreur
If Button = 2 Then
  For i& = 0 To ListBox1.ListCount - 1
    If ListBox1.Selected(i&) = True Then
      Application.ScreenUpdating = False
      Set OL = ActiveSheet.OLEObjects.Add(ClassType:="Forms.Label.1", Link:=False, _
        DisplayAsIcon:=False, Left:=Me.Left - 20, Top:=10, Width:=500, Height:=100)
      Set L = OL.Object
      L.TextAlign = fmTextAlignLeft
      L.Caption = ListBox1.Value
      L.Font.Underline = False
      L.AutoSize = True
      L.BackColor = RGB(255, 255, 190)
      Application.ScreenUpdating = True
      Exit For
    End If
  Next i&
End If
Erreur:
If Err <> 0 Then MsgBox "coucou"
End Sub

Private Sub ListBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal x As Single, ByVal y As Single)
If Button = 2 Then
  If Not OL Is Nothing Then
    Sleep 500
    OL.Cut
    Set OL = Nothing
  End If
End If
End Sub

Private Sub UserForm_Initialize()
Dim var
var = Sheets("test").UsedRange
With ListBox1
  .List = var
End With
End Sub
4) Créez un module standard et copiez le code suivant
Code:
Sub Lancer()
UserForm1.Show vbModal  'IMPERATIF en modal sinon plantage (je n'ai pu en identifier la raison ???)
End Sub
5) Faites tourner la macro Lancer, sélectionnez un item dans la liste puis faites un clic droit.
L'intégralité du texte de l'item sélectionné apparaît dans un contrôle Label de la feuille active pendant une demi seconde.
Si vous faites clic droit MAINTENU, le Label reste affiché jusqu'à la relache du clic droit.

Cordialement.

PMO
Patrick Morange
 
Re : Pb Affichage dans listbox

Merci PMO2 d'avoir usé tes neurones sur mon problème 😉

ça marche super bien avec ton fichier joint, mais lorsque je recopie le code dans un nouveau fichier, là ça bug!!! erreur d'execution'381'
Il reconnait pas vbModal ???

Pat
 
Re : Pb Affichage dans listbox

Bonjour,

A tout hasard, remplacez

Sub Lancer()
UserForm1.Show vbModal 'IMPERATIF en modal sinon plantage (je n'ai pu en identifier la raison ???)
End Sub

par

Sub Lancer()
UserForm1.Show
End Sub

et, dans la fenêtre de propriétés de l'UserFom, mettez la propriété ShowModal sur True

Est-ce mieux ?

Cordialement.

PMO
Patrick Morange
 
- 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
Retour