aide pour créer un planning

ROBIN42

XLDnaute Nouveau
Bonjour,

J'aimerai créer un planning comprenant deux pages.
La page 1 sert à titre d'information concernant le lieu et le nombre d'heure à y passer par semaine.
La page 2 renseigne sur les intervenants pour chaque lieu. Je voudrais créer 2 choses dans la 2ème page :

- (les heures sont des multiples de 43.) Si pour le lieu 1 j'ai 86H marquée dans la page 1, je voudrai que dans la page 2 apparaisse 2 fois le lieu 1 pour y mettre 2 intervenants. Ex de la page 2:

lieu intervenants sem 39
1 DUPONT
1 DURAND

- Aussi, je voudrais que les intervenants déjà inscrits pour un lieu soient colorés en rouge dans la liste des intervenants dispo pour voir qu'ils ne sont plus dispo.

Merci
 

Pièces jointes

  • Classeur1.xls
    13.5 KB · Affichages: 147
  • Classeur1.xls
    13.5 KB · Affichages: 148
  • Classeur1.xls
    13.5 KB · Affichages: 149

Excel-lent

XLDnaute Barbatruc
Re : aide pour créer un planning

Bonsoir Robin42, le fil,

Ton explication n'est pas très clair! Sur ton fichier tu parle de lieu A, B, C, D et dans ton explication de lieu 1

Mais bon, jusque là, j'arrive à comprendre quand même!

Mais après???

Pour le lieu 1, en C2 tu as 43, donc sur la feuil2 tu veux une ligne?
Mais il y a également 43 en D2!!!

Il faut donc créer une ligne pour le 43 de C2 et une ligne pour le 43 de D2? Ou... comme sur la feuil2 il y a une colonne par semaine, une seule ligne fait l'affaire?

Si oui pour la ligne 4 de la Feuil1, en C4 il y a 43 -> donc tu as besoin d'une ligne sur la Feuil2
Mais comme en D4 tu as 86 tu auras besoin pour la semaine 40 de DEUX lignes!

Donc on prend le nb de lignes maxi : dans ce cas 2 lignes dixit D4?

Ainsi sur la Feuil2, sur la première ligne il y aura un intervenant dans la colonne S39 (colonne B) et un intervenant dans la colonne S40 (colonne C).
Et pour la seconde ligne, colonne S39 (colonne B), il n'y aura AUCUN intervenant et pour la colonne S40 (colonne C) il y aura un intervenant?

Comme tu peux le voir, jusque là, on arrive encore à comprendre un peu.

Mais où tout se complique, c'est que pour un même lieu donnée (Lieu A dans ton fichier) et pour la même tache (tache "M") il y a DEUX lignes!!!!!!

Là on est perdu!!!!

Alors on se dit : c'est peut être la ligne 2 qu'on reprend en dessous et sur laquelle on reporte les heures de la colonne S40 sur la semaine S39?

Si oui, alors pourquoi garder la ligne précédente? Ca fait doublons????

Bref, peux-tu clarifier ton explication et mettre sur la Feuil2 ce que tu es censé obtenir avec les données figurants sur la feuil1?

Autre soucis!
-> colorier la liste des intervenants sur la Feuil2 en B18: D20

Comment veux-tu que nous fassions?????

Rien qu'avec les exemple de la Feuil1 S39 tu as besoin de 16 intervenants, or tu en propose 3!

A moins qu'un intervenant puisse faire dans la même semaine plusieurs taches de 43heures?

A te lire

Cordialement


Robin42 à dit:
je voudrais que les intervenants déjà inscrits pour un lieu soient colorés en rouge dans la liste des intervenants dispo pour voir qu'ils ne sont plus dispo.

Solution la plus simple : MFC avec l'utilisation de la formule NB.SI()

Plus détaillé et en français :
Dire à la Mise en Forme Conditionnelle : si la valeur de la cellule où l'on se trouve est présente une fois ou plus dans la zone (ton tableau Feuil2 : ligne 1 à ...) alors colorier la cellule en ...

