Tri de 3000 lignes par ordre croissant + macro tirage

Bonjour,

Je voudrai trier 3000 lignes du plus petit au plus grand.

J'y arrive ligne par ligne mais impossible d'y arriver en sélectionnant plusieurs lignes en même temps.

Exemple:

8 12 19 30 72

23 25 45 56 64

16 18 26 78 79

11 12 43 64 87

56 62 30 90 32

20 41 59 16 47

8 62 70 46 11

68 34 36 54 79

84 52 18 43 41

56 28 80 41 38

Ici je procède par Tri personnalisé sur ligne.

D'avance merci de votre aide

Bonjour,

Pour moi ... ta question n'est pas compréhensible ...

Pardon pour cette question qui suit ... mais, sais-tu trier normalement ?

Comment fais-tu ?

Voir fichier en pièce jointe.

J'essaie de trier 3000 lignes individuellement sur 5 colonnes du plus petit au plus grand.

J'ai l'impression que je dois le faire ligne par ligne, un truc de dingue...

Je ne connais pas l'astuce pour tirer le tri de ma 1ère ligne sur les 2999 autres ...

D'avance merci.

tableau 01 excel

bonjour,

Ce n'est possible ni en ligne ni en colonne. (Du moins pas en 1 seule fois...)

La seule manière d'y arriver est par macro et ligne après ligne :

Sub test()
Dim s$, i%
For i = 1 To 10
s = "A" & i & ":E" & i
    Range(s).Sort Key1:=Range("A" & i), Header:=xlNo, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight
Next
End Sub

A+

Merci, je me doutais bien de la réponse

Pour la macro, là je suis un grand ZÉRO.

Comment la faire ?

Tu me dis ligne par ligne, çà va me prendre un temps de dingue alors ? ?

Bon bin j'vais faire ligne par ligne

Bonjour,

Non, applique la solution de galopin01. Elle ira très bien.

Sinon joins ton fichier quelqu'un va mettre le code en place.

Cordialement

Bonjour,

Non par macro c'est instantané (ou quasiment...)

C'est relativement facile.

Toutefois il faut déjà que ton Excel soit paramétré pour accepter les macros :

menu Fichier > Centre de Gestion de la confidentialité puis

Paramètres du Centre de Gestion de la confidentialité > Paramètre des macros puis...

Cocher Activer toutes les macros et

Accès approuvé au modèle d'objet VBA

Activer la feuille à trier. faire un Clic Droit sur l'onglet de la feuille puis choisir Visualiser le Code

Dans la partie vide qui s'est ouverte Coller cette macro (légèrement modifiée par rapport à la précédente)

Sub Galopin()
Dim s$, i%
Application.ScreenUpdating = False
For i = 1 To 3000
s = "A" & i & ":E" & i
    Range(s).Sort Key1:=Range("A" & i), Header:=xlNo, _
        OrderCustom:=1, MatchCase:=False, Orientation:=xlLeftToRight
Next
End Sub

Tu dois alors avoir un écran qui ressemble peu ou prou à ça :

vba

Eventuellement modifier la ligne :

For i = 1 To 3000 en remplaçant par les numéros de lignes exact à trier

Appuyer sur la touche F5

C'est terminé la feuille est triée

