bonjour
- j'ai crée une form sur laquelle j'ai combox
que j'initialise comme ceci
Private Sub UserForm_Initialize()
ComboBoxProduit.RowSource = "Produits" 'remplir la combobox1
ComboBoxProduit.List = ListSort(ComboBoxProduit.List)
FrmCalendrier.Show
End Sub
- que j'essais de trier avec cette function que j'ai trouvé sur un site
(je sais plus ou )
Public Function ListSort(liSte)
' Trier les données dans la box
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp
First = LBound(liSte)
Last = UBound(liSte)
For i = First To Last - 1
For j = i + 1 To Last
If liSte(i, 0) > liSte(j, 0) Then
Temp = liSte(j, 0)
liSte(j, 0) = liSte(i, 0)
liSte(i, 0) = Temp
End If
Next j
Next i
ListSort = liSte
End Function
quand je fait du pas a pas je vois que la procedure marche
mais elle ne retourne rien si ce n'est qu'une erreur :-@
merci de m'aider a pouvoir trier ma liste
--
papyjo
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
bonjour
- j'ai crée une form sur laquelle j'ai combox
que j'initialise comme ceci
Private Sub UserForm_Initialize()
ComboBoxProduit.RowSource = "Produits" 'remplir la combobox1
ComboBoxProduit.List = ListSort(ComboBoxProduit.List)
FrmCalendrier.Show
End Sub
- que j'essais de trier avec cette function que j'ai trouvé sur un site
(je sais plus ou )
Public Function ListSort(liSte)
' Trier les données dans la box
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp
First = LBound(liSte)
Last = UBound(liSte)
For i = First To Last - 1
For j = i + 1 To Last
If liSte(i, 0) > liSte(j, 0) Then
Temp = liSte(j, 0)
liSte(j, 0) = liSte(i, 0)
liSte(i, 0) = Temp
End If
Next j
Next i
ListSort = liSte
End Function
quand je fait du pas a pas je vois que la procedure marche
mais elle ne retourne rien si ce n'est qu'une erreur :-@
merci de m'aider a pouvoir trier ma liste
--
papyjo
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
bonjour
- j'ai crée une form sur laquelle j'ai combox
que j'initialise comme ceci
Private Sub UserForm_Initialize()
ComboBoxProduit.RowSource = "Produits" 'remplir la combobox1
ComboBoxProduit.List = ListSort(ComboBoxProduit.List)
FrmCalendrier.Show
End Sub
- que j'essais de trier avec cette function que j'ai trouvé sur un site
(je sais plus ou )
Public Function ListSort(liSte)
' Trier les données dans la box
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp
First = LBound(liSte)
Last = UBound(liSte)
For i = First To Last - 1
For j = i + 1 To Last
If liSte(i, 0) > liSte(j, 0) Then
Temp = liSte(j, 0)
liSte(j, 0) = liSte(i, 0)
liSte(i, 0) = Temp
End If
Next j
Next i
ListSort = liSte
End Function
quand je fait du pas a pas je vois que la procedure marche
mais elle ne retourne rien si ce n'est qu'une erreur :-@
merci de m'aider a pouvoir trier ma liste
--
papyjo
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
bonjour
- j'ai crée une form sur laquelle j'ai combox
que j'initialise comme ceci
Private Sub UserForm_Initialize()
ComboBoxProduit.RowSource = "Produits" 'remplir la combobox1
ComboBoxProduit.List = ListSort(ComboBoxProduit.List)
FrmCalendrier.Show
End Sub
- que j'essais de trier avec cette function que j'ai trouvé sur un site
(je sais plus ou )
Public Function ListSort(liSte)
' Trier les données dans la box
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp
First = LBound(liSte)
Last = UBound(liSte)
For i = First To Last - 1
For j = i + 1 To Last
If liSte(i, 0) > liSte(j, 0) Then
Temp = liSte(j, 0)
liSte(j, 0) = liSte(i, 0)
liSte(i, 0) = Temp
End If
Next j
Next i
ListSort = liSte
End Function
quand je fait du pas a pas je vois que la procedure marche
mais elle ne retourne rien si ce n'est qu'une erreur :-@
merci de m'aider a pouvoir trier ma liste
--
papyjo
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
bonjour
- j'ai crée une form sur laquelle j'ai combox
que j'initialise comme ceci
Private Sub UserForm_Initialize()
ComboBoxProduit.RowSource = "Produits" 'remplir la combobox1
ComboBoxProduit.List = ListSort(ComboBoxProduit.List)
FrmCalendrier.Show
End Sub
- que j'essais de trier avec cette function que j'ai trouvé sur un site
(je sais plus ou )
Public Function ListSort(liSte)
' Trier les données dans la box
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp
First = LBound(liSte)
Last = UBound(liSte)
For i = First To Last - 1
For j = i + 1 To Last
If liSte(i, 0) > liSte(j, 0) Then
Temp = liSte(j, 0)
liSte(j, 0) = liSte(i, 0)
liSte(i, 0) = Temp
End If
Next j
Next i
ListSort = liSte
End Function
quand je fait du pas a pas je vois que la procedure marche
mais elle ne retourne rien si ce n'est qu'une erreur :-@
merci de m'aider a pouvoir trier ma liste
--
papyjo
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
bonjour
- j'ai crée une form sur laquelle j'ai combox
que j'initialise comme ceci
Private Sub UserForm_Initialize()
ComboBoxProduit.RowSource = "Produits" 'remplir la combobox1
ComboBoxProduit.List = ListSort(ComboBoxProduit.List)
FrmCalendrier.Show
End Sub
- que j'essais de trier avec cette function que j'ai trouvé sur un site
(je sais plus ou )
Public Function ListSort(liSte)
' Trier les données dans la box
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp
First = LBound(liSte)
Last = UBound(liSte)
For i = First To Last - 1
For j = i + 1 To Last
If liSte(i, 0) > liSte(j, 0) Then
Temp = liSte(j, 0)
liSte(j, 0) = liSte(i, 0)
liSte(i, 0) = Temp
End If
Next j
Next i
ListSort = liSte
End Function
quand je fait du pas a pas je vois que la procedure marche
mais elle ne retourne rien si ce n'est qu'une erreur :-@
merci de m'aider a pouvoir trier ma liste
--
papyjo
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Bonjour,
Je ne sais pas si c'est la meilleure façon de faire, mais je pratique comme
ceci :
la listbox (ou combobox) étant alimentée à partir de la propriété RowSource à
laquelle
j'attribue le nom d'une plage du classeur :
lstbox1.rowsource=range("toto")
dans un premier temps, je remets à blanc Rowsource ( listbox.rowsource="")
ensuite j'effectue le tri sur la plage nommée "toto" et je réaffecte la
propriété rowsource
Essaie pour voir ( en utilisant éventuellement l'enregistreur de macro pour
trier la plage "toto" )
Si pb, reviens ici
Bonne journée
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"papyjo" a écrit dans le message de news:bonjour
- j'ai crée une form sur laquelle j'ai combox
que j'initialise comme ceci
Private Sub UserForm_Initialize()
ComboBoxProduit.RowSource = "Produits" 'remplir la combobox1
ComboBoxProduit.List = ListSort(ComboBoxProduit.List)
FrmCalendrier.Show
End Sub
- que j'essais de trier avec cette function que j'ai trouvé sur un site (je
sais plus ou )
Public Function ListSort(liSte)
' Trier les données dans la box
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp
First = LBound(liSte)
Last = UBound(liSte)
For i = First To Last - 1
For j = i + 1 To Last
If liSte(i, 0) > liSte(j, 0) Then
Temp = liSte(j, 0)
liSte(j, 0) = liSte(i, 0)
liSte(i, 0) = Temp
End If
Next j
Next i
ListSort = liSte
End Function
quand je fait du pas a pas je vois que la procedure marche
mais elle ne retourne rien si ce n'est qu'une erreur :-@
merci de m'aider a pouvoir trier ma liste
-- papyjo
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Merci ça marche super
Bonjour,
Je ne sais pas si c'est la meilleure façon de faire, mais je pratique comme
ceci :
la listbox (ou combobox) étant alimentée à partir de la propriété RowSource à
laquelle
j'attribue le nom d'une plage du classeur :
lstbox1.rowsource=range("toto")
dans un premier temps, je remets à blanc Rowsource ( listbox.rowsource="")
ensuite j'effectue le tri sur la plage nommée "toto" et je réaffecte la
propriété rowsource
Essaie pour voir ( en utilisant éventuellement l'enregistreur de macro pour
trier la plage "toto" )
Si pb, reviens ici
Bonne journée
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"papyjo" <00@000.00> a écrit dans le message de news:
mn.62ba7d5c9b8f6ec7.24973@000.00...
bonjour
- j'ai crée une form sur laquelle j'ai combox
que j'initialise comme ceci
Private Sub UserForm_Initialize()
ComboBoxProduit.RowSource = "Produits" 'remplir la combobox1
ComboBoxProduit.List = ListSort(ComboBoxProduit.List)
FrmCalendrier.Show
End Sub
- que j'essais de trier avec cette function que j'ai trouvé sur un site (je
sais plus ou )
Public Function ListSort(liSte)
' Trier les données dans la box
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp
First = LBound(liSte)
Last = UBound(liSte)
For i = First To Last - 1
For j = i + 1 To Last
If liSte(i, 0) > liSte(j, 0) Then
Temp = liSte(j, 0)
liSte(j, 0) = liSte(i, 0)
liSte(i, 0) = Temp
End If
Next j
Next i
ListSort = liSte
End Function
quand je fait du pas a pas je vois que la procedure marche
mais elle ne retourne rien si ce n'est qu'une erreur :-@
merci de m'aider a pouvoir trier ma liste
-- papyjo
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Merci ça marche super
Bonjour,
Je ne sais pas si c'est la meilleure façon de faire, mais je pratique comme
ceci :
la listbox (ou combobox) étant alimentée à partir de la propriété RowSource à
laquelle
j'attribue le nom d'une plage du classeur :
lstbox1.rowsource=range("toto")
dans un premier temps, je remets à blanc Rowsource ( listbox.rowsource="")
ensuite j'effectue le tri sur la plage nommée "toto" et je réaffecte la
propriété rowsource
Essaie pour voir ( en utilisant éventuellement l'enregistreur de macro pour
trier la plage "toto" )
Si pb, reviens ici
Bonne journée
--
Pounet95
on trouve tout ( ou presque ) http://www.excelabo.net/
Conseillé :
http://dj.joss.free.fr/netiquet.htm
(charte, nétiquette, conseils, abréviations, souriettes...)
http://www.excelabo.net/mpfe/connexion.php
(connexion, conseils...)
"papyjo" a écrit dans le message de news:bonjour
- j'ai crée une form sur laquelle j'ai combox
que j'initialise comme ceci
Private Sub UserForm_Initialize()
ComboBoxProduit.RowSource = "Produits" 'remplir la combobox1
ComboBoxProduit.List = ListSort(ComboBoxProduit.List)
FrmCalendrier.Show
End Sub
- que j'essais de trier avec cette function que j'ai trouvé sur un site (je
sais plus ou )
Public Function ListSort(liSte)
' Trier les données dans la box
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp
First = LBound(liSte)
Last = UBound(liSte)
For i = First To Last - 1
For j = i + 1 To Last
If liSte(i, 0) > liSte(j, 0) Then
Temp = liSte(j, 0)
liSte(j, 0) = liSte(i, 0)
liSte(i, 0) = Temp
End If
Next j
Next i
ListSort = liSte
End Function
quand je fait du pas a pas je vois que la procedure marche
mais elle ne retourne rien si ce n'est qu'une erreur :-@
merci de m'aider a pouvoir trier ma liste
-- papyjo
Ceci est une signature automatique de MesNews.
Site : http://www.mesnews.net
Merci ça marche super
Bonjour Papyjo,
Voici une façon de faire avec Quick_Sort...
Tu dois adapter dans la procédure le nom de la
feuille et de la plage de cellules où sont tes données.
Dans ton formulaire :
'------------------------------------
Private Sub UserForm_Initialize()
Dim Tblo As Variant, Rg As Range
With Worksheets("Feuil1")
Set Rg = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End With
Tblo = Application.Transpose(Rg)
Quick_Sort Tblo, LBound(Tblo), UBound(Tblo)
UserForm1.ComboBox1.List = Application.Transpose(Tblo)
Set Rg = Nothing
End Sub
'------------------------------------
Tu peux mettre cette procédure dans un module standard.
'------------------------------------
Sub Quick_Sort(ByRef SortArray As Variant, ByVal First As Long, ByVal Last As
Long) Dim Low As Long, High As Long
Dim Temp As Variant, List_Separator As Variant
Low = First
High = Last
List_Separator = SortArray((First + Last) / 2)
Do
Do While (SortArray(Low) < List_Separator)
Low = Low + 1
Loop
Do While (SortArray(High) > List_Separator)
High = High - 1
Loop
If (Low <= High) Then
Temp = SortArray(Low)
SortArray(Low) = SortArray(High)
SortArray(High) = Temp
Low = Low + 1
High = High - 1
End If
Loop While (Low <= High)
If (First < High) Then Quick_Sort SortArray, First, High
If (Low < Last) Then Quick_Sort SortArray, Low, Last
End Sub
'------------------------------------
Salutations!
"papyjo" a écrit dans le message de news:
bonjour
- j'ai crée une form sur laquelle j'ai combox
que j'initialise comme ceci
Private Sub UserForm_Initialize()
ComboBoxProduit.RowSource = "Produits" 'remplir la combobox1
ComboBoxProduit.List = ListSort(ComboBoxProduit.List)
FrmCalendrier.Show
End Sub
- que j'essais de trier avec cette function que j'ai trouvé sur un site
(je sais plus ou )
Public Function ListSort(liSte)
' Trier les données dans la box
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp
First = LBound(liSte)
Last = UBound(liSte)
For i = First To Last - 1
For j = i + 1 To Last
If liSte(i, 0) > liSte(j, 0) Then
Temp = liSte(j, 0)
liSte(j, 0) = liSte(i, 0)
liSte(i, 0) = Temp
End If
Next j
Next i
ListSort = liSte
End Function
quand je fait du pas a pas je vois que la procedure marche
mais elle ne retourne rien si ce n'est qu'une erreur :-@
merci de m'aider a pouvoir trier ma liste
Bonjour Papyjo,
Voici une façon de faire avec Quick_Sort...
Tu dois adapter dans la procédure le nom de la
feuille et de la plage de cellules où sont tes données.
Dans ton formulaire :
'------------------------------------
Private Sub UserForm_Initialize()
Dim Tblo As Variant, Rg As Range
With Worksheets("Feuil1")
Set Rg = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End With
Tblo = Application.Transpose(Rg)
Quick_Sort Tblo, LBound(Tblo), UBound(Tblo)
UserForm1.ComboBox1.List = Application.Transpose(Tblo)
Set Rg = Nothing
End Sub
'------------------------------------
Tu peux mettre cette procédure dans un module standard.
'------------------------------------
Sub Quick_Sort(ByRef SortArray As Variant, ByVal First As Long, ByVal Last As
Long) Dim Low As Long, High As Long
Dim Temp As Variant, List_Separator As Variant
Low = First
High = Last
List_Separator = SortArray((First + Last) / 2)
Do
Do While (SortArray(Low) < List_Separator)
Low = Low + 1
Loop
Do While (SortArray(High) > List_Separator)
High = High - 1
Loop
If (Low <= High) Then
Temp = SortArray(Low)
SortArray(Low) = SortArray(High)
SortArray(High) = Temp
Low = Low + 1
High = High - 1
End If
Loop While (Low <= High)
If (First < High) Then Quick_Sort SortArray, First, High
If (Low < Last) Then Quick_Sort SortArray, Low, Last
End Sub
'------------------------------------
Salutations!
"papyjo" <00@000.00> a écrit dans le message de news:
mn.62ba7d5c9b8f6ec7.24973@000.00... bonjour
- j'ai crée une form sur laquelle j'ai combox
que j'initialise comme ceci
Private Sub UserForm_Initialize()
ComboBoxProduit.RowSource = "Produits" 'remplir la combobox1
ComboBoxProduit.List = ListSort(ComboBoxProduit.List)
FrmCalendrier.Show
End Sub
- que j'essais de trier avec cette function que j'ai trouvé sur un site
(je sais plus ou )
Public Function ListSort(liSte)
' Trier les données dans la box
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp
First = LBound(liSte)
Last = UBound(liSte)
For i = First To Last - 1
For j = i + 1 To Last
If liSte(i, 0) > liSte(j, 0) Then
Temp = liSte(j, 0)
liSte(j, 0) = liSte(i, 0)
liSte(i, 0) = Temp
End If
Next j
Next i
ListSort = liSte
End Function
quand je fait du pas a pas je vois que la procedure marche
mais elle ne retourne rien si ce n'est qu'une erreur :-@
merci de m'aider a pouvoir trier ma liste
Bonjour Papyjo,
Voici une façon de faire avec Quick_Sort...
Tu dois adapter dans la procédure le nom de la
feuille et de la plage de cellules où sont tes données.
Dans ton formulaire :
'------------------------------------
Private Sub UserForm_Initialize()
Dim Tblo As Variant, Rg As Range
With Worksheets("Feuil1")
Set Rg = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End With
Tblo = Application.Transpose(Rg)
Quick_Sort Tblo, LBound(Tblo), UBound(Tblo)
UserForm1.ComboBox1.List = Application.Transpose(Tblo)
Set Rg = Nothing
End Sub
'------------------------------------
Tu peux mettre cette procédure dans un module standard.
'------------------------------------
Sub Quick_Sort(ByRef SortArray As Variant, ByVal First As Long, ByVal Last As
Long) Dim Low As Long, High As Long
Dim Temp As Variant, List_Separator As Variant
Low = First
High = Last
List_Separator = SortArray((First + Last) / 2)
Do
Do While (SortArray(Low) < List_Separator)
Low = Low + 1
Loop
Do While (SortArray(High) > List_Separator)
High = High - 1
Loop
If (Low <= High) Then
Temp = SortArray(Low)
SortArray(Low) = SortArray(High)
SortArray(High) = Temp
Low = Low + 1
High = High - 1
End If
Loop While (Low <= High)
If (First < High) Then Quick_Sort SortArray, First, High
If (Low < Last) Then Quick_Sort SortArray, Low, Last
End Sub
'------------------------------------
Salutations!
"papyjo" a écrit dans le message de news:
bonjour
- j'ai crée une form sur laquelle j'ai combox
que j'initialise comme ceci
Private Sub UserForm_Initialize()
ComboBoxProduit.RowSource = "Produits" 'remplir la combobox1
ComboBoxProduit.List = ListSort(ComboBoxProduit.List)
FrmCalendrier.Show
End Sub
- que j'essais de trier avec cette function que j'ai trouvé sur un site
(je sais plus ou )
Public Function ListSort(liSte)
' Trier les données dans la box
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp
First = LBound(liSte)
Last = UBound(liSte)
For i = First To Last - 1
For j = i + 1 To Last
If liSte(i, 0) > liSte(j, 0) Then
Temp = liSte(j, 0)
liSte(j, 0) = liSte(i, 0)
liSte(i, 0) = Temp
End If
Next j
Next i
ListSort = liSte
End Function
quand je fait du pas a pas je vois que la procedure marche
mais elle ne retourne rien si ce n'est qu'une erreur :-@
merci de m'aider a pouvoir trier ma liste
Bonjour Papyjo,
Voici une façon de faire avec Quick_Sort...
Tu dois adapter dans la procédure le nom de la
feuille et de la plage de cellules où sont tes données.
Dans ton formulaire :
'------------------------------------
Private Sub UserForm_Initialize()
Dim Tblo As Variant, Rg As Range
With Worksheets("Feuil1")
Set Rg = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End With
Tblo = Application.Transpose(Rg)
Quick_Sort Tblo, LBound(Tblo), UBound(Tblo)
UserForm1.ComboBox1.List = Application.Transpose(Tblo)
Set Rg = Nothing
End Sub
'------------------------------------
Tu peux mettre cette procédure dans un module standard.
'------------------------------------
Sub Quick_Sort(ByRef SortArray As Variant, ByVal First As Long, ByVal Last As
Long) Dim Low As Long, High As Long
Dim Temp As Variant, List_Separator As Variant
Low = First
High = Last
List_Separator = SortArray((First + Last) / 2)
Do
Do While (SortArray(Low) < List_Separator)
Low = Low + 1
Loop
Do While (SortArray(High) > List_Separator)
High = High - 1
Loop
If (Low <= High) Then
Temp = SortArray(Low)
SortArray(Low) = SortArray(High)
SortArray(High) = Temp
Low = Low + 1
High = High - 1
End If
Loop While (Low <= High)
If (First < High) Then Quick_Sort SortArray, First, High
If (Low < Last) Then Quick_Sort SortArray, Low, Last
End Sub
'------------------------------------
Salutations!
"papyjo" a écrit dans le message de news:
bonjour
- j'ai crée une form sur laquelle j'ai combox
que j'initialise comme ceci
Private Sub UserForm_Initialize()
ComboBoxProduit.RowSource = "Produits" 'remplir la combobox1
ComboBoxProduit.List = ListSort(ComboBoxProduit.List)
FrmCalendrier.Show
End Sub
- que j'essais de trier avec cette function que j'ai trouvé sur un site
(je sais plus ou )
Public Function ListSort(liSte)
' Trier les données dans la box
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp
First = LBound(liSte)
Last = UBound(liSte)
For i = First To Last - 1
For j = i + 1 To Last
If liSte(i, 0) > liSte(j, 0) Then
Temp = liSte(j, 0)
liSte(j, 0) = liSte(i, 0)
liSte(i, 0) = Temp
End If
Next j
Next i
ListSort = liSte
End Function
quand je fait du pas a pas je vois que la procedure marche
mais elle ne retourne rien si ce n'est qu'une erreur :-@
merci de m'aider a pouvoir trier ma liste
Bonjour Papyjo,
Voici une façon de faire avec Quick_Sort...
Tu dois adapter dans la procédure le nom de la
feuille et de la plage de cellules où sont tes données.
Dans ton formulaire :
'------------------------------------
Private Sub UserForm_Initialize()
Dim Tblo As Variant, Rg As Range
With Worksheets("Feuil1")
Set Rg = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End With
Tblo = Application.Transpose(Rg)
Quick_Sort Tblo, LBound(Tblo), UBound(Tblo)
UserForm1.ComboBox1.List = Application.Transpose(Tblo)
Set Rg = Nothing
End Sub
'------------------------------------
Tu peux mettre cette procédure dans un module standard.
'------------------------------------
Sub Quick_Sort(ByRef SortArray As Variant, ByVal First As Long, ByVal Last As
Long) Dim Low As Long, High As Long
Dim Temp As Variant, List_Separator As Variant
Low = First
High = Last
List_Separator = SortArray((First + Last) / 2)
Do
Do While (SortArray(Low) < List_Separator)
Low = Low + 1
Loop
Do While (SortArray(High) > List_Separator)
High = High - 1
Loop
If (Low <= High) Then
Temp = SortArray(Low)
SortArray(Low) = SortArray(High)
SortArray(High) = Temp
Low = Low + 1
High = High - 1
End If
Loop While (Low <= High)
If (First < High) Then Quick_Sort SortArray, First, High
If (Low < Last) Then Quick_Sort SortArray, Low, Last
End Sub
'------------------------------------
Salutations!
"papyjo" <00@000.00> a écrit dans le message de news:
mn.62ba7d5c9b8f6ec7.24973@000.00... bonjour
- j'ai crée une form sur laquelle j'ai combox
que j'initialise comme ceci
Private Sub UserForm_Initialize()
ComboBoxProduit.RowSource = "Produits" 'remplir la combobox1
ComboBoxProduit.List = ListSort(ComboBoxProduit.List)
FrmCalendrier.Show
End Sub
- que j'essais de trier avec cette function que j'ai trouvé sur un site
(je sais plus ou )
Public Function ListSort(liSte)
' Trier les données dans la box
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp
First = LBound(liSte)
Last = UBound(liSte)
For i = First To Last - 1
For j = i + 1 To Last
If liSte(i, 0) > liSte(j, 0) Then
Temp = liSte(j, 0)
liSte(j, 0) = liSte(i, 0)
liSte(i, 0) = Temp
End If
Next j
Next i
ListSort = liSte
End Function
quand je fait du pas a pas je vois que la procedure marche
mais elle ne retourne rien si ce n'est qu'une erreur :-@
merci de m'aider a pouvoir trier ma liste
Bonjour Papyjo,
Voici une façon de faire avec Quick_Sort...
Tu dois adapter dans la procédure le nom de la
feuille et de la plage de cellules où sont tes données.
Dans ton formulaire :
'------------------------------------
Private Sub UserForm_Initialize()
Dim Tblo As Variant, Rg As Range
With Worksheets("Feuil1")
Set Rg = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End With
Tblo = Application.Transpose(Rg)
Quick_Sort Tblo, LBound(Tblo), UBound(Tblo)
UserForm1.ComboBox1.List = Application.Transpose(Tblo)
Set Rg = Nothing
End Sub
'------------------------------------
Tu peux mettre cette procédure dans un module standard.
'------------------------------------
Sub Quick_Sort(ByRef SortArray As Variant, ByVal First As Long, ByVal Last As
Long) Dim Low As Long, High As Long
Dim Temp As Variant, List_Separator As Variant
Low = First
High = Last
List_Separator = SortArray((First + Last) / 2)
Do
Do While (SortArray(Low) < List_Separator)
Low = Low + 1
Loop
Do While (SortArray(High) > List_Separator)
High = High - 1
Loop
If (Low <= High) Then
Temp = SortArray(Low)
SortArray(Low) = SortArray(High)
SortArray(High) = Temp
Low = Low + 1
High = High - 1
End If
Loop While (Low <= High)
If (First < High) Then Quick_Sort SortArray, First, High
If (Low < Last) Then Quick_Sort SortArray, Low, Last
End Sub
'------------------------------------
Salutations!
"papyjo" a écrit dans le message de news:
bonjour
- j'ai crée une form sur laquelle j'ai combox
que j'initialise comme ceci
Private Sub UserForm_Initialize()
ComboBoxProduit.RowSource = "Produits" 'remplir la combobox1
ComboBoxProduit.List = ListSort(ComboBoxProduit.List)
FrmCalendrier.Show
End Sub
- que j'essais de trier avec cette function que j'ai trouvé sur un site
(je sais plus ou )
Public Function ListSort(liSte)
' Trier les données dans la box
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp
First = LBound(liSte)
Last = UBound(liSte)
For i = First To Last - 1
For j = i + 1 To Last
If liSte(i, 0) > liSte(j, 0) Then
Temp = liSte(j, 0)
liSte(j, 0) = liSte(i, 0)
liSte(i, 0) = Temp
End If
Next j
Next i
ListSort = liSte
End Function
quand je fait du pas a pas je vois que la procedure marche
mais elle ne retourne rien si ce n'est qu'une erreur :-@
merci de m'aider a pouvoir trier ma liste
Bonjour Papyjo,
Pour utiliser la solution préconisée, tu ne dois pas renseigner la propriété
RowSource du combobox.
Un fichier exemple là : http://cjoint.com/?mmqi04CxBa
Salutations!
"papyjo" a écrit dans le message de news:Bonjour Papyjo,
Voici une façon de faire avec Quick_Sort...
Tu dois adapter dans la procédure le nom de la
feuille et de la plage de cellules où sont tes données.
Dans ton formulaire :
'------------------------------------
Private Sub UserForm_Initialize()
Dim Tblo As Variant, Rg As Range
With Worksheets("Feuil1")
Set Rg = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End With
Tblo = Application.Transpose(Rg)
Quick_Sort Tblo, LBound(Tblo), UBound(Tblo)
UserForm1.ComboBox1.List = Application.Transpose(Tblo)
Set Rg = Nothing
End Sub
'------------------------------------
Tu peux mettre cette procédure dans un module standard.
'------------------------------------
Sub Quick_Sort(ByRef SortArray As Variant, ByVal First As Long, ByVal Last
As Long) Dim Low As Long, High As Long
Dim Temp As Variant, List_Separator As Variant
Low = First
High = Last
List_Separator = SortArray((First + Last) / 2)
Do
Do While (SortArray(Low) < List_Separator)
Low = Low + 1
Loop
Do While (SortArray(High) > List_Separator)
High = High - 1
Loop
If (Low <= High) Then
Temp = SortArray(Low)
SortArray(Low) = SortArray(High)
SortArray(High) = Temp
Low = Low + 1
High = High - 1
End If
Loop While (Low <= High)
If (First < High) Then Quick_Sort SortArray, First, High
If (Low < Last) Then Quick_Sort SortArray, Low, Last
End Sub
'------------------------------------
Salutations!
"papyjo" a écrit dans le message de news:
bonjour
- j'ai crée une form sur laquelle j'ai combox
que j'initialise comme ceci
Private Sub UserForm_Initialize()
ComboBoxProduit.RowSource = "Produits" 'remplir la combobox1
ComboBoxProduit.List = ListSort(ComboBoxProduit.List)
FrmCalendrier.Show
End Sub
- que j'essais de trier avec cette function que j'ai trouvé sur un site
(je sais plus ou )
Public Function ListSort(liSte)
' Trier les données dans la box
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp
First = LBound(liSte)
Last = UBound(liSte)
For i = First To Last - 1
For j = i + 1 To Last
If liSte(i, 0) > liSte(j, 0) Then
Temp = liSte(j, 0)
liSte(j, 0) = liSte(i, 0)
liSte(i, 0) = Temp
End If
Next j
Next i
ListSort = liSte
End Function
quand je fait du pas a pas je vois que la procedure marche
mais elle ne retourne rien si ce n'est qu'une erreur :-@
merci de m'aider a pouvoir trier ma liste
merci d'avoir répondu mais je n'ai pas pu tester
je bloque sur Quick_Sort (non reconnu)
Bonjour Papyjo,
Pour utiliser la solution préconisée, tu ne dois pas renseigner la propriété
RowSource du combobox.
Un fichier exemple là : http://cjoint.com/?mmqi04CxBa
Salutations!
"papyjo" <00@000.00> a écrit dans le message de news:
mn.63827d5ce3960a12.24973@000.00...
Bonjour Papyjo,
Voici une façon de faire avec Quick_Sort...
Tu dois adapter dans la procédure le nom de la
feuille et de la plage de cellules où sont tes données.
Dans ton formulaire :
'------------------------------------
Private Sub UserForm_Initialize()
Dim Tblo As Variant, Rg As Range
With Worksheets("Feuil1")
Set Rg = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End With
Tblo = Application.Transpose(Rg)
Quick_Sort Tblo, LBound(Tblo), UBound(Tblo)
UserForm1.ComboBox1.List = Application.Transpose(Tblo)
Set Rg = Nothing
End Sub
'------------------------------------
Tu peux mettre cette procédure dans un module standard.
'------------------------------------
Sub Quick_Sort(ByRef SortArray As Variant, ByVal First As Long, ByVal Last
As Long) Dim Low As Long, High As Long
Dim Temp As Variant, List_Separator As Variant
Low = First
High = Last
List_Separator = SortArray((First + Last) / 2)
Do
Do While (SortArray(Low) < List_Separator)
Low = Low + 1
Loop
Do While (SortArray(High) > List_Separator)
High = High - 1
Loop
If (Low <= High) Then
Temp = SortArray(Low)
SortArray(Low) = SortArray(High)
SortArray(High) = Temp
Low = Low + 1
High = High - 1
End If
Loop While (Low <= High)
If (First < High) Then Quick_Sort SortArray, First, High
If (Low < Last) Then Quick_Sort SortArray, Low, Last
End Sub
'------------------------------------
Salutations!
"papyjo" <00@000.00> a écrit dans le message de news:
mn.62ba7d5c9b8f6ec7.24973@000.00... bonjour
- j'ai crée une form sur laquelle j'ai combox
que j'initialise comme ceci
Private Sub UserForm_Initialize()
ComboBoxProduit.RowSource = "Produits" 'remplir la combobox1
ComboBoxProduit.List = ListSort(ComboBoxProduit.List)
FrmCalendrier.Show
End Sub
- que j'essais de trier avec cette function que j'ai trouvé sur un site
(je sais plus ou )
Public Function ListSort(liSte)
' Trier les données dans la box
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp
First = LBound(liSte)
Last = UBound(liSte)
For i = First To Last - 1
For j = i + 1 To Last
If liSte(i, 0) > liSte(j, 0) Then
Temp = liSte(j, 0)
liSte(j, 0) = liSte(i, 0)
liSte(i, 0) = Temp
End If
Next j
Next i
ListSort = liSte
End Function
quand je fait du pas a pas je vois que la procedure marche
mais elle ne retourne rien si ce n'est qu'une erreur :-@
merci de m'aider a pouvoir trier ma liste
merci d'avoir répondu mais je n'ai pas pu tester
je bloque sur Quick_Sort (non reconnu)
Bonjour Papyjo,
Pour utiliser la solution préconisée, tu ne dois pas renseigner la propriété
RowSource du combobox.
Un fichier exemple là : http://cjoint.com/?mmqi04CxBa
Salutations!
"papyjo" a écrit dans le message de news:Bonjour Papyjo,
Voici une façon de faire avec Quick_Sort...
Tu dois adapter dans la procédure le nom de la
feuille et de la plage de cellules où sont tes données.
Dans ton formulaire :
'------------------------------------
Private Sub UserForm_Initialize()
Dim Tblo As Variant, Rg As Range
With Worksheets("Feuil1")
Set Rg = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End With
Tblo = Application.Transpose(Rg)
Quick_Sort Tblo, LBound(Tblo), UBound(Tblo)
UserForm1.ComboBox1.List = Application.Transpose(Tblo)
Set Rg = Nothing
End Sub
'------------------------------------
Tu peux mettre cette procédure dans un module standard.
'------------------------------------
Sub Quick_Sort(ByRef SortArray As Variant, ByVal First As Long, ByVal Last
As Long) Dim Low As Long, High As Long
Dim Temp As Variant, List_Separator As Variant
Low = First
High = Last
List_Separator = SortArray((First + Last) / 2)
Do
Do While (SortArray(Low) < List_Separator)
Low = Low + 1
Loop
Do While (SortArray(High) > List_Separator)
High = High - 1
Loop
If (Low <= High) Then
Temp = SortArray(Low)
SortArray(Low) = SortArray(High)
SortArray(High) = Temp
Low = Low + 1
High = High - 1
End If
Loop While (Low <= High)
If (First < High) Then Quick_Sort SortArray, First, High
If (Low < Last) Then Quick_Sort SortArray, Low, Last
End Sub
'------------------------------------
Salutations!
"papyjo" a écrit dans le message de news:
bonjour
- j'ai crée une form sur laquelle j'ai combox
que j'initialise comme ceci
Private Sub UserForm_Initialize()
ComboBoxProduit.RowSource = "Produits" 'remplir la combobox1
ComboBoxProduit.List = ListSort(ComboBoxProduit.List)
FrmCalendrier.Show
End Sub
- que j'essais de trier avec cette function que j'ai trouvé sur un site
(je sais plus ou )
Public Function ListSort(liSte)
' Trier les données dans la box
Dim First As Integer, Last As Integer
Dim i As Integer, j As Integer
Dim Temp
First = LBound(liSte)
Last = UBound(liSte)
For i = First To Last - 1
For j = i + 1 To Last
If liSte(i, 0) > liSte(j, 0) Then
Temp = liSte(j, 0)
liSte(j, 0) = liSte(i, 0)
liSte(i, 0) = Temp
End If
Next j
Next i
ListSort = liSte
End Function
quand je fait du pas a pas je vois que la procedure marche
mais elle ne retourne rien si ce n'est qu'une erreur :-@
merci de m'aider a pouvoir trier ma liste
merci d'avoir répondu mais je n'ai pas pu tester
je bloque sur Quick_Sort (non reconnu)