Concrètement pour ta cellule B18 :
-> sélectionner la cellule B18 (Feuil2)
-> cliquer sur "Format" / "Mise en forme conditionnelle"
-> juste en dessous de "Condition 1", sélectionner la valeur : "La formule est" (par défaut c'est écrit : "la valeur de la cellule est").
-> dans la zone blanche se trovant à droite, écrire :
=NB.SI($B$2:$B$14;B18)>0
-> après il te reste plus qu'à choisir le format de ton choix (couleur de la police, les bordures, la couleur de fond, ... à l'aide du bouton "Format" puis valider en cliquant sur "ok".
-> puis valider la globalité de ta MFC en cliquant à nouveau sur "ok"

$B$2:$B$14 -> zone de ton tableau (tu peux évidement remplacer $B$14 par la valeur de ton choix en fonction de la hauteur de ton tableau!)

Après, il ne te reste plus qu'à recopier vers la bas la mise en forme (à l'aide du pinceau).

Faire de même pour la liste des intervenants de la colonne C et D

Dans l'attente de te lire.

Cordialement
 
Dernière édition:

ROBIN42

XLDnaute Nouveau
Re : aide pour créer un planning

En gros tu as compris l'idée. Je vais plus expliquer là où ça se complique :

Pour un même lieu il ne peut y avoir qu'une seule personne par semaine (c'est pour cela que je veut qu'elles soient colorées en rouge).
Sauf que pour un même lieu il peut y avoir des différences d'heures en fonction de la semaine c'est pour cela qu'il faut que le nombre de ligne soit le nombre maxi d'intervenant. Et si on a a pas besoin d'intervenant il faut mettre de croix pour ne rien remplir.

J'ai fait un deuxième fichier excel pour montrer ce que je veux faire. A savoir qu'il ne faudrait rentrer uniquement les noms sur la feuille 2.

Merci
 

Pièces jointes

  • but.xls
    16 KB · Affichages: 110
  • but.xls
    16 KB · Affichages: 120
  • but.xls
    16 KB · Affichages: 120

Excel-lent

XLDnaute Barbatruc
Re : aide pour créer un planning

Bonsoir Robin42,

Ton deuxième fichier est déjà plus clair mais peux-tu nous donner encore un peu de précision?

