Organiser des tâches selon leurs chiffres

Bonjour le forum,

je recherche une solution automatisée pour effectuer une sorte de "mise à la suite" des différentes tâches à réaliser.

j'ai lié un exemple du fichier souhaité.

voici un exemple de ce qui serait souhaité :

Remplir le tableau 2 à partir du tableau 1 sachant que :

zone 1 à la date 1 , l'article b est à réaliser avant l'article a (cette condition serait indiquée manuellement)

cette exemple varie à chaque date et pour chaque article et zone.

Pouvez-vous m'aider à trouver une solution?

en vous remerciant d'avance!

Bonjour

nclsdp a écrit :

zone 1 à la date 1 , l'article b est à réaliser avant l'article a (cette condition serait indiquée manuellement)

OK mais où serait écrite cette condition ?

Bonjour gmb,

je cherche la solution la plus simple pour mettre cette condition :

  • insérer une colonne supplémentaire entre chaque date?
  • ajouter un tableau semblable en remplaçant les quantité par ces fameuses conditions?

aurais-tu une idée?

Un essai à tester. Te convient-il ?

Bye !

Bonjour gmb,

merci pour ta proposition qui correspond exactement à ce que je voulais!

Bonjour le forum, bonjour gmb,

j'ai essayé de transposer ton code à un fichier un peu plus détaillé que celui que j'avais posté mais je n'arrive pas à adapter le code;

Quand je clique sur le bouton pour exécuter la macro, rien ne se passe.

Peux-tu m'aider?

merci d'avance

Bonjour

Nouvel essai.

Attention à l'écriture des dates. Pour séparer le jour du mois et le mois de l'année, il ne faut pas mettre un point mais un slash : /

Bye !

12organisation-2.xlsm (29.73 Ko)

Bonjour gmb, le forum,

merci pour ta nouvelle proposition,

ça me va tout à fait!

merci beaucoup!

Re-bonjour gmb, le forum,

si je veux changer le nom des zones, ex zone 1 => ligne 1

zone 7 => ligne p

comment je fais car si je change, la ligne de code :

lng = lng + Split(Cells(lnZ, "A"), " ")(1) - 1

ne s'exécute pas

merci

Bonjour

nclsdp a écrit :

si je veux changer le nom des zones, ex zone 1 => ligne 1 zone 7 => ligne p

Les noms indiqués dans les colonnes A et Q sont indépendants de la macro qui ne se sert de ceux de la colonne A que comme repère de début de zone.

Tu peux donc les modifier sur la feuille de calcul, sans modifier la macro.

OK ?

Bye !

ok,

alors comment se fait-il que quand j'ai changé les noms de la colonne A et pa conséquent ceux de la colonne Q, le message "n'appartient pas à la sélection" est apparu?

je confirme,

même sur le dernier essai que tu m'as envoyé,

si je change un nom de zone, quand j'exécute la macro, le message suivant apparaît :

"incompatibilité de type"

ou

"l'indice n'appartient pas à la sélection"

nclsdp a écrit :

alors comment se fait-il que quand j'ai changé les noms de la colonne A et pa conséquent ceux de la colonne Q, le message "n'appartient pas à la sélection" est apparu?

Tu as raison. J'ai répondu trop vite. Il faut que le nom en colonne A se termine par un numéro d'ordre dont la macro se sert.

Pour éviter ça, remplace l'instruction :

lng = lng + Split(Cells(lnZ, "A"), " ")(1) - 1

par :

lng = lng + (lnZ - 6) / 9

Et cela devrait te permettre de mettre n'importe quels noms en colonne A.

OK ?

ok, ça fonctionne,

en revanche, maintenant la dernière ligne de chaque zone du tableau 1 se met sur l'avant dernière ligne du tableau 2 au lieu de la ligne correspondante

nclsdp a écrit :

en revanche, maintenant la dernière ligne de chaque zone du tableau 1 se met sur l'avant dernière ligne du tableau 2 au lieu de la ligne correspondante

OK

On va faire autrement et mettre un compteur pour savoir quelle zone traite la macro.

Option Explicit

Dim ln, derLn, lnZ, lnF, lng, col, cell, i
Dim art, quant, ord, colDteTab2, FormatDorig

Sub ordre()

    'Initialisation de la zone de résultat
    Range("R6:X40").ClearContents

    Set colDteTab2 = Range("P6:P40")
    FormatDorig = colDteTab2.NumberFormat
    colDteTab2.NumberFormat = "General"

    derLn = Range("B5").End(xlDown).Row
    For col = 3 To Cells(4, Columns.Count).End(xlToLeft).Column Step 2
        lnZ = 6                            '1° ligne de zone
       i = 0
        For ln = 6 To derLn
           i = i + 1
            If lnZ + 1 = "" Then
                lnF = lnZ + 1               'lnF = dernière ligne de zone
            Else
                If Range("A" & lnZ).End(xlDown).Offset(0, 1) <> "" Then
                    lnF = Range("A" & lnZ).End(xlDown).Row - 1
                Else
                    lnF = derLn
                End If
            End If
            While ln <= lnF
                ord = Cells(ln, col + 1)
                If ord = "" Then 'And Cells(ln, col) = "" Then
                    If Cells(ln, col) = "" Then
                        GoTo suite
                    Else
                        ord = 1
                    End If
                End If

                Set cell = colDteTab2.Find(Cells(4, col) * 1, lookat:=xlWhole, LookIn:=xlValues)
                If Not cell Is Nothing Then
                    lng = cell.Row
                Else
                    MsgBox "La date du " & Cells(4, col) & " n'existe pas dans le tableau 2", 16
                    GoTo fin
                End If
               lng = lng + i - 1 '(lnZ - 6) / 9  'Split(Cells(lnZ, "A"), " ")(1) - 1
                Cells(lng, 17 + ord) = Cells(ln, "B")
suite:
                ln = ln + 1
            Wend
            lnZ = ln
            ln = ln - 1
        Next ln
    Next col
fin:
    colDteTab2.NumberFormat = FormatDorig
End Sub

Qu'est-ce que ça dit ?

je viens de tester,

ça fonctionne très bien!

je vais faire plusieurs essais et je te fais un retour.

merci pour cette mise à jour, le compteur à l'air de résoudre l'histoire de la dernière ligne

Bonjour le forum, gmb,

j'ai fait plusieurs essais avec ta dernière version du code,

ça fonctionne dans tous les cas, c'est nickel!

merci pour ton aide!

Bonjour

nclsdp a écrit :

J'aimerais apporter une mise à jour par rapport au code que tu m'as proposé.

Je voudrais rajouter la quantité à côté de chaque lettre qui a été ordonné.

C'est possible?

Nouvelle version :

Te convient-elle ?

Bye !

Bonjour,

sur le fichier joint, la solution me convient parfaitement.

J'ai voulu appliquer le code à un tableau plus grand mais la message box apparaît "la date du ... n'existe pas dans Tableau 2"

Quelle est la ligne que j'ai mal adapté?

Joins le fichier avec le nouveau tableau.

Bye !

Rechercher des sujets similaires à "organiser taches leurs chiffres"