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 d'optimisation de temps : Trie à conditions [XL-2016]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti Avatar de yobor
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Autre

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2016
    Messages : 26
    Par défaut Probléme d'optimisation de temps : Trie à conditions
    Bonjour à tous,
    Je suis en train de résoudre un problème d’optimisation, et je suis arrêté devant un problème de tri à conditions, j’ai essayé de chercher une solution mais ça été très difficile pour moi. Mon problème est le suivant :
    J’ai deux colonnes, « coté 1 » et « coté 2 », chaque colonne contient des références des outils changeables des machines de production, et à chaque changement d’outil je perde 20 min, c à d :si la case
    A(i) =16041501Z et A(i+1) =E00022577 ça signifie que j’ai changé l’outil 16041501Z avec l’outil E00022577 et alors j’ai perdu 20 min et s’il y a un changement dans les deux colonnes c à d : A(i) diffèrent de A(i+1) et B(i) diffèrent de B(i+1) j’ai perdu 20 min +20min =40 min.
    Mon objectif est de trier les deux colonnes de tel sort que le temps de changement des outils sera le minimum possible, c à d minimiser les changements au niveau des deux colonnes !. Vous trouvez mon fichier au dessous
    je vous serez très reconnaissent si vous m'aidez
    Fichiers attachés Fichiers attachés

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    Peux-tu préciser si coté 1 et coté 2 sont interchangeables pour chaque ligne ?
    eric

  3. #3
    Membre averti Avatar de yobor
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Autre

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2016
    Messages : 26
    Par défaut
    bonjour eriiic ,
    oui ,les deux cotés sont interchangeables pour chaque ligne

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Pas trop d'idée pour l'instant mais ton fichier n'est pas propre.
    Il y a des outils douteux comme 3.20256E+13
    et d'autres comme "32025Y18Z " (coté 2)

  5. #5
    Membre averti Avatar de yobor
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2016
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : Autre

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2016
    Messages : 26
    Par défaut
    Les cases contiennent des références des outils, c à d que chaque outil a une référence ou bien un « nom » qui ne contient pas nécessairement que des chiffres mais aussi des caractères.

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    ok.
    Mais 3.20256E+13 correspond à 32025600000000 !?!
    et
    32025Y18 ou 32025Y18 suivi de 10 espaces ce n'est pas pareil pour excel.
    Tes outils ont plutôt l'air d'avoir 9 car.
    Pour nous ça ne change rien, pour toi c'est à voir...

  7. #7
    Membre éprouvé Avatar de Klin89
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 119
    Par défaut
    Bonsoir à tous,

    yobor, je n'ai pas pigé ce que tu souhaitais faire.
    Pour y voir plus clair, je me suis contenté de regrouper les réferences identiques dans un même bloc.
    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
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    Option Explicit
    Sub test()
    Dim a, w(), t As Byte, i As Long, n As Long, x, y
        With Sheets("Sheet1").Cells(1).CurrentRegion
            a = .Value
            With CreateObject("Scripting.Dictionary")
                .CompareMode = 1
                For t = 1 To 2
                    For i = 2 To UBound(a, 1)
                        If a(i, t) <> "" Then
                            If Not .exists(a(i, t)) Then
                                ReDim w(1 To 3)
                                ReDim tablo(1 To 2, 1 To 1)
                            Else
                                w = .Item(a(i, t))
                                tablo = w(3)
                            End If
                            w(t) = w(t) + 1
                            If UBound(tablo, 2) < Application.Max(w(1), w(2)) Then
                                ReDim Preserve tablo(1 To 2, 1 To UBound(tablo, 2) + 1)
                            End If
                            tablo(t, w(t)) = a(i, t)
                            w(3) = tablo
                            .Item(a(i, t)) = w
                        End If
                    Next
                Next
                x = .keys: y = .items
            End With
        End With
        Application.ScreenUpdating = False
        'Restitution et mise en forme
        On Error Resume Next
        Application.DisplayAlerts = False
        Sheets("Restitution").Delete
        Application.DisplayAlerts = True
        On Error GoTo 0
        Sheets.Add.Name = "Restitution"
        With Sheets("Restitution").Cells(1)
            .Parent.Cells.Clear
            .Resize(1, UBound(a, 2)) = a
            n = 1
            For i = 0 To UBound(x)
                With .Offset(n).Resize(UBound(y(i)(3), 2), UBound(y(i)(3), 1))
                    .Value = Application.Transpose(y(i)(3))
                    .BorderAround Weight:=xlThin
                    n = n + .Rows.Count
                End With
            Next
            With .CurrentRegion
                .Borders(xlInsideVertical).Weight = xlThin
                .Font.Name = "calibri"
                .Font.Size = 10
                .VerticalAlignment = xlCenter
                .HorizontalAlignment = xlCenter
                With .Rows(1)
                    .Font.Bold = True
                    .BorderAround Weight:=xlThin
                    .Cells(1).Interior.ColorIndex = 44
                    .Cells(2).Interior.ColorIndex = 43
                End With
                .Columns.AutoFit
            End With
            .Parent.Activate
        End With
        Application.ScreenUpdating = True
    End Sub
    Après on fait quoi

    klin89

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

Discussions similaires

  1. [Débutant] Implementer des conditions de KKT dans un problème d'optimisation
    Par membreComplexe12 dans le forum MATLAB
    Réponses: 2
    Dernier message: 17/02/2011, 08h02
  2. Réponses: 9
    Dernier message: 20/06/2005, 12h17
  3. Aide pour l'analyse d'un problème de gestion de temps
    Par PAINCO dans le forum Décisions SGBD
    Réponses: 8
    Dernier message: 03/06/2005, 15h49
  4. [SGBD]Optimiser le temps d'accès aux données (schéma BD)
    Par vsavoir dans le forum Décisions SGBD
    Réponses: 5
    Dernier message: 08/10/2004, 18h33
  5. optimisation de temps de traitement xml/xslt
    Par Erwy dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 06/05/2004, 16h08

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