Cf. ton fichier modifié ci-joint :
-> ton problème du coloriage des intervenants dispo ou non est résolu (j'ai appliqué à la lettre l'explication que j'ai donné dans mon précédent post et miracle, ça fonctionne :)).

-> Peux-tu lire les commentaires que j'ai mis dans les cellules B3 et C3 : il y a dedans quelques questions pour lesquels j'aurais besoin d'une réponse pour pouvoir solutionner ton soucis!

Tant que j'y pense, ta solution sera en VBA, j'espère que tu n'as rien contre?

A te lire

Bonne fin de soirée

PS. : cela aurait été sympa de dire "bonjour" dans ton précédent post (comme tu l'as si bien fait dans le précédent ;) (Lien supprimé)
 

Pièces jointes

  • but.xls
    18.5 KB · Affichages: 109
  • but.xls
    18.5 KB · Affichages: 112
  • but.xls
    18.5 KB · Affichages: 103

ROBIN42

XLDnaute Nouveau
Re : aide pour créer un planning

Bonjour,

J'avais bien fait des erreurs dans mon 2ème fichier ! Normalement celui-ci doit être juste.

Concernant la VBA je n'y connait rien du tout. En effet je suis vraiment débutant !! Mais je comprend bien que sans VBA cela reste impossible à faire donc non ça ne me dérange pas.

Merci pour ton aide précieuse
 

Pièces jointes

  • but(1).xls
    18.5 KB · Affichages: 83

ROBIN42

XLDnaute Nouveau
aide macro qui insere des ligne en fonction de la valeure

Bonjour,

Pour être plus clair, il faudrait une macro qui créer des lignes en fonction des valeurs de la feuille 2 (multiple de 43). Par exemple, si 86, il faudrait insérer 2 lignes...Mais débutant totalement je ne sais par où commencer.

Merci de votre aide
 
Dernière édition:

Excel-lent

XLDnaute Barbatruc
Re : aide macro qui insere des ligne en fonction de la valeure

Bonjour Robin42,

Ca y est! Voici ci-joint une proposition!

Tu peux lancer la macro : "création du planning" à partir des deux feuilles (cela revient au même).

ROBIN42 à dit:
Mais débutant totalement je ne sais par où commencer.

Le travail est terminé.

Mais si tu veux pouvoir comprendre, modifier, compléter la macro pour l'adapter à ton cas précis, tu vas devoir retrousser les manches et apprendre le VBA ;)

Dans la macro :
-> j'ai prévu quelques variables pour que la macro soit plus facilement modifiable en cas de rajout de semaine, de lieux, ...

-> j'ai rajouté quelques explications

PS. : évidement, dans ton cas, la solution la plus académique aurait surement été l'utilisation de la fonction Tablo (mais comme je ne la maîtrise pas à 100% et que je n'ai pas le temps de m'y plonger, j'ai fais ainsi). Mais rassure toi, ça fonctionne très bien quand même!!!
 

Pièces jointes

  • Robin42 proposition.xls
    34.5 KB · Affichages: 122

ROBIN42

XLDnaute Nouveau
Re : aide pour créer un planning

Bonjour,

Merci de ton aide c'est exactement ce que je voulais.

Maintenant je veux l'installer sur mon vrai fichier (que je met en pièce jointe).

J'ai regarder ce que t'as mis dans la macro et en effet je n'ai absolument rien compris ou presque!

Peux tu m'aider à la comprendre et à l'installer sur mon fichier prévisio ?

Merci
 

Pièces jointes

  • prévisio(1).xls
    40.5 KB · Affichages: 101

ROBIN42

XLDnaute Nouveau
Re : aide pour créer un planning

Re,
J'ai plus ou moins réussi à avoir ce que je voulais avec mon tableau.

En effet, j'ai rajouté à ton fichier joint une feuille "prévisionnel" et je m'en suis servit pour faire un copier/coller (ou plutot :ex colonne des chantiers =DECALER(Previsionnel!$D$16;LIGNE()-1;COLONNE()-1)) des colonnes qui m'interessent pour les mettres dans la feuille "onglet généralé.

Puis j'ai rajouté des semaines en modifiant la macro (For k = 1 To 10).

Ca marche plutot bien sauf que j'ai en réalité + de 60 intervenants possibles. Je voudrais donc pouvoir les mettres à la fin du planning et non au début comme tu l'as fait.

Crois tu pouvoir modifier et mettre les 60 intervenants en bas et pour chaque semaine ?

Merci pour le temps passé :)
 

ROBIN42

XLDnaute Nouveau
Re : aide pour créer un planning

Re, Re,

En faite j'ai réussi à mettre les intervenants comme je le voulais(même si ils sont restés en haut!).

Ce que j'aurais aimé maintenant c'est avoir pour tout les STM une ligne de créée avec marqué STM là où il y a des heures>=43.

Aussi j'ai un problème quand je lance la macro. Jusqu'à la ligne 110 sa va, mais à la ligne 111 jusqu'à 159 j'ai des 0 pour le nom des lieux. D'où cela peut il venir ?

Merci
 

Excel-lent

XLDnaute Barbatruc
Re : aide pour créer un planning

Bonsoir Robin42,

ROBIN42 à dit:
Aussi j'ai un problème quand je lance la macro. Jusqu'à la ligne 110 sa va, mais à la ligne 111 jusqu'à 159 j'ai des 0 pour le nom des lieux. D'où cela peut il venir ?

