Sélectionner et trier plusieurs lignes entre deux valeurs défini
AurelC
-
AurelC -
AurelC -
Bonjour,
Je me tourne vers ce forum car je peche depuis plusieurs jours.
J'ai un tableau qui se compose grosso modo comme ceci :
....
....
....
Etudiants
1
2
3
4
5
Professeurs
1
2
3
4
5
Autres
...
..
.
Ce que je cherche à faire est un bouton qui lorsque l'on clique dessus
Sélectionne toutes les lignes situées entre "Etudiants" et "Professeurs"
Dans l'exemple ci-dessus il y à 5 lignes mais il peux y en avoir plus.
Une fois sélectionnées je souhaite qu'elles soient triée par ordre alphabétique.
J'ai eut beau regarder sur pleins de forums... je ne parviens pas à résoudre ce casse-tête.
Si quelqu'un peux m'aider, ça m'aiderai grandement.
Merci d'avance :)
Je me tourne vers ce forum car je peche depuis plusieurs jours.
J'ai un tableau qui se compose grosso modo comme ceci :
....
....
....
Etudiants
1
2
3
4
5
Professeurs
1
2
3
4
5
Autres
...
..
.
Ce que je cherche à faire est un bouton qui lorsque l'on clique dessus
Sélectionne toutes les lignes situées entre "Etudiants" et "Professeurs"
Dans l'exemple ci-dessus il y à 5 lignes mais il peux y en avoir plus.
Une fois sélectionnées je souhaite qu'elles soient triée par ordre alphabétique.
J'ai eut beau regarder sur pleins de forums... je ne parviens pas à résoudre ce casse-tête.
Si quelqu'un peux m'aider, ça m'aiderai grandement.
Merci d'avance :)
2 réponses
-
Bonjour,
en vba faire Alt F11 pour accéder à l'éditeur
Insérer un module avec ce code
Mettre un bouton sur la feuille concernée et l'associer à la macro:
Option Explicit Public Const cotot As String = "A" Sub Selection() Dim obj As Object, liobjetud, liobjprof, liobjautres As Long Dim DernLigne As Long DernLigne = Range("A65536").End(xlUp).Row With ActiveSheet Set obj = .Columns(cotot).Find("Etudiants", , , xlWhole) If obj Is Nothing Then MsgBox "le mot Etudiants n'est pas en colonne " & cotot: Exit Sub liobjetud = obj.Row Set obj = .Columns(cotot).Find("Professeurs", , , xlWhole) If obj Is Nothing Then MsgBox "le mot Professeurs n'est pas en colonne " & cotot: Exit Sub liobjprof = obj.Row Set obj = .Columns(cotot).Find("Autres", , , xlWhole) If obj Is Nothing Then MsgBox "le mot Autres n'est pas en colonne " & cotot: Exit Sub liobjautres = obj.Row Range("A" & liobjetud + 1 & ":A" & liobjprof - 1).Sort Key1:=Range("A" & liobjetud + 1) Range("A" & liobjprof + 1 & ":A" & liobjautres - 1).Sort Key1:=Range("A" & liobjprof + 1) End With End Sub
Voilà
-