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 :

Problème Gestion de priorités


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2019
    Messages : 5
    Par défaut Problème Gestion de priorités
    Bonjour,
    J'aimerai qu'on m'aide sur une gestion de priorité que j'essai de développer, mais je parviens pas à avoir des résultats.
    C'est un tableau qui doit me renvoyer la priorité d’arrêt de mes machines.
    Dans le tableau, je dois travailler sur:
    * la colonne pour le nombres de jours avant la maintenance de chaque machine (#jours av m)
    * la colonne pour le nombre de jours que la machine devra s’arrêter avant d'atteindre les heures de maintenance (#jrs Arret)
    * la colonne où devra s'afficher les priorités des machines, de 1 à 8.(priorités)
    la feuille devra être en mesure de vérifier sur la colonne (#jrs Arret) le maximum qu'il donnera la priorité 8.
    Si des cellules de la même colonne porte le même nombre de (#jrs Arret), la vérification se fera sur le maximum qui se trouve sur la colonne (#jours av m), sur la même ligne des cellules concernées.

    Vous avez ci-dessous le fichier.Gestion de priorités.xlsx

  2. #2
    Membre expérimenté
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Septembre 2019
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Septembre 2019
    Messages : 151
    Par défaut
    Bonjour à tous

    si je comprends bien tu veux 2 tris comme sur l'image ci-dessous ?
    A savoir tri du plus grand au plus petit colonne D,
    puis tri du plus grand au plus petit colonne C
    il faut enlever la date de ton tableau, et il vaut mieux ne pas fusionner les cellules.
    le tri fonctionne mieux quand c'est une valeur au lieu d'une formule (colonne C)

    Nom : Gestion des priorites.jpg
Affichages : 543
Taille : 77,9 Ko

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub tris()
     
    Sheets("Feuil1").Activate
        'Qtes Plus Grand au Plus Petit
        ActiveSheet.Range("A1:D9").Sort Key1:=ActiveSheet.[D1], Order1:=xlDescending, Header:=xlYes, _
        Key2:=ActiveSheet.[C1], Order1:=xlDescending, Header:=xlYes
    Range("A1").Activate
     
     
    End Sub

  3. #3
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2019
    Messages : 5
    Par défaut
    Je donne un exemple ci-dessous, si D7 et D8 ont la même valeur , il devra faire son choix en se basant cette fois ci, sur la colonne C et étant donné que C8 est superieur à C7, il affectera la priorité 3 sur E8 et 2 sur E7.
    Nom : Capture.JPG
Affichages : 367
Taille : 47,2 Ko

  4. #4
    Membre expérimenté
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Septembre 2019
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Septembre 2019
    Messages : 151
    Par défaut
    Bonjour à tous
    Donc c'est le contraire que tu veux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub tris()
     
    Sheets("Feuil1").Activate
     
        ActiveSheet.Range("A1:D9").Sort Key1:=ActiveSheet.[D1], Order1:=xlAscending, Header:=xlYes, _
        Key2:=ActiveSheet.[C1], Order1:=xlAscending, Header:=xlYes
    Range("A1").Activate
     
     
    End Sub

  5. #5
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2019
    Messages : 5
    Par défaut
    Dans le font, c'est pas un tri, le fichier doit être en mesure d'affecter les priorités dans la colonne E

  6. #6
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    En implémentant la solution de TonyNiort79
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    Sub Priorite()
    Dim LastLig As Long
     
    Application.ScreenUpdating = False
    With Worksheets("Feuil1")                                  ' A ADAPTER
        LastLig = .Cells(Rows.Count, 1).End(xlUp).Row
        With .Range("AF3:AF" & LastLig)
            .Formula = "=ROWS($A$3:$A3)"
            .Value = .Value
        End With
        .Range("A3:AF" & LastLig).Sort Key1:=.Range("D3"), Order1:=xlAscending, Key2:=.Range("C3"), Order2:=xlAscending, Header:=xlNo
        With .Range("E3:E" & LastLig)
            .Formula = "=ROWS($A$3:$A3)"
            .Value = .Value
        End With
        .Range("A3:AF" & LastLig).Sort Key1:=.Range("AF3"), Order1:=xlAscending, Header:=xlNo
        .Range("AF3:AF" & LastLig).ClearContents
    End With
    End Sub

  7. #7
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2019
    Messages : 5
    Par défaut
    avec la solution de mercatog , ça marche avec les priorités si on se base sur la colonne D, mais avec la colonne C ,il faut faire l'inverse.
    ci-dessous l'image du résultat obtenu
    Nom : Capture.JPG
Affichages : 343
Taille : 34,0 Ko

  8. #8
    Membre expérimenté
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Septembre 2019
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Septembre 2019
    Messages : 151
    Par défaut
    en reprenant la procédure de mercatog
    il suffit de mettre descendant sur le 2ème ordre au lieu de ascendant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub Priorite()
    Dim LastLig As Long
     
    Application.ScreenUpdating = False
    With Worksheets("Feuil1")                                  ' A ADAPTER
        LastLig = .Cells(Rows.Count, 1).End(xlUp).Row
        With .Range("AF2:AF" & LastLig)
            .Formula = "=ROWS($A$2:$A2)"
            .Value = .Value
        End With
        .Range("A2:AF" & LastLig).Sort Key1:=.Range("D2"), Order1:=xlAscending, Key2:=.Range("C2"), Order2:=xlDescending, Header:=xlNo
        With .Range("E2:E" & LastLig)
            .Formula = "=ROWS($A$2:$A2)"
            .Value = .Value
        End With
        .Range("A2:AF" & LastLig).Sort Key1:=.Range("AF2"), Order1:=xlAscending, Header:=xlNo
        .Range("AF2:AF" & LastLig).ClearContents
    End With
    End Sub

  9. #9
    Membre à l'essai
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2019
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2019
    Messages : 5
    Par défaut
    J'ai utilisé xlDescending,mais ça marche pas ,c'est pareil que le précédent.

  10. #10
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Dans jours d'arrêts, tu n'as pas peut être des chiffres rond.
    Peut être tu as 1.03 et 1.1 qui sont affichés comme des 1

  11. #11
    Membre expérimenté
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Septembre 2019
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Septembre 2019
    Messages : 151
    Par défaut
    Bonjour,
    comme la date est déplacée
    il faut mettre la ligne 1 au lieu de la ligne 2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Sub Priorite()
    Dim LastLig As Long
     
    Application.ScreenUpdating = False
    With Worksheets("Feuil1")                                  ' A ADAPTER
        LastLig = .Cells(Rows.Count, 1).End(xlUp).Row
        With .Range("AF1:AF" & LastLig)
            .Formula = "=ROWS($A$1:$A1)"
            .Value = .Value
        End With
        .Range("A1:AF" & LastLig).Sort Key1:=.Range("D1"), Order1:=xlAscending, Key2:=.Range("C1"), Order2:=xlDescending, Header:=xlyes
        With .Range("E1:E" & LastLig)
            .Formula = "=ROWS($A$1:$A1)"
            .Value = .Value
        End With
        .Range("A1:AF" & LastLig).Sort Key1:=.Range("AF1"), Order1:=xlAscending, Header:=xlyes
        .Range("AF1:AF" & LastLig).ClearContents
    End With
    End Sub

Discussions similaires

  1. gestion de priorité d'actions
    Par menuge dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 29/01/2008, 08h12
  2. SQL Server 2005 gestion des priorités
    Par snouille dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 09/11/2006, 14h13

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