C'est parce que tu as mis la liste des intervenants en-desSOUS du tableau, au lieu d'au-desSUS! Tout simplement!

Pourquoi j'ai mis les intervenants en hauts :
-> déjà, je ne pensais pas que tu en ais autant!

-> car grâce à l'astuce "figer le volet" (comme fait dans le fichier transmis précédemment) : figer les lignes du haut, dont les intervenants, rend le remplissage du tableau plus aisé!
Car où qu'on soit sur le tableau, on voit les intervenants restant disponible, donc on sait lesquels on peut mettre dans les trous restant. D'autant plus important que ton fichier (et le mien) donne les intervenants pas encore mis dans le planning, mais il ne vérifie pas si l'intervenant n'a pas été mis DEUX fois (ou plus) sur une même semaine! Donc cette astuce réduit les chances d'avoir des doublons.

-> ton tableau ayant (du moins je l'imagine), un nombre de tache qui peut varier il me fallait une astuce pour que la macro sache où s'arrête le tableau. Et de préférence qu'il le fasse automatiquement (tout seul). N'ayant rien sous le tableau, j'ai utilisé le code suivant :
Code:
[A65536].End(xlUp).Row
Excel se met sur la cellule A65536, puis en remontant, il cherche la première cellule pleine, c'est à dire la dernière ligne de ton tableau!

Donc forcément, si tu rajoute des trucs SOUS ton tableau (colonne A), il pense que cela fait partie du tableau et l'analyse comme telle! D'où les 0.
-------------------------------------------------

Tu disais que les nombres étaient des multiples de 43! Alors pourquoi as-tu 215 à plusieurs endroits???

Dans certaines cellules au lieu d'avoir des chiffres, il y a du texte : CP, RTT, ...

Forcément, la macro va moins bien fonctionner!!!
-------------------------------------------------

Problème des CP, RTT, ... :
Une macro est un programme. Si l'on n'a pas tous les tenants et les aboutissants, le programme sera inadapté et donnera un résultat erroné!

Je te rassure tout de suite, concernant le texte : CP, RTT, ... cela n'influe pas sur le résultat, c'est bon! Mais cela aurait pu mettre la pagaille!
-------------------------------------------------

Problème de la liste des intervenants en dessous :

Pour résoudre cela, j'ai besoin que le DEBUT de ton tableau soit toujours au même endroit, et être sur que :

-> dans la colonne A, dans la zone de ton tableau, il n'existe aucune ligne où le nom de la tache ne soit pas renseigné

-> qu'il y ait au minimum une ligne vide entre la fin de ton tableau et la liste de tes intervenants

Ces deux conditions sont réalistes?

A te lire

Cordialement
 
Dernière édition:

Excel-lent

XLDnaute Barbatruc
Re : aide pour créer un planning

Bonsoir,

ROBIN42 à dit:
Puis j'ai rajouté des semaines en modifiant la macro (For k = 1 To 10)

Impeccable, c'est exactement ce qu'il fallait faire!

T'expliquer le reste de la macro?
C'est un peu comme si j'essayais d'expliquer une formule excel avec 8 conditions SI() imbriqué avec au milieu quelques ET() et quelques OU() à quelqu'un qui ne sait même pas faire une addition sur Excel!

Mieux vaut que tu commence l'apprentissage du VBA par les bases!

Désolé de ne pouvoir faire plus!

Bonne fin de soirée
 

ROBIN42

XLDnaute Nouveau
Re : aide pour créer un planning

Bonjour,

Pour te répondre :
- J'ai bien laissé les intervenants en haut et ça marche comme cela.
- Je n'ai plus mon pb au niveau de la ligne 111...donc ok!
- au faite 215 est bien un multiple de 43:)!!Par contre, a un endroit j'ai 258 (dc 6 personnes) et me met que 5 lignes. Bizarre.

