en vba, j'ai tableau de type string
à l'interieur, j'ai ceci
Tab(0) = "C3"
Tab(1) = "A1"
Tab(2) = "C32"
Tab(3) = "C302"
Tab(4) = "C31"
Tab(5) = "C301"
Tab(6) = "AB1"
comment faire pour que pon tableau soit trié :
1- de façon alaphabetique pour les caractères qui sont toujours dans la
partie gauche
2- de façon croissante pour la partie numérique
je dois avoir comme résultat :
Tab(0) = "A1"
Tab(1) = "AB1"
Tab(2) = "C3"
Tab(3) = "C31"
Tab(4) = "C32"
Tab(5) = "C301"
Tab(6) = "C302"
'True or false = ordre croissant ou décroissant BubbleSort T, True Msgbox T(0)
End Sub
'--------------------------- Sub BubbleSort(ToSort As Variant, Optional SortAscending As Boolean = True)
' Chris Rae's VBA Code Archive - http://chrisrae.com/vba ' By Chris Rae, 19/5/99. My thanks to ' Will Rickards and Roemer Lievaart for some fixes.
Dim AnyChanges As Boolean Dim BubbleSort As Long Dim SwapFH As Variant
Do AnyChanges = False For BubbleSort = LBound(ToSort) To UBound(ToSort) - 1 If (ToSort(BubbleSort) > ToSort(BubbleSort + 1) And SortAscending) _ Or (ToSort(BubbleSort) < ToSort(BubbleSort + 1) And Not SortAscending) Then ' These two need to be swapped SwapFH = ToSort(BubbleSort) ToSort(BubbleSort) = ToSort(BubbleSort + 1) ToSort(BubbleSort + 1) = SwapFH AnyChanges = True End If Next BubbleSort Loop Until Not AnyChanges
End Sub '---------------------------
Salutations!
"Emcy" a écrit dans le message de news: bonjour,
en vba, j'ai tableau de type string à l'interieur, j'ai ceci Tab(0) = "C3" Tab(1) = "A1" Tab(2) = "C32" Tab(3) = "C302" Tab(4) = "C31" Tab(5) = "C301" Tab(6) = "AB1"
comment faire pour que pon tableau soit trié : 1- de façon alaphabetique pour les caractères qui sont toujours dans la partie gauche 2- de façon croissante pour la partie numérique
je dois avoir comme résultat : Tab(0) = "A1" Tab(1) = "AB1" Tab(2) = "C3" Tab(3) = "C31" Tab(4) = "C32" Tab(5) = "C301" Tab(6) = "C302"
'True or false = ordre croissant ou décroissant
BubbleSort T, True
Msgbox T(0)
End Sub
'---------------------------
Sub BubbleSort(ToSort As Variant, Optional SortAscending As Boolean = True)
' Chris Rae's VBA Code Archive - http://chrisrae.com/vba
' By Chris Rae, 19/5/99. My thanks to
' Will Rickards and Roemer Lievaart for some fixes.
Dim AnyChanges As Boolean
Dim BubbleSort As Long
Dim SwapFH As Variant
Do
AnyChanges = False
For BubbleSort = LBound(ToSort) To UBound(ToSort) - 1
If (ToSort(BubbleSort) > ToSort(BubbleSort + 1) And SortAscending) _
Or (ToSort(BubbleSort) < ToSort(BubbleSort + 1) And Not SortAscending) Then
' These two need to be swapped
SwapFH = ToSort(BubbleSort)
ToSort(BubbleSort) = ToSort(BubbleSort + 1)
ToSort(BubbleSort + 1) = SwapFH
AnyChanges = True
End If
Next BubbleSort
Loop Until Not AnyChanges
End Sub
'---------------------------
Salutations!
"Emcy" <toto@bla.com> a écrit dans le message de news: OwbFRptEGHA.984@tk2msftngp13.phx.gbl...
bonjour,
en vba, j'ai tableau de type string
à l'interieur, j'ai ceci
Tab(0) = "C3"
Tab(1) = "A1"
Tab(2) = "C32"
Tab(3) = "C302"
Tab(4) = "C31"
Tab(5) = "C301"
Tab(6) = "AB1"
comment faire pour que pon tableau soit trié :
1- de façon alaphabetique pour les caractères qui sont toujours dans la
partie gauche
2- de façon croissante pour la partie numérique
je dois avoir comme résultat :
Tab(0) = "A1"
Tab(1) = "AB1"
Tab(2) = "C3"
Tab(3) = "C31"
Tab(4) = "C32"
Tab(5) = "C301"
Tab(6) = "C302"
'True or false = ordre croissant ou décroissant BubbleSort T, True Msgbox T(0)
End Sub
'--------------------------- Sub BubbleSort(ToSort As Variant, Optional SortAscending As Boolean = True)
' Chris Rae's VBA Code Archive - http://chrisrae.com/vba ' By Chris Rae, 19/5/99. My thanks to ' Will Rickards and Roemer Lievaart for some fixes.
Dim AnyChanges As Boolean Dim BubbleSort As Long Dim SwapFH As Variant
Do AnyChanges = False For BubbleSort = LBound(ToSort) To UBound(ToSort) - 1 If (ToSort(BubbleSort) > ToSort(BubbleSort + 1) And SortAscending) _ Or (ToSort(BubbleSort) < ToSort(BubbleSort + 1) And Not SortAscending) Then ' These two need to be swapped SwapFH = ToSort(BubbleSort) ToSort(BubbleSort) = ToSort(BubbleSort + 1) ToSort(BubbleSort + 1) = SwapFH AnyChanges = True End If Next BubbleSort Loop Until Not AnyChanges
End Sub '---------------------------
Salutations!
"Emcy" a écrit dans le message de news: bonjour,
en vba, j'ai tableau de type string à l'interieur, j'ai ceci Tab(0) = "C3" Tab(1) = "A1" Tab(2) = "C32" Tab(3) = "C302" Tab(4) = "C31" Tab(5) = "C301" Tab(6) = "AB1"
comment faire pour que pon tableau soit trié : 1- de façon alaphabetique pour les caractères qui sont toujours dans la partie gauche 2- de façon croissante pour la partie numérique
je dois avoir comme résultat : Tab(0) = "A1" Tab(1) = "AB1" Tab(2) = "C3" Tab(3) = "C31" Tab(4) = "C32" Tab(5) = "C301" Tab(6) = "C302"
Pounet95
Bonsoir Emcy ( ... et il neige toujours, même si ça ne tient pas )
Si je comprends, tu veux initialiser ton tableau dans un module VBA de telle sorte que tous les éléments de ce dernier soient classés dans l'ordre croissant ?
dans une feuille XL, je décompose ma formule, recopie les lignes tant que besoin et effectue le tri sur les colonnes qui vont bien
exemple ici : http://cjoint.com/?bgryAIfL7U
-- 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...)
"Emcy" a écrit dans le message de news:
bonjour,
en vba, j'ai tableau de type string à l'interieur, j'ai ceci Tab(0) = "C3" Tab(1) = "A1" Tab(2) = "C32" Tab(3) = "C302" Tab(4) = "C31" Tab(5) = "C301" Tab(6) = "AB1"
comment faire pour que pon tableau soit trié : 1- de façon alaphabetique pour les caractères qui sont toujours dans la partie gauche 2- de façon croissante pour la partie numérique
je dois avoir comme résultat : Tab(0) = "A1" Tab(1) = "AB1" Tab(2) = "C3" Tab(3) = "C31" Tab(4) = "C32" Tab(5) = "C301" Tab(6) = "C302"
Bonsoir Emcy ( ... et il neige toujours, même si ça ne tient pas )
Si je comprends, tu veux initialiser ton tableau dans un module VBA de telle
sorte
que tous les éléments de ce dernier soient classés dans l'ordre croissant ?
dans une feuille XL, je décompose ma formule, recopie les lignes tant que
besoin
et effectue le tri sur les colonnes qui vont bien
exemple ici :
http://cjoint.com/?bgryAIfL7U
--
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...)
"Emcy" <toto@bla.com> a écrit dans le message de news:
OwbFRptEGHA.984@tk2msftngp13.phx.gbl...
bonjour,
en vba, j'ai tableau de type string
à l'interieur, j'ai ceci
Tab(0) = "C3"
Tab(1) = "A1"
Tab(2) = "C32"
Tab(3) = "C302"
Tab(4) = "C31"
Tab(5) = "C301"
Tab(6) = "AB1"
comment faire pour que pon tableau soit trié :
1- de façon alaphabetique pour les caractères qui sont toujours dans la
partie gauche
2- de façon croissante pour la partie numérique
je dois avoir comme résultat :
Tab(0) = "A1"
Tab(1) = "AB1"
Tab(2) = "C3"
Tab(3) = "C31"
Tab(4) = "C32"
Tab(5) = "C301"
Tab(6) = "C302"
Bonsoir Emcy ( ... et il neige toujours, même si ça ne tient pas )
Si je comprends, tu veux initialiser ton tableau dans un module VBA de telle sorte que tous les éléments de ce dernier soient classés dans l'ordre croissant ?
dans une feuille XL, je décompose ma formule, recopie les lignes tant que besoin et effectue le tri sur les colonnes qui vont bien
exemple ici : http://cjoint.com/?bgryAIfL7U
-- 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...)
"Emcy" a écrit dans le message de news:
bonjour,
en vba, j'ai tableau de type string à l'interieur, j'ai ceci Tab(0) = "C3" Tab(1) = "A1" Tab(2) = "C32" Tab(3) = "C302" Tab(4) = "C31" Tab(5) = "C301" Tab(6) = "AB1"
comment faire pour que pon tableau soit trié : 1- de façon alaphabetique pour les caractères qui sont toujours dans la partie gauche 2- de façon croissante pour la partie numérique
je dois avoir comme résultat : Tab(0) = "A1" Tab(1) = "AB1" Tab(2) = "C3" Tab(3) = "C31" Tab(4) = "C32" Tab(5) = "C301" Tab(6) = "C302"