Sélectionner la dernière cellule avant tri

Essart

XLDnaute Junior
Bonjour,

en m'inspirant de ce que JB propose sur son site,
je veux mettre un tri en évènementielle, et qu'après ce tri l'ancienne target soit sélectionnée dans sa nouvelle position

J'ai tapé , le tri se fait mais cela ça ne sélectionne rien !

le tableau a des titres en 1ère ligne et des données dans les lignes suivantes
et la cellule qui déclenche la macro est la dernière de la colonne A

[Private Sub Worksheet_SelectionChange(ByVal Target As Range)

nomCherche = Target.Value
ActiveSheet.Range([A2], [A2].End(xlDown).Offset(0, 10)).Sort Key1:=[A2], Key1:=[B2]
Set result = [A:A].Find(What:=nomCherche, LookIn:=xlValues, LookAt:=xlWhole)
result.Select
End Sub]

J'ai aussi essayé avec Match mais sans plus de succès !
Qu'est-ce qui cloche dans mon repositionnement ...?

Merci pour votre aide
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Sélectionner la dernière cellule avant tri

Bonjour Essart,

Repris d'un ancien fichier, un fichier dont vous pourrez peut-être vous inspirer. La méthode est basée sur l'utilisation d'un commentaire attribué à la cellule Target avant le tri pour pouvoir la retrouver après le tri.

VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim xcell As Range, NomCherche, s As String

'pas dans données de la colonne A => on ne fait rien
If Intersect(Target(1, 1), Range(Range("A1"), Range("A" & Rows.Count).End(xlUp))) Is Nothing Then Exit Sub

NomCherche = Target.Value
' si target a ou n'a pas de commentaire associé => on le modifie ou le crée
If Target(1, 1).Comment Is Nothing Then Target(1, 1).AddComment "\\\\" _
      Else Target(1, 1).Comment.Text "////" & Target(1, 1).Comment.Text
'tri
ActiveSheet.Range([A2], [A2].End(xlDown).Offset(0, 10)).Sort Key1:=[A2], Key1:=[B2]
'boucle sur les cellules avec commentaires de la colonne A
For Each xcell In Range("A:A").SpecialCells(xlCellTypeComments)
  s = xcell.Comment.Text
  If Left(s, 4) = "\\\\" Then
    'le commentaire de Target a été créé par cette proc => on le supprime
    xcell.ClearComments
    'sélection de target et on sort
    xcell.Select: Exit For
  ElseIf Left(s, 4) = "////" Then
    'le commentaire de Target existait => on le restaure
    xcell.ClearComments: xcell.AddComment Text:=Mid(s, 5)
    'sélection de target et on sort
    xcell.Select: Exit For
  End If
Next xcell
End Sub


NB: un fichier exemple joint par vous eût été sympathique :)

Edit : v2
 

Pièces jointes

  • Sélectionner la dernière cellule avant tri v2.xls
    42 KB · Affichages: 91
Dernière édition:

Essart

XLDnaute Junior
Re : Sélectionner la dernière cellule avant tri

Bonjour mapomme,

Merci beaucoup pour ton aide
c'est exactement ce que je cherchait à faire
mais je ne pensait pas que cela soit si compliqué à réaliser

Pour la prochaine fois, je mettrai un petit fichier joint ... mille excuses !

Essart
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Sélectionner la dernière cellule avant tri

Bonjour,

Voir PJ

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
 If Target.Column = 1 And Target.Count = 1 Then
    nom = Target
    [A2:J1000].Sort key1:=[A2]
    [A:A].Find(what:=nom).Select
 End If
End Sub

JB
 

Pièces jointes

  • Copie de Sélectionner la dernière cellule avant tri v2.xls
    32 KB · Affichages: 38
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
314 496
Messages
2 110 236
Membres
110 708
dernier inscrit
novy16