Tu peux maintenant supprimer la macro ( ou la garder si tu penses en avoir besoin ultérieurement. et fermer la fenêtre des macros en cliquant sur la croix rouge. Toutefois si tu gardes la macro le classeur devra être enregistré au format *.xlsm

A+

ddetp88 a écrit :

Bonjour,

Non, applique la solution de galopin01. Elle ira très bien.

Sinon joins ton fichier quelqu'un va mettre le code en place.

Cordialement

Super idée ! Je n'y connais rien dans les macro

Merci à celui qui me fera ce travail


Je vais essayer Galopin, merci du coup de pouce

Je laisse le plaisir à Galopin01.

IL a tout fait

Au plaisir

J'ai mis en place le code de galopin01.

C'est à lui que revient le travail.

Cordialement

Pas besoin d'être un expert pour essayer... YAVéKA faire ce que j'ai expliqué plus haut.

Au moins tu aurais appris quelque chose qui pourrait te resservir à l'avenir.

Sinon la prochaine fois tu ne sauras toujours pas faire...

A+

Merci à vous DEUX !

T'inquiète galopin01, demain j'essaie çà et promis vais essayer d'intégrer le code moi-même

Bonsoir,

si tu rencontres des difficultés dans la mise en œuvre de cette première macro relis attentivement mon petit mode opératoire : En principe je n'ai rien oublié.

Et si ça ne marche toujours pas, reviens. Ne lâche pas l'affaire car l'utilisation des macros multiplie par 100 toute la puissance d'Excel.

A+

Voilà, code inséré !

Super et encore merci

Je voudrai enchaîner sur une autre demande, j'explique en quelques phrases mon désir :

C'est pour un jeu Lotto/Bingo !

Toujours via un tableau excel serait-il possible suivant le tirage de colorer les cellules des numéros sortants ?

Un petit dessin vaut mieux qu'un long discours

1er tirage: 5 (en B3) - 21 (en C3) - 11 (en D3) - etc il se pourrait qu'il y ai une trentaine du numéros.

idem pour les lignes, je pourrai en avoir une centaine !

tirage

Help

Bonjour,

Maintenant que tu sais, mets ce code en place dans la feuille.

Il va falloir faire quelques adaptations par rapport aux plages que tu veux traiter.

Sub tirage()

Dim i As Byte

Dim Num As Variant

Dim tabTirage(0 To 8)

Range("A1:E3300").Interior.ColorIndex = xlNone

For i = 0 To 8

tabTirage(i) = Cells(3, i + 9).Value

Next i

For Each Num In Range("A1:E3300")

For i = 0 To 8

If Num = tabTirage(i) Then

Num.Interior.ColorIndex = 4

End If

Next i

Next

End Sub

On veut voir le résultat dans le fichier :)

Cordialement

Merci ddetp88

Voilà mon fichier avec le code inséré, j'ai essayé de bidouiller le code et voilà le résultat.

En remarque: dans la ligne du 1er tirage j'ai inséré 37 chiffres, le soucis que j'ai remarqué c'est que si j'en retire un et le remplace par un vide, un zéro les cellules concernées par le chiffre retiré reste en vert dans le tableau.

Idem si je change un numéro, le numéro changé reste et le nouveau s'ajoute.

Autre question au niveau visuel, est-ce je peux forcer via 'couleur de remplissage' de mettre certaines couleurs dans le tableau OU est-ce que la macro prendra toujours le dessus ? Ici il m'a m'avait mis les cellules en vert jusque la ligne 3300 d'où mon fichier à gonfler à plus de 350ko, j'ai supprimé le remplissage manuellement pour retomber à 190ko.

21exemple-tirage.xlsm (195.21 Ko)

Pour les couleurs j'ai trouvé

Pour ce qui est des nombres supprimés ou modifiés aussi !

Il suffit de sélectionner la zone des nombres et de retirer la zone de remplissage (couleur vert) et re-générer le code !

Ce qu'il me faudrait c'est créer une macro qui m'effacerai le remplissage automatiquement d'une zone, exemple B1 à R155.

J'insérerai un 2ème bouton à côté de celui que j'ai créé 'mise à jour'.

Ce qui serait bien aussi c'est dès qu'une zone de 5 chiffres exemple B15->F15 que cette zone change de couleur ou que j'ai un avertissement, possible çà ?

28exemple-tirage.xlsm (211.61 Ko)

Bonjour,

Si tu as uniquement besoin de l'instruction pour effacer ta plage ...

Range("B1:R155").ClearContents
Rechercher des sujets similaires à "tri 3000 lignes ordre croissant macro tirage"