Comment faire un tri sans tenir compte de ligne vide? print?

Bonjour à tous,

J'aimerai que dans ma page "Classement", il m'effectue un tri suivant les colonnes suivantes : d'abord tenir compte des "victoires", puis de l'avérage" et si toujours égalité de la place d'inscription.

Lorsque j'effectue mon tri il tiens compte de mes lignes vides dans mon classement....

Pouvez-vous m'aider?

Idem pour une impression, j'aimerai qu'il m'imprime uniquement les lignes remplies...

Pouvez-vous m'aider?

Merci.

72videocontact.zip (79.40 Ko)

Salut Jean-Michel,

Dans le fichier ci-joint, deux codes - en grande partie créés avec l'enregistreur de macro - à essayer.

Pour le tri, je n'ai pas compris ta troisième condition ( .... et si toujours égalité de la place d'inscription). Peux-tu donner des précisions ?

67videocontact-v1.zip (75.20 Ko)

Tu as plus de 30 modules inutiles, ça devient compliqué à s'en sortir Supprime les modules inutiles, comme je l'ai fait dans mon fichiers ci-dessus.

Les cellules fusionnées ne créent que des problèmes pour les macros. J'ai supprimé ta ligne 2 et ai modifié la ligne 1. Avoue que le résultat est sensiblement identique

Tu n'as pas répondu à Thibo et à Claude sur deux autres de tes fils. Je trouve que tu devrais conclure toutes tes demandes en répondant aux personnes qui t'ont aidé gracieusement et indiqué tes fils comme "Résolu" lorsque c'est le cas.

Relis éventuellement la charte Explications et règles à respecter

A te relire.

Bonjour à tous,

Salut Yvouille,

On peut aussi grouper tri et impression (sur la base de ton fichier)

Sub TriEtImprime()
Dim i%, Rep%
    With Sheets("Classement")
            For i = 2 To 150
                If .Cells(i, "b") = "" Then Exit For
            Next i
            i = i - 1
        '-- tri --
            .Range("b2:e" & i).Sort _
        Key1:=.Range("c2"), Order1:=xlDescending, _
        Key2:=.Range("d2"), Order2:=xlDescending, _
        Key3:=.Range("e2"), Order2:=xlAscending, _
            Header:=xlNo, OrderCustom:=1, MatchCase:= _
            False, Orientation:=xlTopToBottom
        '-- impression --
        .PageSetup.PrintArea = .Range(.Cells(1, "a"), .Cells(i, "e")).Address
        .PrintPreview 'aperçu
        Rep = MsgBox("On imprime ?", vbYesNo + vbCritical + vbDefaultButton2, "Tableaux ")
        If Rep = vbNo Then Exit Sub
        .PrintOut copies:=1
    End With
End Sub

Bonne journée

Claude

Salut Claude,

Comme Jean-Michel n'avait pas eu de réponse pendant plusieurs jours, je m'étais permis de lui proposer ma solution, bien qu'elle fasse un peu "amateur". Comme il y avait deux boutons dans le fichier, j'ai pensé qu'il fallait séparer les deux codes et attendre les commentaires de l'auteur.

Bonne journée.

Bonjour à tous,

Tout d'abord merci pour votre aide à mes problème. Veuillez recevoir également mes excuses de ne pas vous répondre rapidement, je suis souvent en voyage et je n'ai pas toujours la possibilité de me connecter rapidement.

Je regarde toutes vos proposition et vous tiens au "jus".

Pour répondre à la questions posée sur la 3eme conditions : Si on a une égalité entre le nombre de victoire et à l'avérage, celui qui se sera inscrit avant l'autre sera également avant lui alors au classement.

Exemple : Joueur XXX à 2 Victoires et avérage +10, joueur XXXX à également 2 victoires et avérage +10, vu que joueur XXX est inscrit avant (donc numéro plus petit en colonne "N°" dans la feuille "classement"), il sera donc avant l'autre dans le classement.

Je reviens vers vous dès que j'ai fini de tester le tout.

Merci encore.

-- 02 Mai 2011, 07:40 --

Les pages que je poste ne sont qu'une partie du programme. C'est pour cela à mon avis qu'il y a d'autres Macros qui vous sembles non utiles.. .

Salut,

Voici un nouveau code avec la dernière condition.

55videocontact-v2.zip (75.09 Ko)

En ce qui concerne les modules, je n'ai supprimé que les modules inutiles car vides et non pas des modules contenant des codes, bien que je ne les comprenais pas (mais tu m'en donnes maintenant l'explication). Il y a une trentaine de modules vides dans le fichier que tu as joint à ton premier message ci-dessus.

Bonnes salutations.

salut,

je viens d'essayer tes deux macros, mais il y a un bugg dans chaques :

Tri = Compile error : Variable not defined

Impression : Run Time error '1004'

Peut-être dois-je faire quelque chose que je sais pas?

Est-ce un problème de versions Excel ? Ce n'est pas impossible, car j'ai essayé (très très rapidement) cet après-midi au travail, sur une version 2003, et ça a également bloqué.

Dans le nouveau fichier ci-joint, j'ai placé trois macros : 1) celle proposée par Claude, reliée au nouveau bouton et 2) et 3) toujours la macro proposée par Claude, mais divisée en deux (tri et impression) afin de correspondre à tes deux boutons déjà en place.

A tester.

Salut

84videocontact-v3.zip (76.39 Ko)

Merci a toi, je teste ça et je dis quoi.

-- 09 Mai 2011, 16:26 --

Merci à toute l'équipe, c'est exactement se que je désirai, vous êtes supers.

Ma petite application commence vraiment à ressembler à qelque chose de bien et facile d'utilisation grâce à vous.

Encore quelques petites améliorations à apporter, je reviens vers vous si je rame pour trouver les soluces.

Si cette application (tournoi pétanque à la mêlée avec changement d'équipe à chaque tour) intèresse quelqu'un de notre communauté sur se forum, il suffti de me le demander et je lui envoi par mail car elle fait 1.284K et je sais pas comment la mettre sur se forum.

Encore merci pour votre aide.

Rechercher des sujets similaires à "comment tri tenir compte ligne vide print"