Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Tri d'un fichier xls

4 réponses
Avatar
MorMic
Bonsoir à tous

J'essai en vain de trier une feuille excel en VBA en utilisant SORT.
Je dois faire une grosse erreur de compréhension.
Quelqu'un peut-il m'expliquer le pourquoi de la chose ?
Merci d'avance.
Voici mon code:

Private Sub GoButton_Click()
Dim mNomFichierXls As String
mNomFichierXls = Range("A1")
Dim mFicBase As Object
Dim mLgBase As Integer
On Error GoTo GestionErreur
Set mFicBase = GetObject(mNomFichierXls)
With mFicBase.Sheets(1)
mLgBase = .Range("I1").End(xlDown).Row
.Cells.Select
Selection.Sort Key1:=.Range("AN2"), Order1:=xlAscending, _
Key2:=.Range("K2"), Order2:=xlAscending, Header:=xlGuess,
OrderCustom:=1, _
MatchCase:=False, Orientation:=xlTopToBottom
End With
mFicBase.Save
mFicBase.Close
Set mFicBase = Nothing
GoTo FinSub
GestionErreur:
MsgBox "Erreur N° " & Err
Resume FinSub
FinSub:
End Sub


Michel

4 réponses

Avatar
MichDenis
Modifie cette section de cette manière :

Set mFicBase = GetObject(mNomFichierXls)
Set sh = mFicBase.Sheets(1)
With sh
With .Range("I1").CurrentRegion
.Sort Key1:=sh.Range("AN2"), Order1:=xlAscending, _
Key2:=sh.Range("K2"), Order2:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:úlse, Orientation:=xlTopToBottom
End With
End With



"MorMic" a écrit dans le message de news:
46953b88$0$5087$
Bonsoir à tous

J'essai en vain de trier une feuille excel en VBA en utilisant SORT.
Je dois faire une grosse erreur de compréhension.
Quelqu'un peut-il m'expliquer le pourquoi de la chose ?
Merci d'avance.
Voici mon code:

Private Sub GoButton_Click()
Dim mNomFichierXls As String
mNomFichierXls = Range("A1")
Dim mFicBase As Object
Dim mLgBase As Integer
On Error GoTo GestionErreur
Set mFicBase = GetObject(mNomFichierXls)
With mFicBase.Sheets(1)
mLgBase = .Range("I1").End(xlDown).Row
.Cells.Select
Selection.Sort Key1:=.Range("AN2"), Order1:=xlAscending, _
Key2:=.Range("K2"), Order2:=xlAscending, Header:=xlGuess,
OrderCustom:=1, _
MatchCase:úlse, Orientation:=xlTopToBottom
End With
mFicBase.Save
mFicBase.Close
Set mFicBase = Nothing
GoTo FinSub
GestionErreur:
MsgBox "Erreur N° " & Err
Resume FinSub
FinSub:
End Sub


Michel
Avatar
MorMic
Merci MichDenis

Si je comprends bien, il faut passer par une variable intermédiaire, une
image en quelquesorte de l'objet préalablement défini. Faut-il aussi le
déclarer par Dim sh as object ?

MM

"MichDenis" a écrit dans le message de news:
Oj5kgw$
Modifie cette section de cette manière :

Set mFicBase = GetObject(mNomFichierXls)
Set sh = mFicBase.Sheets(1)
With sh
With .Range("I1").CurrentRegion
.Sort Key1:=sh.Range("AN2"), Order1:=xlAscending, _
Key2:=sh.Range("K2"), Order2:=xlAscending, Header:=xlYes,
_

OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom

End With
End With



"MorMic" a écrit dans le message de news:
46953b88$0$5087$
Bonsoir à tous

J'essai en vain de trier une feuille excel en VBA en utilisant SORT.
Je dois faire une grosse erreur de compréhension.
Quelqu'un peut-il m'expliquer le pourquoi de la chose ?
Merci d'avance.
Voici mon code:

Private Sub GoButton_Click()
Dim mNomFichierXls As String
mNomFichierXls = Range("A1")
Dim mFicBase As Object
Dim mLgBase As Integer
On Error GoTo GestionErreur
Set mFicBase = GetObject(mNomFichierXls)
With mFicBase.Sheets(1)
mLgBase = .Range("I1").End(xlDown).Row
.Cells.Select
Selection.Sort Key1:=.Range("AN2"), Order1:=xlAscending, _
Key2:=.Range("K2"), Order2:=xlAscending, Header:=xlGuess,
OrderCustom:=1, _
MatchCase:úlse, Orientation:=xlTopToBottom
End With
mFicBase.Save
mFicBase.Close
Set mFicBase = Nothing
GoTo FinSub
GestionErreur:
MsgBox "Erreur N° " & Err
Resume FinSub
FinSub:
End Sub


