Syntaxe de VB, Tri
Résolu
Patscaph
-
Patscaph -
Patscaph -
Bonjour,
Excel 2007,
Je bugg dans la formulation suivante car ma syntaxe fait définitivement défaut. Je souligne les endroits que je crois problématique pour que quelqu'un puisse rapidement me suggérer la formulation acceptable Merci....
Ceci fait la recherche de la denière ligne de la colonne 35 et y applique un tri de la ligne 6 jusqu'à derlig pour par la suite les entrer dans un ComboBox1. Je sais que l'entée dans le combobox fonctionne bien mais la première partie consistant au tri est difficile à délimiter. Range.... Peut être y a-t-il autre problème à vous de voir Merci
Dim I As Long, DerLig As Long
DerLig = .Cells(Rows.Count, 35).End(xlUp).Row 'Spécifie la colonne35 de la Feuille de calcul
Rows("6:Derlig").Select
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("AI6:AI $ Derlig" _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("AQ6:AQ & Derlig" _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Feuil1").Sort
.SetRange Range("A6:AR & Derlig")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A6").Select
End Sub
With Sheets("Feuil1") 'Ici, il faut mettre le bon nom de l'onglet
DerLig = .Cells(Rows.Count, 35).End(xlUp).Row 'Spécifie la colonne35 de la Feuille de calcul
For I = 6 To DerLig 'Débute à la ligne 6 pour se poursuivre jusqu'à la dernière ligne
Me.ComboBox1.AddItem .Cells(I, 35).Value 'Aditionne les infos de la colonne 35 à la I ligne
Next I
End With
End Sub
Excel 2007,
Je bugg dans la formulation suivante car ma syntaxe fait définitivement défaut. Je souligne les endroits que je crois problématique pour que quelqu'un puisse rapidement me suggérer la formulation acceptable Merci....
Ceci fait la recherche de la denière ligne de la colonne 35 et y applique un tri de la ligne 6 jusqu'à derlig pour par la suite les entrer dans un ComboBox1. Je sais que l'entée dans le combobox fonctionne bien mais la première partie consistant au tri est difficile à délimiter. Range.... Peut être y a-t-il autre problème à vous de voir Merci
Dim I As Long, DerLig As Long
DerLig = .Cells(Rows.Count, 35).End(xlUp).Row 'Spécifie la colonne35 de la Feuille de calcul
Rows("6:Derlig").Select
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("AI6:AI $ Derlig" _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("Feuil1").Sort.SortFields.Add Key:=Range("AQ6:AQ & Derlig" _
), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Feuil1").Sort
.SetRange Range("A6:AR & Derlig")
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A6").Select
End Sub
With Sheets("Feuil1") 'Ici, il faut mettre le bon nom de l'onglet
DerLig = .Cells(Rows.Count, 35).End(xlUp).Row 'Spécifie la colonne35 de la Feuille de calcul
For I = 6 To DerLig 'Débute à la ligne 6 pour se poursuivre jusqu'à la dernière ligne
Me.ComboBox1.AddItem .Cells(I, 35).Value 'Aditionne les infos de la colonne 35 à la I ligne
Next I
End With
End Sub
A voir également:
- Syntaxe de VB, Tri
- Comment faire un tri personnalisé sur excel - Guide
- Logiciel tri photo - Guide
- Vb - Télécharger - Langages
- Vb cable - Télécharger - Audio & Musique
- En cours de traitement sur le site de tri local - Forum Consommation & Internet
2 réponses
Bonjour,
Excusez l'incruste...
Pour remplir un combo avec une liste triée :
Cordialement,
Franck P
Excusez l'incruste...
Pour remplir un combo avec une liste triée :
Private Sub blabla 'ADAPTE selon l'événement choisi !!!!! 'le remplissage du combo : Dim temp() temp = Application.Transpose(Sheets("Feuil1").Range("AI6:AI" & Sheets("Feuil1").Range("AI" & Rows.Count).End(xlUp).Row).Value) Call tri(temp, LBound(temp), UBound(temp)) ComboBox1.List = temp End Sub 'La procédure de tri Sub tri(a(), gauc, droi) ' Quick sort 'sources : 'http://boisgontierjacques.free.fr/pages_site/tableaux.htm Dim ref, g As Long, d As Long, temp ref = a((gauc + droi) \ 2) g = gauc: d = droi Do Do While a(g) < ref: g = g + 1: Loop Do While ref < a(d): d = d - 1: Loop If g <= d Then temp = a(g): a(g) = a(d): a(d) = temp g = g + 1: d = d - 1 End If Loop While g <= d If g < droi Then Call tri(a, g, droi) If gauc < d Then Call tri(a, gauc, d) End Sub
Cordialement,
Franck P
Patscaph
j'ai regroupé cette question avec une autre que j'ai posté à Michel_M et je crois que tu es aussi sur le coup... Je vais tout de même analyser le code que tu me proposes Merci