Comment afficher un retour à la ligne dans une textbox ?

Oui, la ligne selectionnée est en effet surlignée de bleu, ce qui me va bien finalement, mais lorsqu'on clique dans un autre élement du userform, une textbox par exemple : on perd alors le surlignage de la ligne choisie et c'est un problème.

on perd alors le surlignage de la ligne choisie et c'est un problème

Ah ok. Alors il vous suffit de rajouter cette ligne dans le sub initialize juste en dessous de la ligne .sorted = True

.HideSelection = False

Là plus besoin de couleur rouge sur votre ligne sélectionnée

Le code Listview_click devient ceci

Private Sub ListView1_Click()
Dim i As Byte

With Me
    .LRow = vbNullString
    .TextBox2 = ListView1.SelectedItem.ListSubItems(1)
    .LRow = .ListView1.SelectedItem.Text
End With
End Sub

En effet cela permet de garder le surlignage de la ligne choisi, sur ma version de Excel, c'est un gris assez clair.

je ne pense pas que l'on puisse changer la couleur ?

et par défaut, au lancement du userform on a systématiquement la 1er ligne de listview1 sélectionnée, cela peut il être retiré ?

En effet cela permet de garder le surlignage de la ligne choisi, sur ma version de Excel, c'est un gris assez clair.
je ne pense pas que l'on puisse changer la couleur ?

Oui exact.

et par défaut, au lancement du userform on a systématiquement la 1er ligne de listview1 sélectionnée, cela peut il être retiré ?

Dans votre fichier posté, ce n'est pas le cas. La sub initialize est identique à celle du fichier posté ?

Oui, la sub initialize est bien identique.

Ce qui est problématique c'est qu'en cas de plusieurs choix possibles affichés dans la listview, on a systématiquement la ligne avec le numero de ligne le plus bas automatiquement sélectionné.

Comment retirer cette fonctionnalité ?

Ce qui est problématique c'est qu'en cas de plusieurs choix possibles affichés dans la listview, on a systématiquement la ligne avec le numero de ligne le plus bas automatiquement sélectionné

De ce que je vois vous ne savez pas faire de choix multiple puis avant vous me parliez de la ligne 1
essayez toujours ceci. Allez dans la sub intialize et juste avant le dernier END WITH ajoutez cette ligne

.ListItems(1).Selected = False

Je n'ai pas compris ce vous voulez me dire à propos des choix multiples, mon listview doit rester en choix unique

j'ai essayé d'ajouter cette ligne dans la sub intialize mais ça n'a pas résolu le problème.

.ListItems(1).Selected = False

Je n'ai pas compris ce vous voulez me dire à propos des choix multiples, mon listview doit rester en choix unique

C'est vous qui m'en parlez ici --> https://forum.excel-pratique.com/s/goto/1179902
D'un autre coté vous me dites la première ligne -> " par défaut, au lancement du userform on a systématiquement la 1er ligne de listview1 sélectionnée,..."

Je ne comprends pas votre votre, si vous ouvrez l'usf, aucune ligne n'est sélectionnée dans la listview

Pouvez-vous expliquer plus clairement en me donnant un exemple que je puisse reproduire

Bonjour,

Pourriez vous m'indiquer comment afficher listview1 triée selon des critères successifs, c'est à dire :

l'utilisateur entre une recherche dans la textbox de recherche, la listview affiche les résultats correspondants classés d'abord par ordre croissant selon la colonne 1 et de listview1 puis selon la colonne 3 ?

je ne sais pas si un tel tri est possible car lorsque je clique sur un header de colonne de listview1 , aucun tri ne s'effectue pourtant dans

listview_initialisation() il est définie la possibilité de trier :

With .ColumnHeaders
...
.Gridlines = True ' Affiche les lignes
.View = lvwReport ' Style d'affichage
.FullRowSelect = True ' Sélectionner une ligne possible avec colorisation
.HideSelection = False ' Garde la ligne selectionnée en surlignage
.Sorted = True 'liste triée

...

End With

Bonjour

je ne sais pas si un tel tri est possible car lorsque je clique sur un header de colonne de listview1 , aucun tri ne s'effectue pourtant dans listview_initialisation() il est définie la possibilité de trier :

Oui normal. Vous devez rajouter le code ci-dessous dans votre fichier

Private Sub ListView1_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader) 'tri colonne dans la listview
With ListView1
    .Sorted = False
    .SortKey = ColumnHeader.Index - 1
    If .SortOrder = lvwAscending Then
        .SortOrder = lvwDescending
    Else
        .SortOrder = lvwAscending
    End If
    .Sorted = True
End With
End Sub

Crdlt

Merci beaucoup pour ce code

Est ce aussi possible d’obtenir l’affichage de listview 1 trié automatiquement lorsqu’une entrée est faites dans la textbox de recherche ?

Est ce aussi possible d’obtenir l’affichage de listview 1 trié automatiquement lorsqu’une entrée est faites dans la textbox de recherche

Si votre textbox était uniquement pour visualiser des infos d'une seule colonne oui.
Mais là vous cherchez des infos dans 3 colonnes de la base de données. Donc on ne sait pas sur quelle colonnes le tri doit se faire. là je dirais "oubliez ce point" et cliquez sur l'entête de colonne qui vous intéresse.

J’aurai pensé qu’on pouvoir trier le tableau à l’issue de la recherche selon les critères désirés et ensuite afficher dans la listview , de ce fait l’affichage serait apparu trié

j’ai essayé cette méthode mais la listview affiche alors des résultats totalement inattendus

Vos critères sont recherchés dans 3 colonnes différentes.
Comment voulez-vous qu'excel sache quelle colonne de la listview doit être triée ?

Rechercher des sujets similaires à "comment afficher retour ligne textbox"