Bonjour à tous,
Je vous sollicite pour un soucis que je rencontre dans mon code VBA.
Je dispose d'un classeur excel avec 3 feuilles :
J'ai réalisé la première partie de mon code qui me permet de couper/coller une ligne (d’environ 15 colonnes) de la feuille "actif" vers une autre feuille en fonction d'une donnée d'une cellule "Q"(perdu ou en veille).
Si la cellule Q indique en veille, alors la ligne et coupée et collée dans la feuille "en veille".
Jusque là, tout fonctionne.
En revanche, j'aimerais que la feuille dans laquelle arrive cette ligne soit triée selon 2 critères successifs.
Premièrement, par un critère colonne B (numérique) puis un critère colonne A (alphabétique).
Sauriez-vous comment intégrer ce tri dans le code ci-dessous ?
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [Q3:Q250]) Is Nothing Then 'plage à adapter
If Target.Count > 1 Then Exit Sub 'si on modifie plusieurs cellules simultanément
If UCase(Target) = "EN VEILLE" Then
nouvlig = Sheets("EN VEILLE").Cells(Rows.Count, 1).End(xlUp).Row + 1 'index de la première ligne vide dans "Archives"
Cells(Target.Row, 1).Resize(1, 26).Copy
Sheets("EN VEILLE").Cells(nouvlig, 1).Resize(1, 26).PasteSpecial
Application.EnableEvents = False 'désactiver les événements
Cells(Target.Row, 1).EntireRow.Delete
Application.EnableEvents = True
End If
On Error Resume Next
If Not Intersect(Target, [Q3:Q250]) Is Nothing Then 'plage à adapter
If Target.Count > 1 Then Exit Sub 'si on modifie plusieurs cellules simultanément
If UCase(Target) = "PERDU" Then
nouvlig = Sheets("PERDU").Cells(Rows.Count, 1).End(xlUp).Row + 1 'index de la première ligne vide dans "Archives"
Cells(Target.Row, 1).Resize(1, 26).Copy
Sheets("PERDU").Cells(nouvlig, 1).Resize(1, 26).PasteSpecial
Application.EnableEvents = False 'désactiver les événements
Cells(Target.Row, 1).EntireRow.Delete
Application.EnableEvents = True
End If
End If
End If
End Sub
Merci par avance,
Juju