Matérialiser les coordonnées d'une plage de cellules variable

Fermé
dubdub48 - Modifié par dubdub48 le 19/03/2015 à 14:13
Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 - 21 mars 2015 à 10:31
Bonjour à tous

Je voudrais faire un tri sur une plage de cellule après avoir insérer une ligne sous la ligne de titre.

Ma plage de cellule peut varier par l'insertion de lignes en amont de la ligne de titre

Je pense que la base est de donner un nom à la première cellule (colonne A) de la ligne de titre puis d'utiliser une variable, mais je n'arrive pas à écrire la syntaxe

ci après l'écriture pour le tri qui fonctionne très bien

La plage de tri commence à la ligne 133 c'est à ce niveau que je souhaiterais une variable cette ligne pouvant être modifiée par l'insertion de lignes en amont comme indiqué précédemment.

Dim col As Integer, lig As Long

col = Cells(133, 1).End(xlToRight).Column
lig = Cells(133, 1).End(xlDown).Row
Range(Cells(133, 1), Cells(lig, col)).Sort Key1:=Range("G133"), Key2:=Range("I133")


Merci d'avance

Cordialement
A voir également:

1 réponse

Frenchie83 Messages postés 2240 Date d'inscription lundi 6 mai 2013 Statut Membre Dernière intervention 11 août 2023 338
21 mars 2015 à 10:31
Bonjour
En supposant que votre ligne de Titres est sur la ligne 132, vous voulez faire un tri à partir de la ligne 133, puis vous insérez une ligne supplémentaire au-dessus de la ligne 133, et vous voulez faire un tri à partir de la ligne 134 et ainsi de suite.
Je procèderai de la façon suivante: Avant le tri, faite une recherche du titre de la colonne A et récupérer le N° de la ligne, la première ligne de tri sera ce numéro +1.
Exemple
'cherche titre colonne A
Set c = Columns("A").Find("Titre", LookIn:=xlValues)
PremLig=c.Row +1
Puis vous rajoutez votre code 
col = Cells(c, 1).End(xlToRight).Column
lig = Cells(c, 1).End(xlDown).Row
Range(Cells(c, 1), Cells(lig, col)).Sort Key1:=cells(c,7) 'Range("G133"), Key2:=cells(c,9) 'Range("I133") 

si j'ai bien compris
cdlt
0