Problémes TRI de données

COCOLASTICO29 Messages postés 7 Statut Membre -  
COCOLASTICO29 Messages postés 7 Statut Membre -
Bonjour,

j'ai un petit probléme que je n'arrive pas à comprendre

Débutant en VBA je dois créer une interface sur un userform pour atomatiser le classement d'affaires ..

L'enregistrement de mes données par collone et ligne se fait via un deuxiéme userform par la trame suivante

Sheets("feuil1").Activate

Range("C" & Range("C" & Cells.Rows.Count).End(xlUp).Row + 1).Select
ActiveCell.Value = TextBox1.Value

Range("D" & Range("D" & Cells.Rows.Count).End(xlUp).Row + 1).Select
ActiveCell.Value = TextBox2.Value

Range("E" & Range("E" & Cells.Rows.Count).End(xlUp).Row + 1).Select
ActiveCell.Value = ComboBox1.Value

Range("G" & Range("G" & Cells.Rows.Count).End(xlUp).Row + 1).Select
ActiveCell.Value = TextBox3.Value

Range("I" & Range("I" & Cells.Rows.Count).End(xlUp).Row + 1).Select
ActiveCell.Value = TextBox5.Value

Range("J" & Range("J" & Cells.Rows.Count).End(xlUp).Row + 1).Select
ActiveCell.Value = TextBox4.Value

Range("K" & Range("K" & Cells.Rows.Count).End(xlUp).Row + 1).Select
ActiveCell.Value = TextBox6.Value

Range("H" & Range("H" & Cells.Rows.Count).End(xlUp).Row + 1).Select
ActiveCell.Value = ComboBox2.Value

Range("L" & Range("L" & Cells.Rows.Count).End(xlUp).Row + 1).Select
ActiveCell.Value = ComboBox3.Value

Range("M" & Range("M" & Cells.Rows.Count).End(xlUp).Row + 1).Select
ActiveCell.Value = TextBox7.Value

Unload UserForm2

End Sub


Cela fonctionne parfaitement...

ces valeurs enregistrées sur le tableur sont intégrées sous forme de liste dans mes combobox sur mon userform1 qui fait le tri

exemple trame :

 If ComboBox1 <> "" And ComboBox1.ListIndex <> -1 Then

ComboBox2 = Range("LISTE_COUNTRY").Cells(ComboBox1.ListIndex + 1, 1)
Else

ComboBox2 = "?????"

End If


Mais lorsque je veux faire le tri entre mes differentes combobox dans mon premier userform un probléme survient ...

'TRI PROSPECT -> UPDATE
With Worksheets("feuil1")
derlig = .Range("G" & Rows.Count).End(xlUp).Row
Plage = .Range("G6:G" & derlig)
Set Dico_Nom = CreateObject("Scripting.Dictionary")
For x = 1 To UBound(Plage, 1)
Dico_Nom(Plage(x, 1)) = ""
Next x
TMP = Dico_Nom.Keys 'Table sans doublon
Call tri(TMP, LBound(TMP, 1), UBound(TMP, 1)) 'tri alphabétique
ComboBox1.List = TMP
End With


On m'affiche un bug à la ligne "For x = 1 To UBound(plage1)"

Je ne vois pas d'ou vient le probléme .. car lorsque que je rentre les données manuellement (sans la fonction d'enregistrement tout en haut) dans le tableur le tri focntionne...

J'espére avoir été assez clair ..

Je vous remercie d'avance si vous pouvez trouver une solution à mon probléme.

Cordialement,

COCO

2 réponses

  1. Frenchie83 Messages postés 2254 Statut Membre 339
     
    Bonjour
    Apparemment votre problème se situe au niveau de la "plage"
    Plage = .Range("G6:G" & derlig).
    N'est-elle pas vide?
    Avez-vous tester avec une valeur autre que "G6" ?
    Sans voir le sujet, difficile d'en dire plus.
    cdlt
    0
  2. Frenchie83 Messages postés 2254 Statut Membre 339
     
    Bonjour
        'TRI PROSPECT -> UPDATE
        Set Dico_Nom = CreateObject("Scripting.Dictionary")
        For Each Element In Range("G6:G" & Feuil1.Range("G" & Rows.Count).End(xlUp).Row)
            Dico_Nom(Element.Text) = ""
        Next
        TMP = Dico_Nom.Keys 'Table sans doublon
        Call tri(TMP, LBound(TMP, 1), UBound(TMP, 1)) 'tri alphabétique
        ComboBox1.List = TMP
    

    à recopier pour les autres combobox
    Cdlt
    0
    1. COCOLASTICO29 Messages postés 7 Statut Membre
       
      Merci Beaucoup pour l'aide. cela fonctionne parfaitement
      0