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 :

Casse tête de tri [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    autodidacte
    Inscrit en
    Novembre 2013
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 517
    Par défaut Casse tête de tri
    Bonjour à tous,


    J'ai un problème de tri sur un classeur partagé. A noter que tout fonctionne bien lorsque je le départage.


    J'ai une macro tri qui permet de trier sur une feuille planning. Sur cette feuille il y a plusieur jours différents allant de lundi à dimanche. Je tri par rapport à une date pour mettre dans l'ordre la sortie par jour. c'est a dire date la plus petite en premier et la plus lointaine en dernier et ceci pour chaque jour

    j'ai ce code qui fonctionne très bien mais lorsque je tri, il arrive que des lignes vides se créée alors que quand je départage le fichier tout fonctionne parfaitement

    J'ai essayer de séparer les tri en une macro différentes et j'ai observé que si je fait tri 3, le tri s'effectue et après tri 4, le tri se fait pour le jour 4 mais du coup cela décale le tri 3 et remet une ligne vide en premier pour le 3 etc...

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Sub Tri_Planning_PETRI()
    ThisWorkbook.Worksheets("Planning PETRI").Range("B4:H49").Sort Key1:=ThisWorkbook.Worksheets("Planning PETRI").Range("E4"), Order1:=xlAscending, Header:=xlGuess, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    ThisWorkbook.Worksheets("Planning PETRI").Range("I4:O49").Sort Key1:=ThisWorkbook.Worksheets("Planning PETRI").Range("L4"), Order1:=xlAscending, Header:=xlGuess, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    ThisWorkbook.Worksheets("Planning PETRI").Range("P4:V49").Sort Key1:=ThisWorkbook.Worksheets("Planning PETRI").Range("S4"), Order1:=xlAscending, Header:=xlGuess, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    ThisWorkbook.Worksheets("Planning PETRI").Range("W4:AC49").Sort Key1:=ThisWorkbook.Worksheets("Planning PETRI").Range("Z4"), Order1:=xlAscending, Header:=xlGuess, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    ThisWorkbook.Worksheets("Planning PETRI").Range("AD4:AJ49").Sort Key1:=ThisWorkbook.Worksheets("Planning PETRI").Range("AG4"), Order1:=xlAscending, Header:=xlGuess, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    ThisWorkbook.Worksheets("Planning PETRI").Range("AK4:AQ49").Sort Key1:=ThisWorkbook.Worksheets("Planning PETRI").Range("AN4"), Order1:=xlAscending, Header:=xlGuess, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    ThisWorkbook.Worksheets("Planning PETRI").Range("AR4:AX49").Sort Key1:=ThisWorkbook.Worksheets("Planning PETRI").Range("AU4"), Order1:=xlAscending, Header:=xlGuess, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    End Sub
    Sub Tri_plan_1()
    ThisWorkbook.Worksheets("Planning PETRI").Range("B4:H49").Sort Key1:=ThisWorkbook.Worksheets("Planning PETRI").Range("E4"), Order1:=xlAscending, Header:=xlGuess, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    End Sub
    Sub Tri_plan_2()
    ThisWorkbook.Worksheets("Planning PETRI").Range("I4:O49").Sort Key1:=ThisWorkbook.Worksheets("Planning PETRI").Range("L4"), Order1:=xlAscending, Header:=xlGuess, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    End Sub
    Sub Tri_plan_3()
    ThisWorkbook.Worksheets("Planning PETRI").Range("P4:V49").Sort Key1:=ThisWorkbook.Worksheets("Planning PETRI").Range("S4"), Order1:=xlAscending, Header:=xlGuess, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    End Sub
    Sub Tri_plan_4()
    ThisWorkbook.Worksheets("Planning PETRI").Range("W4:AC49").Sort Key1:=ThisWorkbook.Worksheets("Planning PETRI").Range("Z4"), Order1:=xlAscending, Header:=xlGuess, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    End Sub
    Sub Tri_plan_5()
    ThisWorkbook.Worksheets("Planning PETRI").Range("AD4:AJ49").Sort Key1:=ThisWorkbook.Worksheets("Planning PETRI").Range("AG4"), Order1:=xlAscending, Header:=xlGuess, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    End Sub
    Sub Tri_plan_6()
    ThisWorkbook.Worksheets("Planning PETRI").Range("AK4:AQ49").Sort Key1:=ThisWorkbook.Worksheets("Planning PETRI").Range("AN4"), Order1:=xlAscending, Header:=xlGuess, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    End Sub
    j'espère avoir été plus ou moins clair...

    Nom : imùage.png
Affichages : 345
Taille : 278,2 Ko

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Une piste, sans garantie : Dans votre 1ère macro, intercalez un DoEvents entre chaque tri.

    Cordialement.

  3. #3
    Membre éclairé
    Avatar de tamtam64
    Homme Profil pro
    stagiaire developpement vba
    Inscrit en
    Mai 2012
    Messages
    456
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : stagiaire developpement vba
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2012
    Messages : 456
    Billets dans le blog
    17
    Par défaut
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    Sub Tri_Planning_PETRI()
    ThisWorkbook.Worksheets("Planning PETRI").Range("B4:H49").Sort Key1:=ThisWorkbook.Worksheets("Planning PETRI").Range("E4"), Order1:=xlAscending, Header:=xlGuess, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    ThisWorkbook.Worksheets("Planning PETRI").Range("I4:O49").Sort Key1:=ThisWorkbook.Worksheets("Planning PETRI").Range("L4"), Order1:=xlAscending, Header:=xlGuess, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    ThisWorkbook.Worksheets("Planning PETRI").Range("P4:V49").Sort Key1:=ThisWorkbook.Worksheets("Planning PETRI").Range("S4"), Order1:=xlAscending, Header:=xlGuess, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    ThisWorkbook.Worksheets("Planning PETRI").Range("W4:AC49").Sort Key1:=ThisWorkbook.Worksheets("Planning PETRI").Range("Z4"), Order1:=xlAscending, Header:=xlGuess, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    ThisWorkbook.Worksheets("Planning PETRI").Range("AD4:AJ49").Sort Key1:=ThisWorkbook.Worksheets("Planning PETRI").Range("AG4"), Order1:=xlAscending, Header:=xlGuess, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    ThisWorkbook.Worksheets("Planning PETRI").Range("AK4:AQ49").Sort Key1:=ThisWorkbook.Worksheets("Planning PETRI").Range("AN4"), Order1:=xlAscending, Header:=xlGuess, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    ThisWorkbook.Worksheets("Planning PETRI").Range("AR4:AX49").Sort Key1:=ThisWorkbook.Worksheets("Planning PETRI").Range("AU4"), Order1:=xlAscending, Header:=xlGuess, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    End Sub
    Sub Tri_plan_1()
    ThisWorkbook.Worksheets("Planning PETRI").Range("B4:H49").Sort Key1:=ThisWorkbook.Worksheets("Planning PETRI").Range("E4"), Order1:=xlAscending, Header:=xlGuess, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    End Sub
    Sub Tri_plan_2()
    ThisWorkbook.Worksheets("Planning PETRI").Range("I4:O49").Sort Key1:=ThisWorkbook.Worksheets("Planning PETRI").Range("L4"), Order1:=xlAscending, Header:=xlGuess, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    End Sub
    Sub Tri_plan_3()
    ThisWorkbook.Worksheets("Planning PETRI").Range("P4:V49").Sort Key1:=ThisWorkbook.Worksheets("Planning PETRI").Range("S4"), Order1:=xlAscending, Header:=xlGuess, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    End Sub
    Sub Tri_plan_4()
    ThisWorkbook.Worksheets("Planning PETRI").Range("W4:AC49").Sort Key1:=ThisWorkbook.Worksheets("Planning PETRI").Range("Z4"), Order1:=xlAscending, Header:=xlGuess, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    End Sub
    Sub Tri_plan_5()
    ThisWorkbook.Worksheets("Planning PETRI").Range("AD4:AJ49").Sort Key1:=ThisWorkbook.Worksheets("Planning PETRI").Range("AG4"), Order1:=xlAscending, Header:=xlGuess, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    End Sub
    Sub Tri_plan_6()
    ThisWorkbook.Worksheets("Planning PETRI").Range("AK4:AQ49").Sort Key1:=ThisWorkbook.Worksheets("Planning PETRI").Range("AN4"), Order1:=xlAscending, Header:=xlGuess, _
                OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
    End Sub
    essaie avec moins de feuille et mode pas a pas ca donne quoi? c'est bizarre , et pour le do events ca peut etre une bonne methode ca te permet de faire une petite pause en suposant que ca aille trop vite ce qui serait un comble pour vba lol.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    application.screenupdating  = false
    application.screenupdating  = true
    Essaye aussi

  4. #4
    Membre chevronné
    Homme Profil pro
    autodidacte
    Inscrit en
    Novembre 2013
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 517
    Par défaut
    Merci pour votre aide je vais tester tout ceci.

    EN fait en mode pas à pas cela fonctionne bien. par exemple, si je prends l'image, mercredi est bien trié et remonte donc la ligne en première. Parfait, ensuite suivant tri, après cela passe à jeudi et cela marche aussi pour jeudi mais cela fait décaler la ligne de mercredi en la redescendant d'une ligne... etc..

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Tableaux] Casse têtes de boucles
    Par Anduriel dans le forum Langage
    Réponses: 5
    Dernier message: 28/06/2006, 00h24
  2. Casse tête chinois
    Par Jahjouh dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 15/03/2006, 09h04
  3. requête SQL un peu casse tête
    Par hellbilly dans le forum Langage SQL
    Réponses: 4
    Dernier message: 15/12/2005, 10h03
  4. Classe, pile, pointeurs et casse-tête!
    Par zazaraignée dans le forum Langage
    Réponses: 6
    Dernier message: 26/09/2005, 16h57
  5. casse-tête excel
    Par gregius dans le forum Access
    Réponses: 2
    Dernier message: 21/09/2005, 16h38

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