Michel







Avatar
MichDenis
Si tu veux déclarer la variable sh, fait le de cette façon :

Dim Sh as Worksheet



"MorMic" a écrit dans le message de news:
4695481b$0$5066$
Merci MichDenis

Si je comprends bien, il faut passer par une variable intermédiaire, une
image en quelquesorte de l'objet préalablement défini. Faut-il aussi le
déclarer par Dim sh as object ?

MM

"MichDenis" a écrit dans le message de news:
Oj5kgw$
Modifie cette section de cette manière :

Set mFicBase = GetObject(mNomFichierXls)
Set sh = mFicBase.Sheets(1)
With sh
With .Range("I1").CurrentRegion
.Sort Key1:=sh.Range("AN2"), Order1:=xlAscending, _
Key2:=sh.Range("K2"), Order2:=xlAscending, Header:=xlYes,
_

OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom

End With
End With



"MorMic" a écrit dans le message de news:
46953b88$0$5087$
Bonsoir à tous

J'essai en vain de trier une feuille excel en VBA en utilisant SORT.
Je dois faire une grosse erreur de compréhension.
Quelqu'un peut-il m'expliquer le pourquoi de la chose ?
Merci d'avance.
Voici mon code:

Private Sub GoButton_Click()
Dim mNomFichierXls As String
mNomFichierXls = Range("A1")
Dim mFicBase As Object
Dim mLgBase As Integer
On Error GoTo GestionErreur
Set mFicBase = GetObject(mNomFichierXls)
With mFicBase.Sheets(1)
mLgBase = .Range("I1").End(xlDown).Row
.Cells.Select
Selection.Sort Key1:=.Range("AN2"), Order1:=xlAscending, _
Key2:=.Range("K2"), Order2:=xlAscending, Header:=xlGuess,
OrderCustom:=1, _
MatchCase:úlse, Orientation:=xlTopToBottom
End With
mFicBase.Save
mFicBase.Close
Set mFicBase = Nothing
GoTo FinSub
GestionErreur:
MsgBox "Erreur N° " & Err
Resume FinSub
FinSub:
End Sub


Michel







Avatar
MorMic
Merci encore MichDenis

Cela ne se plante plus mais j'ai une situation bizarre:
le fichier que je viens de trier, je le sauve, puis je le ferme mais lorsque
je l'ouvre à nouveau, rien n'apparaît, comme si le fichier était creux, vidé
de son contenu ????

Si tu as une idée....

Michel

"MichDenis" a écrit dans le message de news:

Si tu veux déclarer la variable sh, fait le de cette façon :

Dim Sh as Worksheet



"MorMic" a écrit dans le message de news:
4695481b$0$5066$
Merci MichDenis

Si je comprends bien, il faut passer par une variable intermédiaire, une
image en quelquesorte de l'objet préalablement défini. Faut-il aussi le
déclarer par Dim sh as object ?

MM

"MichDenis" a écrit dans le message de news:
Oj5kgw$
Modifie cette section de cette manière :

Set mFicBase = GetObject(mNomFichierXls)
Set sh = mFicBase.Sheets(1)
With sh
With .Range("I1").CurrentRegion
.Sort Key1:=sh.Range("AN2"), Order1:=xlAscending, _
Key2:=sh.Range("K2"), Order2:=xlAscending,
Header:=xlYes,


_
OrderCustom:=1, MatchCase:úlse,
Orientation:=xlTopToBottom

End With
End With



"MorMic" a écrit dans le message de news:
46953b88$0$5087$
Bonsoir à tous

J'essai en vain de trier une feuille excel en VBA en utilisant SORT.
Je dois faire une grosse erreur de compréhension.
Quelqu'un peut-il m'expliquer le pourquoi de la chose ?
Merci d'avance.
Voici mon code:

Private Sub GoButton_Click()
Dim mNomFichierXls As String
mNomFichierXls = Range("A1")
Dim mFicBase As Object
Dim mLgBase As Integer
On Error GoTo GestionErreur
Set mFicBase = GetObject(mNomFichierXls)
With mFicBase.Sheets(1)
mLgBase = .Range("I1").End(xlDown).Row
.Cells.Select
Selection.Sort Key1:=.Range("AN2"), Order1:=xlAscending, _
Key2:=.Range("K2"), Order2:=xlAscending, Header:=xlGuess,
OrderCustom:=1, _
MatchCase:úlse, Orientation:=xlTopToBottom
End With
mFicBase.Save
mFicBase.Close
Set mFicBase = Nothing
GoTo FinSub
GestionErreur:
MsgBox "Erreur N° " & Err
Resume FinSub
FinSub:
End Sub


Michel