Tableau Excel : ordonnancement

Bonjour à toutes et à tous !

J'ai une demande très particulière à faire, et je ne sais sincèrement pas si elle est réalisable sous Excel ou non. S'agissant d'un formidable programme, je me dis qu'il est sans limite... mais je préfère être sûr !

Voici ma demande :

J'ai un tableau Excel dans lequel j'inscrits l'ensemble de mes tâches. Les tâches sont en lignes, et les colonnes me permettent d'indiquer plusieurs éléments : date, heure de début, heure de fin etc.

A chaque fois que je finis une tâche, je la "coloris" en vert (qui signifie "fait") et les tâches en cours ou à faire restent neutres. Mon objectif : quand je mets une ligne (une tâche donc) en vert, qu'elle est ainsi considérée comme faite, j'aimerais qu'elle remonte automatiquement en haut du tableau, à la suite des tâches déjà effectuées. L'objectif est que mon tableau s'ordonne automatiquement dès que je coloris une ligne. Ainsi, j'aurais en haut de mon tableau toutes les tâches déjà effectuée, et en-dessous celles qui restent à faire...

Pensez-vous que c'est réalisable sous Excel? Et si oui, pourriez-vous m'aider à mettre cela en place s'il vous plait?

Si ma demande n'est pas claire, n'hésitez pas à me le dire, j'ai essayé d'expliquer au mieux.

Merci pour votre aide !

Bonjour,

C'est possible. Aurait tu un fichier joint ?

Hello,

Merci pour ton aide

Je t'ai fais un petit fichier test, tu as juste à surligner en vert clair les lignes que tu souhaite et appuyer sur le bouton

975classeur1.zip (9.75 Ko)

C'est exactement ça dans l'idée oui!

J'ai du mal par contre à refaire ça sur mon fichier

Ah je vois. En fait tu a fusionné des cellules. Du coup la macro que j'ai faite ne peut pas fonctionner.

Je vois pas trop comment faire. Désolé.

Oui je vois !

Si je faisais en sorte qu'aucune cellule ne soit fusionnée, ça pourrait marcher? Si je refaisais le tableau par exemple?

Il y à surement une solution même si elles sont fusionnées mais je ne la connais pas.

Sinon je peut adapter le code sans fusion.

Si tu veut pas t'embêter à refaire le tableau, peut être que quelqu’un d'autre auras la solution

"Je peux adapter le code sans fusion"

Je veux bien oui, s'il te plait

Merci de ton aide en tout cas.. j'avais peur que ma demande relève de l'utopie!

Non du tout, Excel peut faire des choses bien plus puissante ! (Il y en a même qui font des dessins animés )

Du coup, il me faudrait ton fichier sans cellules fusionnés si tu as le temps de le faire.

Autrement comme je te disais, il faut voir si quelqu'un à une autre solution.

Carrément !! J'ai jamais pris le temps d'explorer les possibilités de ce logiciel.. Ca a l'air d'être juste dingue!!

Oui, si je n'ai pas de réponses d'ici demain, je referai le tableau et je te l'enverrai sans soucis

Merci beaucoup!!

Voila !

Tu notera que l'extension à changé : c'est du xlsm ce qui veut dire qu'il prend en charge les macros

Dans développement -> Visual basic -> module1 tu verra ce code

Sub test()
i = 3

    Do While Cells(i, 1) <> ""  'ceci est une simple boucle tant que ta colonne "A" n'est pas vide

        If Cells(i, 1).Interior.Color = 5296274 Then '5296274 est le code la couleur vert clair 
            Rows(i).Select
            Selection.Cut
            Rows("2:2").Select 
            Selection.Insert

        End If

     i = i + 1
    Loop

End Sub

Je t'invite à regarder des tuto sur la programmation en VBA sur ce site ou autres qui sont assés bien fait et qui m'ont beaucoup appris.

225tab.xlsm (24.08 Ko)

Super, merci pour ton aide!

Je vais effectivement prendre le temps de regarder cela ce weekend.. un apprentissage excel ne me fera pas de mal !!

Pas de problème. Pense à valider la réponses qui t'as aidé.

Je me permets par contre, une petite question subsidiaire..

Si je désire rajouter une entête avec logo en déplaçant le tableau, le bouton ne marche plus. J'en déduis que c'est lié au code, où l'on mentionne la ligne "1".

Si le tableau (avec les entêtes de colonnes) commence à la ligne 4 par exemple, dois-je changer mon code ainsi :

Sub test()

i = 3

Do While Cells(i, 4) <> "" 'ceci est une simple boucle tant que ta colonne "A" n'est pas vide

If Cells(i, 4).Interior.Color = 5296274 Then '5296274 est le code la couleur vert clair

Rows(i).Select

Selection.Cut

Rows("4:4").Select

Selection.Insert

End If

i = i + 1

Loop

End Sub

En fait, Cells prend 2 paramètres : Cells (ligne, colonne) par exemple pour la cellule "A1", ce sera cells(1, 1) ou pour z4 ce sera cells(4, 25).

Ensuite la Rows("4:4") et la ligne 4 sur la quelle le programme insère la ligne coupé.

Est ce que ça t'aide ?

Oui ! C'est beaucoup plus clair comme ça, je vais regarder merci

Ok. Si tu comprend un peut ce code, tu pourras déjà faire des trucs sympa par la suite.

Bon courage.

Sub test()
i = 3

    Do While Cells(i, 1) <> ""

        If Cells(4, 1).Interior.Color = 5296274 Then
            Rows(i).Select
            Selection.Cut
            Rows("4:4").Select
            Selection.Insert

        End If

     i = i + 1
    Loop

End Sub

C'est mieux comme ça?

Renvoie moi ton nouveau fichier avec ce que tu as inséré.

tu vas avoir un problème sur ces lignes sinon

If Cells(4, 1).Interior.Color = 5296274 Then
Do While Cells(i, 1) <> ""
Rechercher des sujets similaires à "tableau ordonnancement"