Problémes TRI de données

COCOLASTICO29 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -  
COCOLASTICO29 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention   -
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

Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
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
COCOLASTICO29 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Bonjour,

Le problème persiste.

Je vous transmet le fichier.

https://www.cjoint.com/c/EFchMyNjvMu

Cordialement
0
Frenchie83 Messages postés 2240 Date d'inscription   Statut Membre Dernière intervention   338
 
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
COCOLASTICO29 Messages postés 7 Date d'inscription   Statut Membre Dernière intervention  
 
Merci Beaucoup pour l'aide. cela fonctionne parfaitement
0