Compréhension TRI et macro VBA tri

Bonjour

Je suis un peu dans la panade et j'ai grandement besoin d'aide :

Je cherches à comprendre comment fait-on à l'aide d'une macro, de trier des "lignes" mais surtout de masquer celles qui sont vides.

Je me suis rendu compte d'une colonne masquée qui affichait un "1", (en C1 dans le premier onglet je me doutes qu'il y a un lien mais je ne comprends pas tout.

Initialement il y avait plus de lignes mais j'ai supprimé pour envoyer le fichier.

Pourquoi les chiffres des lignes sont ils bleus ?

Voici le code pour faire le tri sous VBA :

Sub Trier_planning_salle()

'

' Trier_planning_salle Macro

' Macro enregistrée le 28/10/2001 par

'

ActiveSheet.Unprotect

Selection.AutoFilter Field:=1

Selection.AutoFilter Field:=1, Criteria1:="<>"

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

Range("A3").Select

End Sub

Est ce que la phrase :

Selection.AutoFilter Field:=1

Selection.AutoFilter Field:=1, Criteria1:="<>"

ordonne le tri ?

Si oui pourquoi j'ai trouvé dans la même colonne des #valeur en guise de résultats ?

Merci d'avance pour vos réponses avisées

https://www.excel-pratique.com/~files/doc2/test_tri_forum.xls

Bonjour,

J'ai un peu regardé votre fichier.

Selection.AutoFilter Field:=1 
Selection.AutoFilter Field:=1, Criteria1:="<>" 

est un filtre et criteria "<>" signifie les cellules non vides

Je ne sais pas pourquoi les numéros de lignes sont en bleu, mais il est clair que les formules en colonne C donnent le résultat #VALEUR puisqu'elles additionnent des nombres avec du texte.

Voici le fichier modifié

https://www.excel-pratique.com/~files/doc2/FichierGO.xls

Cordialement

Joseph

Bonjour à tous,

La macro en question n'a rien à voir avec un tri, il s'agit d'un filtre,

A mon avis, cette macro ne sert à rien,

Que veux-tu filtrer exactement ?

Je verrai plutôt un filtre élaboré.

Amicalement

Claude.

édit: Salut Joseph

édit2: la formule en C6

=SI(OU(A6="";B6+SOMME(E6:AF6)=0);"";"1")
dubois a écrit :

Bonjour à tous,

La macro en question n'a rien à voir avec un tri, il s'agit d'un filtre,

A mon avis, cette macro ne sert à rien,

Que veux-tu filtrer exactement ?

Je verrai plutôt un filtre élaboré.

Amicalement

Claude.

édit: Salut Joseph

Merci pour vos réponses si rapide.

En fait, je veux trier ou filtrer les personnes en fonctions de leur présence (c'est un fichier de planning)

Quelle est la différence entre trier et filtrer (sur le bouton de la macro il est inscrit trier mais alors on aurait pu mettre filtrer ? )

re,

Filtrer, masque les lignes ne correspondant pas aux critères de filtre.

C'est pourquoi je te demandais ce que tu voulais filtrer

Claude.

édit: plus exactement, le filtre n'affiche que les lignes correspondant aux critères et masque

les autres.

Initialement il y avait plus de 60 lignes.

Pour montrer un exemple j'ai du alléger le fichier sinon ca ne passait pas.

Donc à la base il peut y avoir des trous dans le personnel.

Donc d'où l'intéret de filtrer ?

Il y a d'autres feuilles qui sont en rapport avec celle que je vous ai envoyé mais trop lourde à send via le forum ... Une feuille par jour de la semaine. Le principe de tri / filtre reste le même apparemment .

Par ailleurs que signifie exactement ce code : Selection.AutoFilter Field:=1, Criteria1:="<>" ?

Les deux signes : <> veulent dire quelque chose en particulier ?

Merci

re,

avec filtre élaboré, ici on ne traite que les lignes avec "1" en colonne C

en haut les formules calculant les Sommes filtrées (à compléter)

fichier

https://www.excel-pratique.com/~files/doc2/tri_forum2.xls

c'est pas çà que tu voulais ?

Claude.

Bonjour,

D'après ce que je comprends, il faut afficher les lignes pour lesquelles il y a un nom en colonne A et des heures en colonne E à AF.

En conséquence j'ai modifié les formules en colonne C comme ceci :

=SI(ET(ESTTEXTE(A7);SOMME(E7:AF7)>0);1;" ")

Un filtre est appliqué sur la colonne C

Selection.AutoFilter Field:=1

et

Criteria1:="<>" 

signifie cellule non vide.

Donc si la ligne est renseignée au niveau du nom et comporte des heures, le chiffre 1 s'affichera en colonne C. Le filtre sur cette colonne se faisant sur le paramètre "non vide", seules les lignes répondant simultanément aux deux critères seront affichées.

Ci joint fichier modifié.

https://www.excel-pratique.com/~files/doc2/FichierGO2.xls

Cordialement Joseph

edit Bonjour Claude, ravi de te lire!

Re

Déjà grâce à ta proposition, j'ai compris la formule pour inclure le texte et les chiffres afin que le 1 apparaisse et non#valeur !

Ensuite, j"aimerai comprendre à quoi peut donc servir les =SOUS.TOTAL(9;F6:F500)-SOUS.TOTAL(9;E6:E500) placé en haut à gauche ?

Ca m'aidera peut être à comprendre d'autres subtilités ...

A priori c'est presque résolu, il faut que je fasse les tests, merci pour le coup de main

re,

Trop rapide pour moi Claude. Tu avais déjà répondu.

A plus

Amicalement

Joseph

re,

au dessus de ton tableau :

Formule dans zone filtrée (ici F6:F500)

=SOUS.TOTAL(9;F6:F500)

Codes : dans l'exemple, 9 = la somme

1 pour MOYENNE

2 pour NB

3 pour NBVAL

4 pour MAX

5 pour MIN

6 pour PRODUIT

7 pour ECARTYPE

8 pour ECARTYPEP

9 pour SOMME

10 pour VAR

11 pour VAR.P

Tu recopie les pavés formules sur toutes tes colonnes concernées

J'ai prévu pour 500 lignes, mais tu peux adapter

Amicalement

Claude.

ok pour le 9 (c'est toi qui l'a décidé ainsi que 9 = somme ? ) mais j'arrive toujours pas à faire le lien avec le reste ? filtrage ?

Tu aurais une réponse pourquoi les chiffres des lignes deviennent bleus ?

Rechercher des sujets similaires à "comprehension tri macro vba"