XL 2010 Affichage TextBox au premier plan

JM27

XLDnaute Barbatruc
Bonjour
Comment faire pour afficher la textbox au premier plan , sans toucher au positionnement de celle ci par rapport à la listbox et en gardant la list box affichée
je souhaiterai la voir au dessus de la list box
merci de votre aide
 

Pièces jointes

  • Classeur1.xlsm
    22.2 KB · Affichages: 27

patricktoulon

XLDnaute Barbatruc
re
demo3.gif


:p :p :p :p :p
 

patricktoulon

XLDnaute Barbatruc
ca n'a rien a voir j'ai fait ca en 1 minute et je rejoint jmfmarques

il faut gérer en fonction des font sizes pour le placement mesurable avec un label
il faut mémoriser les width column de la liste
et j'en passe et des meilleurs

VB:
Dim w&
Private Sub ListBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Frame1.Visible = True
Frame1.ZOrder 0
With ListBox1
If X > Cells(1).Width Then xx = Cells(1).Width:  w = 2 Else xx = 0: w = 1
Frame1.Top = .Top + (10.3 * .ListIndex)
Frame1.Left = .Left + xx
Frame1.Height = 13
Frame1.Width = Cells(w).Width
TextBox1.Width = Cells(w).Width
TextBox1.Height = 13
TextBox1.Top = 0
TextBox1.Value = .List(.ListIndex, w - 1)
End With

End Sub


Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
With ListBox1
.List(.ListIndex, w - 1) = TextBox1.Value
End With
Frame1.Visible = False
End If
End Sub

Private Sub UserForm_Activate()
With ListBox1
.List = Cells(1, 1).Resize(5, 2).Value
.ColumnCount = 3
.ColumnWidths = Cells(1).Width & "pt;" & Cells(2).Width & "pt"
End With
End Sub
 

Staple1600

XLDnaute Barbatruc
Re

Dans ce cas pourquoi poster le gif avant le code VBA?
[humour avec une légère pointe de causticité]
Ca ressemble sérieusement à du: "je me fais mousser"
Mais tu as raison, la mousse quand elle est bactéricide est très demandée ces derniers jours ;)
Sans rancune, hein? ;)
De toute façon, on sera tous bientôt HS si on en croit BEFEME.TV ;)
[/humour avec une légère pointe de causticité]
 

patricktoulon

XLDnaute Barbatruc
re
le seul soucis que l'on a avec ca c'est le height du textbox qui apres une limite tronque le texte sur le bas

mais bon avec un label et une listebox avec fontsize de 11 au minimum ca donne un résultat correcte
IMPORTANT LE LABEL SANS BORDURE ET EN AUTOSIZE

LES height c'est label1.height+2 au minimum pour un font size de 11
VB:
Dim w&
Private Sub ListBox1_MouseUp(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single)
Frame1.Visible = True
Frame1.ZOrder 0
With ListBox1
If X > Cells(1).Width Then xx = Cells(1).Width:  w = 2 Else xx = 0: w = 1
Frame1.Top = .Top + (Label1.Height * (.ListIndex))
Frame1.Left = .Left + xx
Frame1.Height = Label1.Height + 2
Frame1.Width = Cells(w).Width
TextBox1.Width = Cells(w).Width
TextBox1.Height = Label1.Height + 2
TextBox1.Top = 0
TextBox1.Value = .List(.ListIndex, w - 1)
End With

End Sub


Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
With ListBox1
.List(.ListIndex, w - 1) = TextBox1.Value
End With
Frame1.Visible = False
End If
End Sub

Private Sub UserForm_Activate()
With ListBox1

With Label1: .Font.Size = ListBox1.Font.Size: End With
.List = Cells(1, 1).Resize(5, 2).Value
.ColumnCount = 3
.ColumnWidths = Cells(1).Width & "pt;" & Cells(2).Width & "pt"
End With
End Sub
 

Pièces jointes

  • textbox on listbox .xlsm
    16 KB · Affichages: 7

JM27

XLDnaute Barbatruc
Bonjour
Non ce n'est pas une utopie
C'est uniquement pour apporter une précision sur un des items de la list box.
tout simplement.
voir le fichier ci-dessous
Si tu as une meilleure solution , je suis preneur
 

Pièces jointes

  • Classeur1.xlsm
    24.6 KB · Affichages: 11
Dernière édition:

jmfmarques

XLDnaute Accro
C'est uniquement pour apporter une précision sur un des items de la list box.
tout simplement.
Je ne vois dans ce cas aucune nécessité de mettre à une telle fin la textbox au premier plan par rapport à la listbox.
Je ne vois d'ailleurs au passage aucune nécessité d'utiliser dans ce cas une textbox alors que suffirait une saisie via une simple InputBox :(
 

jmfmarques

XLDnaute Accro
Sauf si tu as 15 list box ayant ce fonctionnement , donc 15 input box ??
Quoi ? Plait-il ?
Je ne sais pas si tu prends vraiment la mesure de ce que tu as écrit là !
- Une inputbox n'est pas un objet, mais une boîte de dialogue
- on ne crée pas une inputbox (et encore moins une par listbox), on ouvre cette boîte de dialogue quand on en a le besoin
- on ne saurait "créer"/ouvrir plusieurs boîtes de dialogue à la fois (une boîte de dialogue est modale)
- une boîte de dialogue se ferme seule à la fin de son utilisation.
Je crois qu'il est peut-être temps que tu commences à t'intéresser aux choses les plus fondamentales. Ce te sera de la plus grande utilité.
Amitiés et bonne chance.
 

JM27

XLDnaute Barbatruc
Allez lâche moi, merci de m'expliquer comment m'en passer.
Est-ce que j'ai dit qu'une input box était un objet ??
J'ai vu , a la lecture de tes nombreux post sur les autres sujets que tu était un spécialiste du comment s'en passer.( et tu t'es déjà pris plusieurs remarques , par d'autre bien plus fort que moi en vba)
il est temps que tu réfléchisses à ton comportement sur ce site
Merci de passer ton chemin
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 362
Messages
2 087 634
Membres
103 617
dernier inscrit
cisco1