trie de données dans userform

gege21

XLDnaute Occasionnel
bonsoir a tous
j'ai des données dans une feuille (elle ne doive pas être touche)
et je veut les affiche dans une userform pas années
mais quand je choisie une années quand je choisie une années elle s'affiche toutes
comment faire ??
merci pour votre aide
 

Pièces jointes

  • test-1.xls
    678 KB · Affichages: 84
  • test-1.xls
    678 KB · Affichages: 86
  • test-1.xls
    678 KB · Affichages: 82

Matheop

XLDnaute Occasionnel
Re : trie de données dans userform

Salut gege21.

J'ai légèrement modifié ton classeur: lorsqu'il s'ouvre il te propose un autre UserForm. Tu saisies une année et après vérification t'affiche dans une liste toutes les dates de ta feuille 1 correspondant à cette année. Ce n'est qu'une ébauche qui, je l'espère, répond à ta question. Mon UserForm s'appelle DonneesParAnnees.

Classeur disponible:

Cordialement,
Mat'
 

Pièces jointes

  • excDown2.xls
    147 KB · Affichages: 75

Bebere

XLDnaute Barbatruc
Re : trie de données dans userform

bonjour Gege,Matichoux

Code:
Private Sub c1_Change()
    Dim AutoFilterMode As Boolean, tbl
    Dim Cel As Range, firstAddress As String, c As Byte, L As Long, Ld As Long, Lf As Long, nbL As Long
    Me.ListBox1.Clear
    With Worksheets("Données_mini_maxi")
        .Range("A1:A" & .Cells(Rows.Count, "a").End(xlUp).Row).NumberFormat = "yyyy"
        Set Cel = .Columns(1).Find(CDbl(C1), LookIn:=xlValues)
        If Not Cel Is Nothing Then
            firstAddress = Cel.Address
            Ld = Cel.Row: Lf = Ld - 1
            Do
                Lf = Lf + 1
                nbL = nbL + 1
                Set Cel = .Columns(1).FindNext(Cel)
            Loop While Not Cel Is Nothing And Cel.Address <> firstAddress
        End If

        .Range("A2:A" & .Cells(Rows.Count, "a").End(xlUp).Row).NumberFormat = "dd/mm/yyyy"
        ReDim tbl(1 To nbL, 1 To 39)
        nbL = 0
        For L = Ld To Lf
            nbL = nbL + 1
            For c = 2 To UBound(tbl, 2)
                tbl(nbL, c) = .Cells(L, c).Text
            Next
        Next
    End With

    Me.ListBox1.List = tbl

End Sub

Code:
Private Sub UserForm_Initialize()
Dim t, i As Long, m As Object
UserForm2.MultiPage1.Style = fmTabStyleNone
    Set m = CreateObject("Scripting.Dictionary")
    With Worksheets("Données_mini_maxi")
    t = .Range("a1:a" & .Cells(Rows.Count, 1).End(xlUp).Row)
    End With
  For i = 1 To UBound(t)
        If Not m.Exists(Year(t(i, 1))) Then m.Add Year(t(i, 1)), Year(t(i, 1))
Next

Me.C1.List = m.items

End Sub
 

gege21

XLDnaute Occasionnel
Re : trie de données dans userform

bonjours Bebere

merci pour le code
j'ai juste 2 chose qui ne marche pas
- dans l'userform il n'y a pas les dates
- avec se code les titre ne s'affiche plus dans userform

avec c 2 chose sa serai tout a fais se qu'il me faut
 

Pièces jointes

  • test-1-4.xls
    677.5 KB · Affichages: 61

gege21

XLDnaute Occasionnel
Re : trie de données dans userform

bonsoir bebere
avec une listview c plus simple mais très lent :( (les fiches dépasse les 100000 ligne )
effectivement pour avoir la date dans la 1er colonne j'avais trouvée
il manque donc plus que les titre dans le listbox
je précise qu'il ne faut pas touche aux données dans la feuille (d'autre code utilise les données)
 

Pièces jointes

  • test-1-5.xls
    671.5 KB · Affichages: 50

Bebere

XLDnaute Barbatruc
Re : trie de données dans userform

bonjour Gege
ce n'est pas la listview qui fait que c'est lent
c'est la quantité de données et comment le code est écrit
100000lignes?
écrit un nouveau code(en partie)
le résultat de la recherche(C1) est mis dans la feuille Tmp(copy/paste),ensuite la listview est initialisée
si tu veux garder les données de la feuille tmp un certain temps,il faut faire quelques changements
 

Pièces jointes

  • testV1.zip
    358.1 KB · Affichages: 47
  • testV1.zip
    358.1 KB · Affichages: 45
  • testV1.zip
    358.1 KB · Affichages: 44

gege21

XLDnaute Occasionnel
Re : trie de données dans userform

bonjours bebere

les données sorte d'une station météo qui enregistre une ligne tous les 5 min donc sur une année plus de 100000 ligne

j'ai fais un essai avec 20000 c déjà long alors 100000 je n'ose pas y pense
je suis pas sur qui la listview et une bonne chose
dans le 1er code que j'ai mis tous s'affiche rapidement c juste le tris par années qui ne marche pas
donc je ne c pas se qui serais le mieux et le plus rapide pour une grande quantité de ligne
 

gege21

XLDnaute Occasionnel
Re : trie de données dans userform

re

je me suis trompé le message précédant voici le code d'origine j'ai changer le code importation des données
et du coup sa marche plus
 

Pièces jointes

  • code d'origine.xls
    420 KB · Affichages: 55

Bebere

XLDnaute Barbatruc
Re : trie de données dans userform

Gégé
dans Button_données_mini_maxi_Click()
cette ligne est en fin de code
Sheets("Données_mini_maxi").Activate
il faut la mettre en début

dans Button_telechage_2_Click() cette ligne
Destination:=.[A65536].End(xlUp).Offset)
dans feuille données_mini_maxi pourquoi ne pas mettre une ligne d'entêtes,il y a des lignes vides au début
tu pourrais appliquer un filtre et mettre le résultat dans temp
pas été plus loin
 

gege21

XLDnaute Occasionnel
Re : trie de données dans userform

bonjours bebere
dans Button_données_mini_maxi_Click()
cette ligne est en fin de code
Sheets("Données_mini_maxi").Activate
il faut la mettre en début
si je fais sa le code plante dans c1_Change
les lignes vide sont efface quand dont clic sur le bouton Button_retour_7
et il ne faut surtout pas mettre d’entêtes dans la feuille données_mini_maxi sa ferais plante d'autre code
c pour sa qu'il ne faut touche au données de cette page
 

Bebere

XLDnaute Barbatruc
Re : trie de données dans userform

bonjour Gégé
peut être pas tout compris mais cela fonctionne
pour autofilter ajout d'une ligne d'entêtes qui ensuite est effacée
 

Pièces jointes

  • codeoriginegege.zip
    110.8 KB · Affichages: 29
  • codeoriginegege.zip
    110.8 KB · Affichages: 28
  • codeoriginegege.zip
    110.8 KB · Affichages: 30

Discussions similaires

Statistiques des forums

Discussions
312 345
Messages
2 087 471
Membres
103 553
dernier inscrit
jhnm