J'ai donc "bidouiller" le fichier toute la journée. J'arrive à quelque chose de pas mal sauf que je viens de me rendre compte qu'il est juste que pour les 3 premières semaines...Si, par exemple j'ai 0h de la semaine 39 à 41 et que j'ai 43h qui apparaissent en semaine 42, la ligne n'est pas reprise dans le planning. Je pense que cela vient de l'exemple car sur l'exemple tu as mis 3 semaines (et je n'ai rien trouvé dans ta macro qui pourrait correspondre à cela).

C'est donc presque parfait (du moins pour 3 semaines).

Alors pourrais tu me faire l'exemple en reprenant le fichier et me mettre le maximum de semaines ? Je pense que c'est la derniere chose qu'il me faut pour qur mon projet fonctionne.

D'avance merci
 

Pièces jointes

  • Robin42 proposition2.xls
    35.5 KB · Affichages: 76

Excel-lent

XLDnaute Barbatruc
Re : aide pour créer un planning

Bonsoir Robin42,

Voici la liste des modifications à apporter à la macro pour qu'elle fonctionne lorsque la dernière semaine est la 84.

Avant modification :
Code:
Sub EffacerPlanning()
[COLOR="Green"]' Macro réalisé par Excel-lent
' Macro effacant le planning : onglet "planning" A16:AD...[/COLOR]
    
    Rows(17 & ":" & [A65536].End(xlUp).Row + 1).Delete
    With Range("A16:[B]AD[/B]17")
       .ClearContents
       .Interior.ColorIndex = 35
    End With
End Sub

Code:
Sub EffacerPlanning()
[COLOR="Green"]' Macro réalisé par Excel-lent
' Macro effacant le planning : onglet "planning" A16:AU...[/COLOR]
    
    Rows(17 & ":" & [A65536].End(xlUp).Row + 1).Delete
    With Range("A16:[B]AU[/B]17")
       .ClearContents
       .Interior.ColorIndex = 35
    End With
End Sub

AU -> nom de la dernière colonne de l'onglet planning

Concernant la seconde macro, permettant de réaliser le planning, voici le code avant :
Code:
Sub CréationPlanning()
' Macro réalisé par Excel-lent

Dim NbLigne As Long
Dim NbInfoGéné As Long

NbInfoGéné = Sheets("Info général").[A65536].End(xlUp).Row
    
Sheets("Planning").Select

With Sheets("Info général")
    For i = 2 To NbInfoGéné
        NbLigne = Application.WorksheetFunction.Max(Range(.Cells(i, 3), .Cells(i, 5))) / 43
        Rows([A65536].End(xlUp).Row + 2 & ":" & [A65536].End(xlUp).Row + NbLigne + 1).Insert 'insérer sur le planning le nb de ligne nécessaire
      For j = 1 To NbLigne 'création des lignes
        Cells([A65536].End(xlUp).Row + 1, 1) = .Cells(i, 1) 'écrire le nom du lieu sur chaque ligne du planning
        For k = 1 To 3 'Remplir dans le planning les noms (ou croix) (1 à 3 car semaine 39 à 41 à modifier si plus de semaines)
            If .Cells(i, k + 2) = "" Then
                Cells([A65536].End(xlUp).Row, k + 1) = "XXXXXXXXXX"
            Else
                If .Cells(i, k + 2) / 43 < j Then
                    Cells([A65536].End(xlUp).Row, k + 1) = "XXXXXXXXXX"
                Else
                    Cells([A65536].End(xlUp).Row, k + 1).Interior.ColorIndex = 40
                    Cells([A65536].End(xlUp).Row, k + 1) = "saisir nom"
                End If
            End If
        Next k
      Next j
    Next i
End With

End Sub

Voici le code après modification :
Code:
Sub CréationPlanning()
' Macro réalisé par Excel-lent

Dim NbLigne As Long
Dim NbInfoGéné As Long

NbInfoGéné = Sheets("Info général").[A65536].End(xlUp).Row
    
Sheets("Planning").Select

With Sheets("Info général")
    For i = 2 To NbInfoGéné
        NbLigne = Application.WorksheetFunction.[COLOR="Red"][B][U]Max[/U][/B][/COLOR](Range(.Cells(i, 3), .Cells(i, [B][COLOR="Red"]48[/COLOR][/B]))) / 43
        Rows([A65536].End(xlUp).Row + 2 & ":" & [A65536].End(xlUp).Row + NbLigne + 1).Insert 'insérer sur le planning le nb de ligne nécessaire
      For j = 1 To NbLigne 'création des lignes
        Cells([A65536].End(xlUp).Row + 1, 1) = .Cells(i, 1) 'écrire le nom du lieu sur chaque ligne du planning
        For k = 1 To [COLOR="Blue"][B]46[/B][/COLOR] 'Remplir dans le planning les noms (ou croix) (1 à 3 car semaine 39 à 41 à modifier si plus de semaines)
            If .Cells(i, k + 2) = "" Then
                Cells([A65536].End(xlUp).Row, k + 1) = "XXXXXXXXXX"
            Else
                If .Cells(i, k + 2) / 43 < j Then
                    Cells([A65536].End(xlUp).Row, k + 1) = "XXXXXXXXXX"
                Else
                    Cells([A65536].End(xlUp).Row, k + 1).Interior.ColorIndex = 40
                    Cells([A65536].End(xlUp).Row, k + 1) = "saisir nom"
                End If
            End If
        Next k
      Next j
    Next i
End With

End Sub

48 c'est le numéro de la colonne de la feuille "Info général". La 48ème colonne, c'est la colonne AV

A = 1
B = 2
C = 3
...
AV = 48

Bref, on cherche la valeur maximum incluse entre la colonne 3 (->C) et la colonne 48 (->AV) puis on divise le nombre ainsi obtenu par 43 ...

46 car tu n'as plus 3 semaines (de 39 à 41), mais 46 (de 39 à 84)

Voili, voilou!! C'est tout simple! Deux, trois modif et le tour est joué!

Ci joint le fichier modifié. Tu peux tester, ça fonctionne nickel ;)

