Vba - Tri sur feuille protégée
Voilà mon code pour trier par ordre Alpha ma feuille de calcul quand je rajoute une donnée en fin de plage. Apparemment le résultat et bon.
Toutefois, comment est-il possible que je puisse arriver à supprimer l'enregistrement que je viens d'ajouter.
Est-il possible d'améliorer ce petit problème.
Lien de téléchargement : https://mon-partage.fr/f/s9XghS1r/
Merci à Tous
Sub tri_listing()
'
' tri Macro
'
ActiveSheet.Unprotect ("xavier")
Range("A2:H10000").Select
ActiveWorkbook.Worksheets("listing").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("listing").Sort.SortFields.Add Key:=Range("A2"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("listing").Sort.SortFields.Add Key:=Range("D2"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
ActiveWorkbook.Worksheets("listing").Sort.SortFields.Add Key:=Range("E2"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("listing").Sort
.SetRange Range("A2:H10000")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
ActiveSheet.Protect ("xavier")
End Sub
28 réponses
Le fil porte sur un code VBA qui trie une feuille listing par ordre alphabétique et soulève le problème de suppression de l'enregistrement ajouté en fin de plage. Plusieurs réponses envisagent d'élargir la plage A2:H10000, d'ajouter une protection par mot de passe et d'utiliser des déclencheurs comme le double clic sur le titre. D'autres échanges évoquent des ajustements du tri sur plusieurs colonnes (A, D et E) et des variantes de code visant à faciliter la suppression ou l'identification de la ligne nouvellement insérée. Enfin, des ressources partagées proposent des astuces pour améliorer l'affichage après classement et assurer la cohérence des résultats, tout en évoquant limites et bonnes pratiques de protection.
-
ContributeurBonjour
pour info:petite enveloppe rouge en tout en haut de la page à droite de ton pseudo
à+
-
ContributeurOk je vais voir ce que peux en tirer
pour l'inscription, doit y avoir un problème car il n'est pas possible d’accéder à ton profil via ton pseudo.
Je regarde tout ça et je te dis si je peux faire quelque chose
A+
-
Re,
J’avais l’intention initialement de faire un fichier unique, mais celui-ci serait trop volumineux avec une multitude d’onglets, gérer les droits des différents utilisateurs, bref un grand bazar ingérable. Donc, j’ai opté pour un fichier de ce type par division (car toutes les divisions sont différentes et gérées par des responsables différents).
Le fichier sur lequel que tu planches ne correspond qu'à une seule division (soit 8 équipes). Que je vais répliquer une fois ficelé et tester avec des utilisateurs de mon secteur.
Normalement je devrais tourner vers 45 fichiers minimum soit minimum 360 équipes réparties en 45 divisions différentes). Pour un total de 5000 matchs minimum
La liste des joueurs est incomplète, car il y a toujours des nouveaux joueurs qui prennent des licences ou des joueurs qui changent de divisions en cours de saison « les brûlages c’est cela + de la réglementation » .
Concernant le doublon c'est une erreur de ma part (j'ai modifié).
Concernant le numéro de licence, j'ai rajouté le N° de licence dans l'onglet "résultats match" en colonne O et P.
Pour le fichier de brûlage, mon idée est celle-ci :
Quand je sélectionne un joueur (Lettre A) dans l'onglet "Résultat Match" cellule "H5" alors je mets dans "l'onglet brulages" dans la colonne de référence "Date" pour le numéro de licence correspondant le dernier caractère de la cellule "H4" de l'onglet "résultat Match".
Puis Idem Lettre B, C, X, Y et Z
Maintenant l'écrire avec Excel, c'est pas pour moi.
Je suis inscrit sur CCM, mais pour les messages MP je ne sais pas faire, plutôt jamais essayé. Je vais regarder après et éventuellement faire un test
Lien de téléchargement du fichier modifier : https://mon-partage.fr/f/GiUdyubW/
Si tu peux me faire cela pour les 3 premiers de chaque colonne, du 1er match, je devrais pouvoir m'en sortir pour le reste.
PS, concernant le fichier brûlage tu peux adapter les colonnes à tes souhaits
Pour la consolidation, j'ai déjà arrivé à importer toutes les feuilles de calcul "Joueurs" des différents fichiers et supprimer les lignes qui ne servent à rien. Reste à consolider les informations pour un N° de licence sur une seule ligne.
Un grand merci -
Contributeurre
je vais regarder ce que je peux faire, mais je ne promet rien car ça semble un peu lourd
mais on va essayer quand même
deux questions:- combien pense tu avoir de tableau de match dans l'année ou autrement dit, la feuille "Résultat match" est elle complète?
la liste des joueurs est supposée complète, mais il y a un doublon en ligne 132 133 de la feuille JOUEURS alors que le N° de joueur n'est pas le même, peut on savoir pourquoi?
et une remarque:- en cas d'identité de noms et prénoms entre deux équipes (ça parait peu probable comme tu dis) je ne pourrais pas utiliser le N° de licence car il n'est pas spécifié dans la feuille résultat match, et si je vais le chercher dans la feuille JOUEUR avec une formule, le problème restera le même. Si ce cas se présente, restent donc seulement deux options:soit entrer le N° de licence dans une colonne de Résultat pour aller chercher le nom de joueur
soit identifier le second avec un indice quelconque en complément de son nom, par exemple un identifiant rapporté à son club
en attendant tes réponses, je signale que je suis un peu à la bourre ces quelques jours, je pars samedi pour 4 semaines _ probablement pas très loin de chez toi, sauf erreur_ mais on devrait pouvoir rester de temps en temps en liaison.
pour simplifier la communication, voit si tu peux t'inscrire sur CCM et me prévenir en passant un message privé en cliquant sur mon pseudo dans un de mes messages
crdlmnt
-
Bonjour Vaucluse,
Oui, cela me convient parfaitement. Je vais obliger les utilisateurs à indiquer un 0-0 par défaut si c'est nécessaire.
Sinon,
Trouve en téléchargement 2 liens
un lien de téléchargement pour répondre à tes attentes, j'ai apporté des commentaires en essayant d'etre plus clair : https://mon-partage.fr/f/h0ppAwo6/
un lien de téléchargement relatif au fichier que j'ai mis à jour et apporter qq modifs : https://mon-partage.fr/f/pa38z8KN/
Un grand merci, cordialement -
Slt,
Oui c'est compliqué. Je vais revoir la chose.
Mais tout d'abord, concernant les onglets "MATCH 8eq" comment cela se fait qu'il n-y ait pas de 7eme et 8 éme, pourtant les formules y sont bien présentent.-
ContributeurParce que je n'y connais rien, et donc je n'ai pas fait le nécessaire pour prendre en compte les lignes qui n'ont pas de départage, le code d'erreur les élimine automatiquement.
Si besoin, je te règle ça, mais en attendant tu peux compléter le tableau en ajoutant un 0_0 dans les cellules K12 à K15.
Par ailleurs si le résultat te convient tel qu'il est tu peux effacer la colonne N (en bleu), elle n'est pas utilisée.
à + donc
-
-
ContributeurBon
je viens de retourner ça dans tous les sens, mais il va falloir compléter les info, parce que tu as du sauter pas mal de ligne pour écrire ton Word :-))... enfin, pour toi, non, mais pour le néophyte que je suis, c'est bien le cas.- Tu me parles de la feuille Résultats match
pour celle ci faudrait déjà comprendre ce que tu entends pas ABC et XYZ et aussi pourquoi la formule en G et K renvoie successivement par exemple A,B,C et recommence à B en G8... ceci un peu partout dans les tableaux
Si c'est pour dire qu'il faut identifier les lignes qui commencent soit par ABC en G ou XYZ en K , je note, mais confirmer.- et pourquoi 3 lettres plutôt que une seule, ou une différente pas ligne?
ça voudrait donc dire plus simplement que si, un joueur est identifié, par A,B,C ou X,Y,Z, il faut renvoyer 1 dans la colonne de référence de la feuille brûlage- On en vient donc à cette fameuse feuille et référence. C'est quoi la ,colonne de référence, c'est celle dont le titre est la date en ligne 2?
- IMPORTANT:et comment se remplit cette feuille? car si tu y places des infos au clavier, pas question d'y admettre une formule.
si jamais on s'y retrouve pour avancer, deux questions:
peux tu admettre qu'en colonne B de résultats match la date soit placée en B sur la <1° cellule de chaque tableau est répétée par égalité sur les suivantes
y a t il dans des équipes différentes des joueurs avec même nom et prénom (si oui, il faudra compléter l'identification par un code)- Quant au tableau sur ta feuille, tu me parles de la non concordance des journées avec les tours.. mais je ne sais pas ce que c'est, les tours! Et le fait que certaines cellules soient en jaune ne me dit absolument rien
Donc il y a encore du boulot
!
à te lire sur le sujet, la 1° chose à faire étant de prendre en compte la remarque en gras ci dessus. Si on ne peut pas placer de formule, on essaiera de trouver autre chose...quand j'aurais vraiment compris ce que tu veux.. mais c'est pas tout de suite...!
cordialement
-
ContributeurSalut Xavier
j'ai bien tenté de regarder, mais je n"ai pas compris grand chose
suis à la bourre là. Je m'y remet et je t'en parle ce soir ou demain matin;
à +
crdlmnt
-
Bonjour Vaucluse,
Me voici de retour après ces 15 jours de repos.
Pour faire suite à nos derniers échanges, je t'adresse en lien de téléchargement le fichier relatif au classement automatique. Quant au choix de l'option, je n'ai pas de préférence particulière.
As tu le temps de regarder pour finaliser mon projet ?
https://mon-partage.fr/f/t15G3zyo/
Cordialement Xavier -
Bonjour Vaucluse,
Comme prévu, je t'adresse ci-dessus 2 liens de téléchargement
dont 1 avec des explications sur les brulages qui me posent des interogations et sur la faisabilité
et un autre à partir du fichier que tu m'as envoyé sur le classement automatique
https://mon-partage.fr/f/H35Jbn08/
https://mon-partage.fr/f/bv669QRW/
il n'y a pas le feu, je rentre pas avant le 21.
Cordialement
xavier -
Bonjour Vaucluse,
Les 2 variantes me conviennent. Je n'i pas de préférences particulières. Je te laisse libre de ton choix.
En revanche, paour ma part, je pars quelques jours jeudi soir et rentre pas avant le 21. Donc il n'y a pas le feu. De toute façon, j'ai encore plein de chose à voir sur ce développement.
Je vais réfléchir, et je te renverrai un fichier en partage.
Je dois travailler sur les "Brulages" soit un fichier classé par ordre "Equipe", et Alpha qui recensent les rencontres jouées des joueurs avec leur N° Equipes.
Profite de ses qq joueurs de repos.
Cordialement
xavier -
ContributeurOK , mais malheureusement, je n'aurais pas le temps de prendre ça en compte avant de partir quelques jours. Je ne reviens pas avant jeudi ou vendredi,
Par contre j'ai mis en place ce que j'envisageais pour le principe, je joins le fichier avec quelques commentaires. Tu devrais arriver à extirper quelque chose de tout ça
je n'ai pas le temps pour le classement alpha, si tu ne trouves pas, je m'y remettrais jeudi, il doit y avoir une solution.
pour la formule en feuille Clt équipes M6:M15, je suis parti sur le fait qu'un départage de 2-8 est équivalent à 8-2 (donc, tu verras, une vlorisation de +8200 dans les deux cas)
si ce n'est pas le cas, tu peux la changer en simplifiant comme suit en M6:
=SIERREUR(E6*10000+(GAUCHE(K6;1)&DROITE(K6;1))*100;"")
elle classera en premier le départage qui a le plus fort chiffre en premier (soit 8-2 avant 2-8)
et si tu veux inverser le départage, tu places un - au lieu de + après E6*1000
mais dans tous les cas, ça ne fonctionne pas si une des valeurs est >9. Si cela est possible, nous pourrons régler ça jeudi ou vendredi
https://mon-partage.fr/f/0hYgptKi/
vois bien les commentaires dans les pages
bon WE si tu ne reviens pas avant
crdlmnt
-
1°) Il faut les classer en dans un 1er temps par ordre décroissant (du + grand au + petit) et en cas d'égalité, il faut les départager en prenant le départage.
A titre info, le départage c'est le nombre de matchs gagnés/perdus (mais la je rentre dans les techniques) c'est comme le goal average (comme en ce moment).
Celui qui à le meilleur départage est 1er (8-2), le 2ème (6-4) et le 3ème (2-8)
Concernant le tri sur la colonne B (effectivement c'est pas nécessaire).
En cas d'exaequo complet c'est au nombre de set (mais dans ce cas il faut oublier). Donc, on met les équipes à la suite.
Non, il n'est pas nécessaire de trier la feuille de calcul Clt Equipe si tu arrives à éditer le tableau de Match8 ou 10 dans le bon ordre.
En revanche c'est pas possible au départ de classer la liste de la feuille CLUB EQUIPE de E13 à E22 selon alpha (car les clubs sont tirer au sort par la ligue et je suis obligé d'en tenir compte). Perso, je m'en fou, j'ai jamais compris pourquoi.
J'espère que j'ai été plus clair -
Contributeureffectivement, Excel demande si on veut trier les données comme des nombres, et ça peut fonctionner,
- mais dans quel ordre?.. pour quelqu'un qui n'y connait rien, quel est le plus grand quel est le plus petit? soit donc pour être plus clair: dans quel ordre doit on classer dans par exemple le tableau de Match8, les lignes 17,22,33 qui ont chacune 6 points
et en commentaire, pour continuer, quelle est la logique du classement de la colonne B de Ctrl équipes quand on voit par exemple les valeurs entre le 5° ligne 8 et le 6° ligne 9, alors qu'ils ont tous les ceux un départage de 6-4, que le 56° à 6 points alors que le 5° n'en a que 3????
et j'en rajoute encore: en cas d'égalité de points, et vu le nota à droite du tableau, les départages 4-6 et 6-4 sont ils à considéré comme identique
et au final on fait quoi en cas d'exaequo complet- et question suivante:
est il besoin de trier le tableau de Clt équipes si on arrive à éditer le tableau de Match8 ou 10 dans le bon ordre? Sachant que le tri sur formule est assez délicat pour les évolutions suivantes- et dernière question:
dans tous les cas, est il admissible de ne classer le 3° rang(donc alpha) uniquement avec la première lettre du nom ( sachant que ce serait un cas ou en priorité le nombre de points est identique, le départage est identique, c e qui réduit fortement les occurrences
ou alors, est il possible au départ de classer la liste de la feuille CLUB EQUIPE de E13 à E22 pselon alpha, ce qui réglerait tou
à te lire sur ces trois points
-
Bon ben,je crois que j'ai trouvé le truc.
Le tri, il faut le faire dans l'onglet Clt équipe sur la plage C6- k15 par :
1°) Points du plus grand au plus petit
2°) Départage du plus grand au plus petit (format texte) et il le fait bien
3°) Par équipe par ordre Alpha
Après le PB c'est qu'il faut reporter les données de Clt équipe vers Match_8eq et 10eq -
Contributeurempoté peut être pas, va savoir ( :-))
.....mais en retour un fichier qui montre ce que ça donne avec les manips préconisées dans la feuille Mtch8-eq (Rt14...etc.....)
https://mon-partage.fr/f/6aTDraVr/
Ceci dit, pour Excel 2-8 n'est pas une valeur numérique classable, et dans la rubrique "départage", justement (rang 2 du classement) quel est l'argument qui permet de classer????
qui dit que 2-8 est plus grand que 8-2 où l'inverse!
Sachant que là, ton interlocuteur (moi donc) ne connait absolument rien au truc qui consiste à gagner quoique ce soit en tapant dans une balle ou un ballon, enfin un machin rond qui fait ce qu'il veut, avec un instrument quelconque, (ou avec les pieds, c'est la mode pour le moment!)
-
Re,
Ben désolé, malgré que je mets en format standart dans la feuille Clt équipes et que je réécris ma formule rien n'y fait. De plus si dans le départage je met 2-8 cela me transforme en 2 aout.
Je dois probablement être empoter.
Pour l'argumentation, il faut trier par :
1°) Points du plus grand au plus petit
2°) Départage du plus grand au plus petit
3°) Par équipe par ordre Alpha
Merci -
ContributeurRe
il ne va pas chercher dans la feuille Ctl équipes la valeur voulue tout simplement parce que ta cellule est en format texte et donc, n'affiche que le texte de la formulelpasse ta cellule en format "standard" et réécris ta formule tu verras que ça fonctionne
maintenant pour classer ça, il faut avoir un ou plusieurs arguments et là, merci de préciser quels ils sont
je pense qu'un fois ça connu, nous pourrons ressortir le tableau L24:T33 automatiquement sans macro à partir de la feuille Clt équipes K6:K15
mais il faut connaitre l'argumentation!
à te lire
crdlm,nt
-
Bonjour Vaucluse,
Oui c'est très bien, j'apprécie fortement.
Encore 2 petits tri !! lol
Dans l'onglet match_8eq et 10 eq est il possible d'automatiser le classement des équipes au vue des résultats soit par :
- Points du plus grand au plus petit
- Départage du plus grand au plus petit (sur ce point je ne comprends pas pourquoi il ne va pas chercher la valeur dans "Clt équipes" comme le reste
- Equipe par ordre Alpha
Toujours pareil, la feuille est protégée, je laisse libre uniquement le cadre pour les informations et les observations.
Le départage des équipes et rentré manuellement dans l'onglet ""Clt équipes"" trop compliqué à faire.
Puis je pense que ce sera tout pour ce week_end.
Il me reste 1 semaine avant les vacances, même si j'y suis toute l'année. Je pars dans le beau département qu'est ton pseudo à St Saturnin .......
Merci pour ton dévouement
Lien : https://mon-partage.fr/f/dG8qxIgZ/ -
Contributeurme revoilà avec la proposition complète incluant les dix tableaux et la protection avec mot de passe (fichier Rt11......)
https://mon-partage.fr/f/EHStAR3h/
rappel du système- chaque tableau est classé uniquement sur la colonne nom, les formules fonctionnant pour aligner le reste
- le classement est lancé par double clic sur la cellule titre d'un tableau "nom et prénom"
(on peut faire ça avec un simple clic en modifiant le code mac ro sur la ligne de titre
etdonc
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
devient
Private Sub Worksheet_BeforeClick(ByVal Target As Range, Cancel As Boolean)- le code est visible via clic droit sur onglet et "visualiser le code"
pour garantir la protection par mot de passe miiux vaut masquer VBA en lecture
reviens si ça ne convient pas
crdlmnt
- 1
- 2