combobox ordonnée

  • Initiateur de la discussion Alex
  • Date de début
A

Alex

Guest
Bonjour tout le monde !

J'ai un petit souci
j'ai initialisé ma combox mais j'aimerais qu'el soit rangé dans l'ordre alphabétique sans changer l'odre des noms de ma colonne A

Comment faire ??

J'ai joint un fichier exemple

MErci d'avance
 

Pièces jointes

  • problem.zip
    13.3 KB · Affichages: 20
  • problem.zip
    13.3 KB · Affichages: 18
  • problem.zip
    13.3 KB · Affichages: 17
Z

Zon

Guest
Salut,
En passan par un tableau VBA, modifies dans Ton module Thisworkbook:

Private Sub Workbook_Open()
'***********************************************************************************
'initialisation combobox regroupant tous les salariés de l'entreprise
Dim T
With Sheets("bilan_horaire")
T = Range(.[A2], .[A65536].End(xlUp)).Value
TriMulti T, 1, LBound(T), UBound(T)
For I = LBound(T) To UBound(T)
If (T(I, 1)) <> "" Then .ComboBox1.AddItem T(I, 1)
Next I
End With
'***********************************************************************************
End Sub
Sub TriMulti(Tablo, Col As Byte, Min&, Max&) 'ZOn
'Tri dichotomique
Dim I&, J&, K&, M, Chaine
I = Min
J = Max
M = Tablo((Min + Max) / 2, Col)
While (I <= J)
While (Tablo(I, Col) < M And I < Max)
I = I + 1
Wend
While (M < Tablo(J, Col) And J > Min)
J = J - 1
Wend
If (I <= J) Then
For K = LBound(Tablo, 2) To UBound(Tablo, 2)
Chaine = Tablo(I, K)
Tablo(I, K) = Tablo(J, K)
Tablo(J, K) = Chaine
Next K
I = I + 1
J = J - 1
End If
Wend
If (Min < J) Then TriMulti Tablo, Col, Min, J
If (I < Max) Then TriMulti Tablo, Col, I, Max
End Sub

A+++
 
P

petchy

Guest
Re: le code de Zon

Bonjour le Forum,

j'ai essayé le code de Zon,mais je rencontre 2 problemes:
1) ma feuille "Base" qui alimente le comboarti n'est pas visible
2)la comboarti est dans un USF et non sur la feuille comme dans l'exemple ci-dessus
quelqu'un aurai une solution ?
est ce que se code peut agir sur 2 combobox,"comboarti" et "comboref"
qui sont dans le meme USF
Private Sub UserForm_Activate()
Dim T
With Sheets("Base")
T = Range(.[A2], .[A65536].End(xlUp)).Value
TriMulti T, 1, LBound(T), UBound(T)
For I = LBound(T) To UBound(T)
If (T(I, 1)) <> "" Then .Comboarti.AddItem T(I, 1)
Next I
End With
End Sub
smileys-gif-971.gif

smileys-gif-1543.gif
Petchy
 
Z

Zon

Guest
Re: le code de Zon

Salut,

Petchy, voici un petit exemple pour alimenter 3 combobox à partir du même tableau VBA trié . Cela fonctionne même si la feuille n'est pas visible

A+++
 

Pièces jointes

  • ExemplePetchy.zip
    14.6 KB · Affichages: 20
  • ExemplePetchy.zip
    14.6 KB · Affichages: 18
  • ExemplePetchy.zip
    14.6 KB · Affichages: 16

Discussions similaires

Réponses
15
Affichages
423
Réponses
12
Affichages
416

Statistiques des forums

Discussions
314 195
Messages
2 107 029
Membres
109 738
dernier inscrit
cedrebey