Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2010 Textbox

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 !

nabilexcel2007

XLDnaute Occasionnel
Bonjour
j'aimerai mettre des texbox en m'affichant le contenu de cellule a la selection de ma Listbox
par ex:
quand je selectionne ma ligne sur listbox les textbox s'affiche
Merci
 

Pièces jointes

Bonjour,
svp j'ai mis mon classeur a l’épreuve je travail sur une base de donnée volumineuse je peux pas vous envoyer le classeur vu les données des personnes
problème : je cherche un N° dossier quand je sélectionne la ligne dans la listbox les texbox ne s'affichent pas!!!

Private Sub ListBox1_Click()

Dim col, lig As Variant, i As Byte
col = Array(1, 2, 3, 4, 5, 6, 9, 10, 13, 14, 15, 16, 18, 19) 'numéros des colonnes à récupérer
With [Tab_BD] 'tableau structuré
lig = Application.Match(ListBox1, .Columns(1), 0)
For i = 2 To UBound(col) + 2
If IsError(lig) Then Me("TextBox" & i) = "" Else Me("TextBox" & i) = .Cells(lig, col(i - 2))
Me("TextBox" & i).Visible = True
Next
End With
End Sub

Private Sub TextBox1_Change()

If Me.TextBox1 <> "" Then
mots = Split(Trim(Me.TextBox1), " ")
Tbl = choix
For i = LBound(mots) To UBound(mots)
Tbl = Filter(Tbl, mots(i), True, vbTextCompare)
Next i
If UBound(Tbl) > -1 Then
Dim b(): ReDim b(1 To UBound(Tbl) + 1, 1 To Ncol)
For i = LBound(Tbl) To UBound(Tbl)
a = Split(Tbl(i), "*")
For k = 1 To Ncol: b(i + 1, k) = a(k - 1): Next k
Next i
Me.ListBox1.List = b
Me.Label1.Caption = UBound(Tbl) + 1 & " Ligne(s)"
End If
Else
Userform_Initialize
End If
End Sub
Private Sub TextBox1_Enter()
Dim i As Byte
For i = 2 To 15 'à adapter
Me("TextBox" & i).Visible = True
Next
End Sub

Private Sub Userform_Initialize()

Set f = Sheets("BD")
ColVisu = Array(1, 2, 3, 4, 5, 6, 9, 13, 14) ' colonnes à visualiser
Set Rng = f.Range("Tab_BD")
bd = Rng.Value 'on colle la table Excel dans un tableau VBA
Ncol = UBound(ColVisu) + 1
'-- en têtes de colonne ListBox
x = 9
Y = Me.ListBox1.Top - 12
For Each k In ColVisu
Set Lab = Me.Controls.Add("Forms.Label.1")
Lab.Caption = f.Cells(1, k)
Lab.Top = Y
Lab.Left = x
x = x + f.Columns(k).Width * 0.9
temp = temp & f.Columns(k).Width * 0.9 & ";"
Next
temp = Left(temp, Len(temp) - 1)
Me.ListBox1.ColumnCount = UBound(ColVisu) + 1
Me.ListBox1.ColumnWidths = temp
'--
TblTmp = Rng.Value
For i = LBound(bd) To UBound(bd)
ReDim Preserve choix(1 To i)
For Each k In ColVisu
choix(i) = choix(i) & bd(i, k) & "*"
Next k
Next i
'--- valeurs initiales dans ListBox
Dim Tbl(): ReDim Tbl(1 To UBound(bd), 1 To Ncol)
For i = 1 To UBound(bd)
c = 0
For Each k In ColVisu
c = c + 1: Tbl(i, c) = bd(i, k)
Next k
Next i

Me.StartUpPosition = 0
Me.Top = -20
Me.Left = 0
Me.Height = Application.Height + 20
Me.Width = Application.Width

'TriMultiCol Tbl, LBound(Tbl), UBound(Tbl), 1
Me.ListBox1.List = Tbl
Me.Label1.Caption = Me.ListBox1.ListCount & " Ligne(s)"
ParametresHtml "Géstion des documents Archive"

Me.StartUpPosition = 3
end sub
 
bonjour
je vous jure que j'ai rien toucher au code j'ai juste supprimer les données de ma base et quand j'ai fait la rechercehe dans textbox ca a marcher bizarre!!! mais j'ai découvert un autre problème
il peux y avoir 2 N° dossier pareil dans la selection de ma listbox les textbox ne changent pas.

j'ai aussi mis un autre userform pour le filtre des donnees : rech par N° doissier et cote et emplacement et nom et phase et etat .
je voulais aussi mettre un bouton modifier et supprime j'ai pas pue
Merci
 

Pièces jointes

Ci-joint le fichier du post #22, plusieurs remarques.

1) Il ne faut pas de doublon en colonne A, c'est à vous de les supprimer s'il y en a.

2) Il semble inutile maintenant de masquer les 14 TextBoxes (2 à 15), par contre il faut les effacer quand on entre dans TextBox1 :
VB:
Private Sub TextBox1_Enter()
Dim i As Byte
ListBox1.ListIndex = -1 'désélectionne
For i = 2 To 15 'à adapter
   'Me("TextBox" & i).Visible = True 'inutile
    Me("TextBox" & i) = "" 'RAZ
Next
End Sub
3) Il y avait quelques erreurs pour les numéros de colonnes de l'Array col, j'ai corrigé :
VB:
col = Array(1, 2, 3, 5, 4, 6, 9, 10, 18, 14, 15, 16, 13, 19) 'numéros des colonnes à récupérer
 

Pièces jointes

Bon dans ce fichier (2) l'UserForm fonctionne correctement avec des doublons en colonne A.

J'ai modifié UserForm_Initialize en ajoutant dans la ListBox une dernière colonne masquée mémorisant les numéros de lignes.

Ils sont utilisés dans ListBox1_Click :
VB:
If ListBox1.ListIndex > -1 Then lig = ListBox1.List(ListBox1.ListIndex, Ncol - 1)
 

Pièces jointes

voila
je suppose que tu a mis les index de lignes en dercol dans la listbox
quitte a la cacher
c'est la méthode la plus rapide et la plus sur
y a pas photo
et pour une recherche multi col avec un seul textbox là encore y a plus simple que 2 boucles imbriquées
tout simplement une boucle for each elem in tablocomplet qui va scruter toutes les lignes et toutes les colonnes
 
- 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

  • Question Question
Microsoft 365 Lecture vocale USF
Réponses
5
Affichages
208
Réponses
4
Affichages
113
Réponses
1
Affichages
252
  • Question Question
Microsoft 365 affichage userform
Réponses
4
Affichages
418
Réponses
41
Affichages
888
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…