Bonne soirée à tous
 

Pièces jointes

  • Robin42 proposition3.xls
    39.5 KB · Affichages: 95

ROBIN42

XLDnaute Nouveau
Re : aide pour créer un planning

Bonsoir,

En effet ça fonctionne nikel et pour toutes les semaines maintenant ! Mon projet avance bien grace à toi je te remercie :)!

Je me rend compte que j'ai énormément de lignes à cause d'autres taches.
Je m'explique : J'ai en réalité plusieurs tâches (B,STC,F...) mais je ne m'interesse qu'aux taches M et STM. Donc il ne faudrait pas recopier les tâches autres que M et STM. Et de plus, pour les tâches M c'est parfait rien ne change, mais pour la tâche STM, je voudrais que quand on a la tache STM (et que les heures sont >43), il aparaisse 1 seule ligne (pour n'importe quel nombre d'heures>43).
Ca donnerait pour :

chantier tache S39 S40 S41 S42 chantier S39 S40 S41 S42
A STM 215 0 43 86 A STM XXXX STM STM

En résumé, si la tache est STM et que le nombre d'heure est 43, 86, 215 ou n'importe quoi d'autre il faudrait que ça affiche la mention STM (sur une seule ligne), et si il y a 0h mettre des XXXXX.

Je pense que se sont les derniers changements à effectuer (enfin je l'espere;))

Sinon pour la couleur des fois c'est vert et des fois orangé mais "un peu n'importe comment"!! Je ne sais pas si ça peu s'arranger ?

En tout cas merci de ton aide
 

Discussions similaires

Réponses
4
Affichages
400
Compte Supprimé 979
C
Réponses
0
Affichages
276

Statistiques des forums

Discussions
312 294
Messages
2 086 891
Membres
103 404
dernier inscrit
sultan87