XL pour MAC Calendrier et remplissage automatique

LitaWright

XLDnaute Nouveau
Bonjour à tous,

Je me tourne vers vous en espérant gagner quelques heures de sommeil.
Je m’occupe d’héberger plus de 400 personnes pour une série. Mettre à jour quotidiennement 400 lignes de présence dans un tableau, c’est très chronographe et induit des erreurs…

Je me demandais s’il serait possible d’entrer automatiquement des valeurs dans un planning ?

Je m’explique :)

Sur une feuille Excel, j’ai la liste entière des personnes à héberger. À droite de leurs noms, j’ai des colonnes «date d’entrée dans l’hébergement » ; « date de sortie de l’hébergement ». Il y a plusieurs colonnes puisque le projet s’étale sur plusieurs mois.

Encore à côté, j’ai donc un calendrier. De novembre 2022 à Août 2023.
Je me demandais s’il serait possible que ce calendrier se remplisse automatiquement avec les dates que j’indique dans les premières colonnes ?

Par exemple, si je dis que Thomas est logé du 3 au 6 mars puis du 15 au 20 juillet, des croix (ou un 1 ou toute autre valeur) apparaissent automatiquement sous les dates ?

Ainsi, ça me permet également de savoir combien de personnes j’ai besoin de loger par jour.

Remplir les dates + mettre les croix moi-même est plus que laborieux (pour tout expliquer jusqu’au bout, je ne mets même pas des croix, je mets des lettres en fonction de la ville dans laquelle ils sont).

J’espère que je suis claire et que vous pourrez m’aider. Merci beaucoup !

(PS: je ne pense pas avoir vu de thread sur le sujet mais si jamais c’est le cas, je suis désolée)
 

LitaWright

XLDnaute Nouveau
Mes excuses, je n'y ai pas pensé car il est rempli de données confidentielles sur d'autres onglets.
J'ai fait du tri. Ne le jugez pas trop, c'est un travail en cours (les lignes de la liste ne sont pas bien en face avec le planning car je n'ai pas encore rentré tout le monde).
Je l'ai mis sur wetransfer car le forum me dit que le fichier est trop volumineux : https://we.tl/t-mfuXD1JvLi
Merci beaucoup et très bonne journée à vous également
 

xUpsilon

XLDnaute Accro
Bonjour,

J'ai un souci avec le début du tableau, pourquoi est-ce décalé ?
1673515309203.png

Les trois premières lignes correspondant aux directeurs ne peuvent pas être renseignées, c'est normal ?

Bonne journée,
 

LitaWright

XLDnaute Nouveau
Ce sera peut-être plus simple comme ça.
Mais oui tout à fait !
Les dates dans le tableau de gauche qui deviennent des valeurs / lettres dans le planning à droite.
Merci et bonne fin de journée,
 

Pièces jointes

  • ROOMING-exc.xlsx
    347.2 KB · Affichages: 14

LitaWright

XLDnaute Nouveau
Plus d'infos si ça peut aider.
  • Les dates changeant souvent, il faudrait que je puisse actualiser le planning tout le temps
  • Je vais forcément rajouter des lignes car on va me rajouter des gens quotidiennement
  • Je ne mets pas des croix, mais la lettre de la ville dans laquelle les gens dorment (ça me permet de savoir combien de gens j’ai par ville en même temps, c’est calculé tout en bas du tableau)
  • Pour le moment je mets le L de Loire en gras et en vert et le M de Martigues en gras et en Bleu, le P de Paris en bordeaux etc - ça facilite la lecture.
    Exemple :
1e82cb9c0b991022a462e4a15f35dfe75fe985c4.png



Je le fais normalement à la main mais avec + de 400 personnes et des changements constants, je sais que je vais finir par faire des erreurs et oublier qqn.

En tout cas, merci beaucoup d’essayer de m’aider
 

Pièces jointes

  • NEW_PLANNING-exc.xlsx
    644.8 KB · Affichages: 10

job75

XLDnaute Barbatruc
Bonjour LitaWright, le forum,

Voyez le fichier joint et cette macro dans le code de la feuille :
VB:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim dates As Range, ville As Range, r As Range, lettre$, i%, deb As Variant, fin As Variant
Set dates = Range(Rows(4).Find("*", , xlValues), Cells(4, Columns.Count)) 'dates en ligne 4
Application.ScreenUpdating = False
Application.EnableEvents = False 'désactive les évènement
For Each ville In Rows(1).SpecialCells(xlCellTypeConstants, 2)
    If ville <> "" And ville.Column > 1 And ville.MergeCells Then
        Set r = Intersect(Target.EntireRow, ville.MergeArea.EntireColumn, UsedRange)
        If Not r Is Nothing Then
            lettre = UCase(Left(ville, 1)) 'initiale du nom
            For Each r In r.Rows
                If r.Row > 7 Then 'à partir de la ligne 8
                    Intersect(r.EntireRow, dates.EntireColumn).Replace lettre, "", xlWhole, MatchCase:=False 'RAZ
                    For i = 1 To r.Cells.Count - 1 Step 2
                        If IsDate(r.Cells(i)) And IsDate(r.Cells(i + 1)) Then
                            deb = Application.Match(r.Cells(i).Value2, dates)
                            fin = Application.Match(r.Cells(i + 1).Value2, dates)
                            If IsNumeric(deb) And IsNumeric(fin) Then
                                With Intersect(r.EntireRow, Range(dates(deb), dates(fin)).EntireColumn)
                                    .Value = lettre
                                    .Font.Bold = True 'gras
                                    .Font.Color = IIf(lettre = "M", vbBlue, IIf(lettre = "L", vbGreen, vbRed))
                                End With
                            End If
                        End If
                    Next i
                End If
            Next r
        End If
    End If
Next ville
Application.EnableEvents = True 'réactive les évènement
End Sub
Entrez des dates sous la ligne 7 et voyez le planning.

A+
 

Pièces jointes

  • NEW_PLANNING(1).xlsm
    656.5 KB · Affichages: 14

LitaWright

XLDnaute Nouveau
Bonjour Job75,
Wow, génial, c'est exactement ça, merci beaucoup !
Comment puis-je adapter ? Comme ça ne fonctionne que sur les deux premières colonnes check-in / check-out.
Encore merci, l'idée que je n'aurais plus à tout rentrer à la main illumine ma journée
 

Discussions similaires

Statistiques des forums

Discussions
311 724
Messages
2 081 936
Membres
101 844
dernier inscrit
pktla