Tri d'une collone sous vba
RésoluJ'ai une colonne sur excel,
Comment dois je faire pour trier la colonne sans utiliser de macro??
Merci d'avance
11 réponses
La discussion porte sur comment trier une colonne dans Excel sans recourir à une macro, en explorant différentes méthodes et leurs limites pratiques dans ce sujet. Plusieurs réponses évoquent l'usage de scripts VBA et l'ajout éventuel d'un bouton, tandis que d'autres proposent des solutions sans macro comme le filtre automatique ou le tri via les options de données. La plupart des échanges tournent autour d'un tri via VBA, avec des exemples de code utilisant Range et Sort, mais certains participants remarquent qu'il existe des méthodes plus simples sans macro. En outre, des contributions rappellent les distinctions entre Range et Cells et entre références absolues et relatives pour guider les exemples, même si le recours à une macro demeure fréquent.
-
ContributeurBonjour,
explication ????
A+ -
Salut,
données/filtre automatique
ou encore données et tri
A+ -
données et tri , pourriez vous m'aider?
-
-
@dandypunkOui c'est gentil mais je cherche un tri de programmation de VBA
Mais pas les fonctions toute faite d'excel
Personne?
-
-
Tu veux du tri shell, du tri à bulle ou quelque chose dans ce genre.
-
Un code vba est une macro. C'est donc antinomique avec ton POST 1
-
C'est quand meme ce que l'on appelle une macro vba.
J'essaye de te créer quelque chose avec le Range("A1:A193") vers le Range("B1:B193")
Réponse dans une petite heure. (Le temps de faire la mise en forme) -
Salut,
un code macro
Sub Tri_Croissant()
Range("A1:A193").Sort Key1:=Range("A1"), Order1:=xlAscending
ActiveWorkbook.Save 'enregistrement des modifs
End Sub
A+ -
C'est fait:
Sub Tri() Dim bGenreTri As Boolean Range("A1:A193").Select 'On sélectionne la plage de données Selection.Copy 'On copie la sélection Range("B1").Select 'On sélectionne le début de la plage de destination ActiveSheet.Paste 'On copie bGenreTri = MsgBox("Désirez vous un tri croissant ?", vbYesNo, "Choix du tri") If bGenreTri = vbYes Then 'Tri croissant Selection.Sort Key1:=Range("B1"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom Else 'Tri décroissant Selection.Sort Key1:=Range("B1"), Order1:=xlDescending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom End If End Sub
Maintenant tu crée un bouton et tu lui affecte la macro.-
-
@numbat>N'oublie pas de marquer ton problème comme résolu.
-
@dandypunkc fé merci,
Pour mettre que ca soit sur une colonne horizontale, je remplace Range(cells(3,x)).Select
Pourquoi il ne veut pas fonctionner?
-
-
Cells n'est pas approprié à ce niveau.
Au plus simple:Range("C3") correspond à la cellule absolue C3 Range("$C$3) correspond à la cellule relative C3 Range("C4:F12") correspond à la plage C4:F12 Le tout peut se décliner avec $-
-
-
@dandypunkca serait super gentil, c'est dejà super comme ca de pouvoir m'aider !
-
-
Pour ton post 23, laisse moi deux ou trois jours, d'autres attendent.
Pour ton post 21 :
commence à remplir les 3 premières cellules.
sélectionne les. en bas à droite, tu as un carré un peu plus gros
avec ta souris clique dessus et étend ta sélection. (à savoir tire vers le bas (ouvers la droite en fonction de la sélection))
Cela est valable aussi pour les "pas" constants (e.g.) 2,4,6...; voire pour les dates -
Ton post est résolu donc en cas de problème, cf ton POST 21 ouvre un autre POST.
Cela permettra un mise à jour plus simple de la "base de résolution" de ce forum.
Dura lex sed lex.
Merci d'avoir dit merci.