Tri colonne sans macro recorder
Linkmojo
Messages postés
175
Date d'inscription
Statut
Membre
Dernière intervention
-
Linkmojo Messages postés 175 Date d'inscription Statut Membre Dernière intervention -
Linkmojo Messages postés 175 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaite faire un code pouvant trier deux colonnes. La première étant des noms d'élèves, la deuxième les notes de ses élèves. Je n'ai pas le droit d'utiliser le macro recorder ni d'utiliser le tri d'excel tout doit se faire exclusivement par vba.
Le tri doit être décroissant, il faudrait donc que je puisse sélectionner la colonne, définir le range comme intervalle à trier puis coller les colonnes ailleurs dans la feuille excel.
L'exercice est simple mais je suis un peu (beaucoup) rouillé du vba et après quelques recherches je n'ai trouvé que des gens conseillant de faire un macro recorder.
Merci d'avance
Je souhaite faire un code pouvant trier deux colonnes. La première étant des noms d'élèves, la deuxième les notes de ses élèves. Je n'ai pas le droit d'utiliser le macro recorder ni d'utiliser le tri d'excel tout doit se faire exclusivement par vba.
Le tri doit être décroissant, il faudrait donc que je puisse sélectionner la colonne, définir le range comme intervalle à trier puis coller les colonnes ailleurs dans la feuille excel.
L'exercice est simple mais je suis un peu (beaucoup) rouillé du vba et après quelques recherches je n'ai trouvé que des gens conseillant de faire un macro recorder.
Merci d'avance
A voir également:
- Tri colonne sans macro recorder
- Trier colonne excel - Guide
- Déplacer colonne excel - Guide
- Jitbit macro recorder - Télécharger - Confidentialité
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Colonne word - Guide
1 réponse
Bien je me répond à moi même ayant trouvé une formule pratique :
Sub Macro1()
'
Dim Notes As Double
Dim eleve As String
Dim n As Single
Dim i As Double
Dim l As Single
Call Clean
Range("C4").Select
Range(Selection, Selection.End(xlDown)).Select
n = Application.WorksheetFunction.Count(Selection)
For i = 20 To 0 Step -0.5
For j = 0 To n
Notes = Cells(4 + j, 3)
eleve = Cells(4 + j, 2)
If Notes = i Then
If Range("G4") = "" Then
Range("G4").Value = Notes
Range("F4").Value = eleve
Else
While (Cells(3 + l, 7).Value <> "")
l = l + 1
Wend
Cells(3 + l, 7).Select
Selection = Notes
Cells(3 + l, 6).Select
Selection = eleve
End If
End If
Next j
Next i
End Sub
Sub Macro1()
'
Dim Notes As Double
Dim eleve As String
Dim n As Single
Dim i As Double
Dim l As Single
Call Clean
Range("C4").Select
Range(Selection, Selection.End(xlDown)).Select
n = Application.WorksheetFunction.Count(Selection)
For i = 20 To 0 Step -0.5
For j = 0 To n
Notes = Cells(4 + j, 3)
eleve = Cells(4 + j, 2)
If Notes = i Then
If Range("G4") = "" Then
Range("G4").Value = Notes
Range("F4").Value = eleve
Else
While (Cells(3 + l, 7).Value <> "")
l = l + 1
Wend
Cells(3 + l, 7).Select
Selection = Notes
Cells(3 + l, 6).Select
Selection = eleve
End If
End If
Next j
Next i
End Sub