Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Friends223

XLDnaute Nouveau
Hello tous je suis nul en Macro, et je souhaite tout de même essayer de me simplifier la vie avec une modification dans un fichier Excel que j’utilise.
Comme dans le dessin (joint) je souhaiterai que ma ligne qui n’est pas validé par un oui dans la dernière colonne, reste sous les lignes qui elles sont terminé.
C’est peut-être tout simple pour certains d’entre vous, mais pour moi c’est complexe.
Existe-t-il une solution à mon problème ?


Cordialment
Hervé
 
Hello Merci a tous, j'ai eu un code par un autre contact, i fonctionne pas trop mal , je partage.

Merci a vous

Sub Tri()



Dim DerLig As Integer



Dim Plage As Range



With Sheets("Demande de TRANSFERT ")



DerLig = .Range("A" & Rows.Count).End(xlUp).Row

Set Plage = .Range("A4:U" & DerLig)



.Sort.SortFields.Clear

.Sort.SortFields.Add Key:=.Range("U4:U" & DerLig), SortOn:=xlSortOnValues, _

Order:=xlDescending, DataOption:=xlSortNormal



With .Sort

.SetRange Plage

.Header = xlGuess

.MatchCase = False

.Orientation = xlTopToBottom

.SortMethod = xlPinYin

.Apply



End With



End With



End Sub
 
Bon, j'arrive trop tard ... 😩

Code à mettre dans celui de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim To_Sort As Boolean
Dim D As Range, F As Range
Dim Lr As Long, I As Long

    Set D = Rows.Find("Date de la demande")             ' première cellule de la table
    Set F = Rows(D.Row).Find("Dossier Fini + Optilog")  ' dernière cellule de la 1ere ligne de table
    ' Dernière ligne de la feuille
    Lr = Cells.Find("*", LookIn:=xlFormulas, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
    Set Colonne = Me.Columns(F.Column).Rows(F.Row + 1 & ":" & Lr)

    For I = 1 To Target.Count
        If Not Intersect(Target.Cells(I), Colonne) Is Nothing Then To_Sort = True
        If To_Sort And I = Target.Count Then
            Sort.SortFields.Clear
            Sort.SortFields.Add Key:=F, _
                SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
            With Sort
                .SetRange Range(Cells(D.Row , D.Column), Cells(Lr, F.Column))
                .Header = xlYes: .MatchCase = False
                .Orientation = xlTopToBottom: .SortMethod = xlPinYin
                .Apply
            End With
        End If
    Next
        
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
19
Affichages
4 K
Réponses
6
Affichages
2 K
Réponses
8
Affichages
1 K
Réponses
7
Affichages
943
Réponses
3
Affichages
1 K
Retour