teodormircea
XLDnaute Occasionnel
Bonjour,
Je suis en train de faire une macros qui reproduit le sort de excel
j'ai la partie qui détecte le range, et les combo pour sélecter les colonnes.
Pour le sort je sais comment le faire, mais je sais pas lier les macros entre elles.
voila pour le combobox-colonnes
Pour trouver la zone active
et le code qui reunit les 2
Il me manque le code pour faire un sort Ascendant sur la zone avec les colonnes selectes avec les combo.
Je suis en train de faire une macros qui reproduit le sort de excel
j'ai la partie qui détecte le range, et les combo pour sélecter les colonnes.
Pour le sort je sais comment le faire, mais je sais pas lier les macros entre elles.
voila pour le combobox-colonnes
Code:
Private Sub CBO_Fill()
Dim oRng As Range
'Remplit la Combo
With ActiveSheet
Set oRng = Range(.Cells(1, 1), .Cells(1, Columns.Count).End(xlToLeft))
ComboBox1.List = Application.Transpose(oRng)
ComboBox2.List = Application.Transpose(oRng)
ComboBox3.List = Application.Transpose(oRng)
End With
ComboBox1.ListIndex = 0
ComboBox2.ListIndex = 0
ComboBox3.ListIndex = 0
End Sub
Pour trouver la zone active
Code:
Public Function RealUsedRange() As Range
Dim FirstRow As Long
Dim LastRow As Long
Dim FirstColumn As Integer
Dim LastColumn As Integer
On Error Resume Next
FirstRow = Cells.Find(What:="*", After:=Range("IV65536"), LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext).Row
FirstColumn = Cells.Find(What:="*", After:=Range("IV65536"), LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext).Column
LastRow = Cells.Find(What:="*", After:=Range("A1"), LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row - 1
LastColumn = Cells.Find(What:="*", After:=Range("A1"), LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
Set RealUsedRange = Range(Cells(FirstRow, FirstColumn), Cells(LastRow, LastColumn))
On Error GoTo 0
End Function
et le code qui reunit les 2
Code:
Sub Range_SORT()
Dim Rng1 As Range
Set Rng1 = RealUsedRange
If Rng1 Is Nothing Then
MsgBox "There is no used range, the worksheet is empty."
Else
CBO_Fill
Rng1.Select
End If
End Sub
Il me manque le code pour faire un sort Ascendant sur la zone avec les colonnes selectes avec les combo.