Tri et erreur Combobox

Jouxte

XLDnaute Occasionnel
Bonjour et bonnes fêtes de fin d'année à toutes et à tous,
Grace à nombre d'entre vous j'ai progressé dans mon appli. Il me reste encore deux points qui me gènent pour que celà fonctionne parfaitement.j'aurais souhaité que :

1) la recherche sur le comboBoxCompte se fasse par ordre alpha betique.
J'ai trouvé un code dans un post d'Hervé du 11 nov 2005, mais je n'ai pas réussi à le faire fonctionner dans mon appli.
'Dim i As Byte, j As Byte
Dim temp As String

With ComboBoxCompte
For i = 0 To .ListCount - 1
For j = 0 To .ListCount - 1
If .List(i) < .List(j) Then
temp = .List(i)
.List(i) = .List(j)
.List(j) = temp
End If
Next j
Next i
End With'

2) pour qu'en cas d'erreur de type #NA ou autre le textbox affiche la valeur de l'erreur (ici #NA)

Merci d'avance à tous ceux qui voudront bien me donner un coup de main.
 

Jouxte

XLDnaute Occasionnel
Oups il manque le fichier que voici que voilà [file name=TriCombobox2.zip size=22596]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/TriCombobox2.zip[/file]
 

Pièces jointes

  • TriCombobox2.zip
    22.1 KB · Affichages: 22

Hervé

XLDnaute Barbatruc
Salut jouxte, le forum

tres tres vite, on m'attend pour faire la fete.

pour ton histoire de trie :


Private Sub UserForm_Initialize()
Dim i As Byte, j As Byte
Dim temp As String
Dim c As Range

ComboBoxPrénom.RowSource = 'feuil1!' & Range('C2', Range('C2').End(xlDown)).Address


With ComboBoxCompte
       
For Each c In Range('a2:a' & Range('a65536').End(xlUp).Row)
                .AddItem c
       
Next c
       
       
For i = 0 To .ListCount - 1
               
For j = 0 To .ListCount - 1
                       
If .List(i) < .List(j) Then
                                temp = .List(i)
                                .List(i) = .List(j)
                                .List(j) = temp
                       
End If
               
Next j
       
Next i
End With


    AEnregistrer =
False
End Sub


tu ne peux pas trier une combobox alimentée par un rowsource, il te faut utiliser additem.

a toi de faire la combobox prénom.

Pour ton N/A

le mieux serait quand meme que tu n'ai pas ce type d'erreur dans ton listing, reprend ta formule rechercheV en incluant un gestionnaire d'erreur (si(esterreur...) un truc comme ca.

sinon, tu peux peut etre (mais c'est moins bien) utiliser ce type de code :


        With Me
            LigneSAP = .ComboBoxCompte.ListIndex + 2
'Ligne du Code SAP
            .TextBoxCP = Cells(LigneSAP, 2)
' Code postal
           
If IsError(Cells(LigneSAP, 3)) Then
                valeur = '#N/A'
           
Else
                valeur = Cells(LigneSAP, 3)
           
End If
            .ComboBoxPrénom = valeur


enfin, en triant tes combobox, tu ne peux plus utiliser les méthodes listindex pour retourner des valeurs, puisque ceux-ci auront été changé par le trie (me suit-tu ?)

il te faudra soit mettre toutes les valeurs dans les combobox et trier sur 3 colonnes, soit utiliser .find pour retrouver les numéros de ligne.

de plus, utilise plutot l'évenement click au lieu de change pour gérer les sélections dans les combo.

ca t'évitera les booleans.

passe un bon réveillon.

salut
 

Discussions similaires

Réponses
4
Affichages
251
Réponses
11
Affichages
378

Statistiques des forums

Discussions
312 749
Messages
2 091 623
Membres
105 009
dernier inscrit
aurelien76110