Formulaire + Listview avec recherche

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 !

JONEY76

XLDnaute Occasionnel
[TERMINE ]Formulaire + Listview avec recherche

FICHIER TERMINE DISPONIBLE EN PAGE 2 / VERSION V5
OU ICI

Lien supprimé







Bonjour à tous
Vous trouverez ci joint mon fichier😉
A l'intérieur, 4 soucis différents mais complémentaires 😕
J'ai besoin de vos lumières (halogènes ou xénon recommandé🙂)
 
Dernière édition:
Re : Formulaire + Listview avec recherche

Bonjour

Il est normal que la recherche ne fonctionne pas avec les dates car les paramètres de find ne sont pas identiques pour des dates et du texte.
On est devant un choix Cornélien
Pour faire la recherche il faut que les dates soient considérées soit de type string, dans ce cas le tri ne fonctionne pas.
Inversement si le tri fonctionne, la recherche ne fonctionne pas.

Une autre solution utiliser deux recherches, une pour les dates la deuxième pour le texte. Ou utiliser une autre méthode de recherche.

Code à tester pour les dates.
Code:
cell.Value = CDate(TextBox7)
Et indiquer à excel le format de la colonne avec le menu "format" "cellule"

Faire une recherche avec "10"

JP
 
Dernière édition:
Re : Formulaire + Listview avec recherche

Et si on transforme les dates en "string" alors les filtres feront le tri n'importe comment, jusque là je comprends

Et find n'aurait pas un équivalent comme variant qui prend tous les types de données


Peux on supprimer le tri de la colonne date uniquement??
 
Re : Formulaire + Listview avec recherche

Bonsoir

Et si on transforme les dates en "string" alors les filtres feront le tri n'importe comment, jusque là je comprends

Et find n'aurait pas un équivalent comme variant qui prend tous les types de données


Peux on supprimer le tri de la colonne date uniquement??
Le tri est basé sur les dates.

Mettre les dates dans la recherche pose problème, par exemple si on recherche la valeur 10 on aura tout les enregistrements du fait de 2010.


JP
 
Re : Formulaire + Listview avec recherche

La recherche sera effectuée suivant

La date (pour voir toutes les pieces fabriquées cette journée)
Au numéro de CA (939999-00a)
Au numéro d'OF

Je pense que le plus simple serait de déclarer les date comme les CA et tant pis pour le filtre dans les entêtes

Peux tu me dire comment transformer la date selectionnée en format 00/00/0000
car avec mon essai je rentre 12/02/2010 et dans la cellule j'ai 40021.456787?

Est ce une des limites de la listview? le fait de ne pas réussir à bien dissocier date et texte
 
Re : Formulaire + Listview avec recherche

Bonsoir (re)

Si la recherche porte uniquement sur trois colonnes de la listview, on peut faire une recherche dans la listview en supprimant des lignes.

Avec find on peut faire deux type de recherche soit sur le mot entier soit partiellement.
Find utilisant les derniers paramètres utilisé si on ne les spécifie pas.


LookAt Argument de type Variant facultatif. Il peut s'agir de l'une des constantesXlLookAt suivantes : xlWhole ou xlPart.


JP
 
Re : Formulaire + Listview avec recherche

Set c = .Range(.Cells(i, 1), .Cells(i, 7)).Find(TextBox2, LookIn:=xlPart)

Ca plante si je le note comme ça



Tout le code de recherche à été transféré dans textbox change

Affichage simultané avec la recherche

Si tu teste les date ça s'affiche 12/ et après ça trouve plus

Sais tu comment dire à cette chaine que c'est des caracteres et non une date ?

C'est vraiment pas simple car les saisies remplissent un graphique sur les 30 derniers jours, je risque donc d'avoir des surprises de taille !
 
Re : Formulaire + Listview avec recherche

Bonsoir
Quand on utilise find, il faut bien lire l'aide VBA.

Pour les dates qui sont des dates au sens d'excel il faut utiliser le paramètre LookIn:=xlFormulas.
Pour le texte LookIn:=xlValues.
La valeur recherchée doit être du type variant.
What Argument de type Variant obligatoire

Extrait de l'aide VBA

Code:
Pour effectuer des recherches plus complexes, utilisez une instruction For Each...Next avec l'opérateur Like.

JP
 
Re : Formulaire + Listview avec recherche

Bonsoir

Un code à tester
Les dates étant des dates
Ce code fonctionne pour des dates partielles.

Code:
Dim i As Long
Dim c As Range


Dim txttotal2

'vider la listview
LSVB.ListItems.Clear

'si texte de recherche ="" alors on sort
If TextBox2 = "" Then Exit Sub

'recherche
With Sheets("BD1")
    i = 4
    Do
    For Each c In .Range(.Cells(i, 1), .Cells(i, 7))
            If UCase(CStr(c.Value)) = UCase(TextBox2.Value) Or InStr(CStr(c), TextBox2) > 0 Then
                IniLvw12 c.Row
                Exit For
            End If
    Next c
        i = i + 1
    Loop While .Cells(i, 1) <> ""
    
End With

JP
 
Re : Formulaire + Listview avec recherche

Je suis en train de tester, apparement ça fonctionne au poil !!

Les dates sont de vraies dates, les autres textes sont trouvés aussi🙂



Je pense que je vais refaire complètement le fichier au propre, je pense que ton travailles va être très utile !!!!!!!!!!!!🙂
 
Re : Formulaire + Listview avec recherche

Code:
Private Sub Lsvb_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
Me.LSVB.Sorted = False
   Me.LSVB.SortKey = ColumnHeader.Index - 1

 If Me.LSVB.SortOrder = lvwAscending Then
    Me.LSVB.SortOrder = lvwDescending
      Else
       Me.LSVB.SortOrder = lvwAscending
     End If
Me.LSVB.Sorted = True
End Sub

Non défini ?? private sub en jaune
 
- 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
5
Affichages
420
Réponses
5
Affichages
479
Retour