IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Comment calculer un ordre de priorité dans une colonne avec de nombreux tris


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 21
    Par défaut Comment calculer un ordre de priorité dans une colonne avec de nombreux tris
    Bonjour,
    depuis quelques jours, je bloque sur un problème.
    J'ai un tableau excel avec différentes colonnes nom-prenom -qualifications-date d'arrivée-dernier jour de travail-nombre de jours depuis que l'individu n'a plus travaillé sur une même feuille excel.
    sur lequel j'opère des tris sur les qualifications, le nombre de jours depuis que l'individu n'a plus travaillé, etc..
    J'ai utilisé l'enregistreur de macro et créer des boutons pour chaque tri que je souhaitais. ( 10 boutons au total)
    Donc jusque là tout va bien.

    A la fin d'un tri j'obtiens par exemple la ligne 15 en haut avec 1200, puis vient la ligne 180,154,148,189,6,15 et ainsi de suite.
    Je voudrais donc maintenant sur chaque tri, opérer un ordre de désignation (en colonne B), c'est à dire la première ligne de mon tableau trié a le numero 1 ou 0 s'il y a marqué "En cours" sur une colonne qui est jamais la même mais qui se situe toujours à 9 colonnes à droite de la colonne B, la seconde ligne aurait le numéro 2 ou 0 s'il y a encore marqué "en cours" et ainsi de suite.
    Pour cela j'ai tenté la formule :
    =SI([@[Nb jours / dernière semaine]]="En cours";"0";SI([@[Nb jours / dernière semaine]]>1;1+B2)
    Mon problème c'est que cela ne fonctionne pas avec le tri.( normal c'est jamais la même colonne et jamais les mêmes lignes suivant le tri). Si ma première ligne de tableau est la ligne 192 j'obtiens un ordre de désignation =169( car dans la formule, j'ai =SI([@[Nb jours / dernière semaine]]="En cours";"0";SI([@[Nb jours / dernière semaine]]>1;1+B191)) alors que je voulais lui faire afficher 1.
    Je comprends le problème mais je n'arrive pas à le résoudre. J'ai essayé les fonctions indirect et sous-total mais sans succès vu que je ne les maîtrise pas.
    Mon but c'est d'obtenir un ordre de désignation qui s'effectue et se recalcule correctement suivant les différents tris (et toujours dans la même colonne B).

    Y a t-il un expert d'excel pour m'aider?
    Merci d'avance
    Stéphane

  2. #2
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 21
    Par défaut toujours dans l'attente d'une aide ou d'une idée
    Personne n'aurait une solution ou tout au moins une idée pour traiter mon problème de tri.
    Stéphane

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par stephpet Voir le message
    J'ai utilisé l'enregistreur de macro et créer des boutons pour chaque tri que je souhaitais. ( 10 boutons au total)
    Ce que tu as fais là, c'est ce que fait un filtre qu'on peut mettre en place en 10 s.
    Ruban données > Icone Filter

    Pour cela j'ai tenté la formule :
    =SI([@[Nb jours / dernière semaine]]="En cours";"0";SI([@[Nb jours / dernière semaine]]>1;1+B2)
    Mon problème c'est que cela ne fonctionne pas avec le tri.
    Ton problème c'est que cette formule est supposée ne par du tout fonctionner, qu'il y ait un tri ou non.
    Donc je ne sais pas d'où tu l'as tirée, mais il est peut probable que ce soit d'une cellule validée.

  4. #4
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 21
    Par défaut
    merci pour la réponse, cela me fait énormément plaisir
    même si j'avoue que cela ne m'avance pas trop.
    Ma formule, c'est moi qui l'ai tapée et coller dans la colonne B. Pourquoi ou comment passer par une cellule validée ( validation de données?)
    Mon problème c'est comment réussir à dire après un tri que les résultats triés du plus grand au plus petit en colonne K par exemple, que le premier résultat c'est le n°1, que le résultat 2 c'est le n°2 et ainsi de suite.
    Stéphane

  5. #5
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    tu pourrais, dans ta formule, utiliser la fonction LIGNE() ?

    si tes données commencent en ligne 2 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI([@[Nb jours / dernière semaine]]="En cours";"0";SI([@[Nb jours / dernière semaine]]>1;LIGNE()-1)

  6. #6
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 21
    Par défaut
    Bonjour et merci pour ton aide.
    Je viens de tester mais cela ne fonctionne avec les tris. Par exemple si la ligne 19 est en troisième position, cela va indiquer 18 en ordre de priorité alors que je souhaite que cela indique 3.
    Merci encore. Je continue à chercher
    Stéphane

  7. #7
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par stephpet Voir le message
    Ma formule, c'est moi qui l'ai tapée et coller dans la colonne B. Pourquoi ou comment passer par une cellule validée ( validation de données?)
    Je voulais dire qu'un formule qui n'a pas le même nombre de parenthèses ouvrantes et fermantes (comme la formule que tu présentes) à peut de chance d'être acceptée par Excel quand on la saisie.

  8. #8
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 21
    Par défaut
    ah c'est juste un oubli de parenthèses en faisant copier coller que je corrige dans le tableur.
    Donc toujours pas de solution à mon problème
    Stéphane

  9. #9
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2016
    Messages
    21
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2016
    Messages : 21
    Par défaut
    j'ai tenté aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(DECALER(B:B;0;9)="En cours";"0";SI(DECALER(B:B;0;9)>1;1+B1))
    donc cela calcule un ordre de priorité mais dès que je fais un tri, j'ai toujours le même problème. Il tient compte du numéro de ligne plutôt que de l'ordre du tri effectué

Discussions similaires

  1. Calcul de temps de marche dans une colonne
    Par Jean-luc79 dans le forum Excel
    Réponses: 4
    Dernier message: 19/11/2014, 21h17
  2. Réponses: 2
    Dernier message: 14/03/2012, 15h01
  3. Réponses: 2
    Dernier message: 06/05/2008, 10h52
  4. [DataGridViewButtonColumn] Bouton dans une colonne avec une image
    Par aurelien.tournier dans le forum Windows Forms
    Réponses: 1
    Dernier message: 19/11/2007, 11h35
  5. Calcul du nombre d'occurences dans une colonne
    Par Masmeta dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 21/09/2007, 15h11

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo