Planning automatisés avc changements d'horaires

Bonjour à toutes & à tous,

voici quelque temps, j'avais déjà posté mon planning Excel...

Il a un peu évolué depuis, pour rappel:

c'est un Planning à la semaine.

C'est un planning pour les ouvriers d'un garage, il y a 4 équipes: 3 équipes à 3 postes (matin - après midi - nuit) & 1 équipe à 2 postes (matin - après midi), chaque ouvrier à un cycle qui change selon le n° de semaine choisi.

J'aimerais que quand je change le n° de semaine, les travailleurs changent de poste automatiquement selon le cycle qui leurs est attribué...

Mon problème est que tout le personnel ne s'affiche pas dans les colonnes et qu'il y a toujours des cellules vides à l'affichage, J'aimerais que tout les noms se suivent pour garder de la place...

Mon classeur est composé de 6 feuilles:

  • La feuille C qui est mon calendrier
  • La feuille BD dans laquelle je mets les noms du personnel (elle me sert de base)
  • La feuille CYCLE GARAGE dans laquelle un cycle est attribué à chaque ouvrier
  • Les feuilles CONGÉS où j'encode les infos qui seront retransmises dans le planning (Un congé, maladie,...)
  • La feuille PLANNING, c'est la feuille qui va être alimentée grâce aux différentes infos que j'encoderais dans les feuilles CONGÉS et qui est la feuille que j'imprimerais pour l'affichage.

Je vous remercie d'avance pour votre aide.

Christopher

Bonsoir

Remplaces la macro de la feuille "Planning" par celle-ci

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Lg As Long
Dim I As Integer
Dim Poste As Integer
Dim Ligne

  ' Se baser sur la cellule AL49
  If Not Intersect(Range("AL49"), Target) Is Nothing And Target.Count = 1 Then
    With Application
      .ScreenUpdating = False
      .EnableEvents = False
    End With
  ' Effacer les 3 zones d'inscription
    Range("A48:A60,M48:M60,Y48:Y60") = ""
    ' Inscrire le numéro de la 1ère ligne pour les équipes
    Ligne = Array(0, 48, 48, 48)
    ' Calcul du quantième de l"année de la date en F47 + le décalage dans la page GARAGE CYCLE
    Lg = Range("F47") - DateSerial(Year(Range("F47")), 1, 1) + 2
    With Sheets("CYCLE GARAGE")
      For I = 3 To 31
        Poste = Val(.Cells(Lg, I))
        If Poste > 0 And Poste < 4 Then
          If Trim(.Cells(1, I)) <> "" Then
            Cells(Ligne(Poste), 1 + ((Poste - 1) * 12)) = .Cells(1, I)
            Ligne(Poste) = Ligne(Poste) + 1
          End If
        End If
      Next I
      Application.EnableEvents = True
    End With
  End If
End Sub

merci pour l'aide "express" que vous m'avez apporté.

Christopher

Rechercher des sujets similaires à "planning automatises avc changements horaires"