Probleme avec mon planning professionnel

emilie75

XLDnaute Nouveau
Bonjour,

j'ai besoin de votre aide car j'ai quelques problèmes pour finaliser mon planning de congés
Il s'agit d'un tableau; à la verticale il y a tous les salariés et à l'horizontale il y a toutes les semaines de l'année (afin de récapituler tous les congés et absences des salariés tout au long de l'année).

mon problème : mon tableau est beaucoup trop long, j'aimerais donc mettre en place un système permettant de sélectionner seulement la semaine que je souhaite faire apparaitre (SEMAINE 1, SEMAINE 2,.......... )

Je pense qu'il faut utiliser une macro?! voir un exemple ci joint entouré

merci beaucoup de votre aide
 

Pièces jointes

  • EXEMPLE.docx
    45.8 KB · Affichages: 97
  • EXEMPLE.docx
    45.8 KB · Affichages: 99
  • EXEMPLE.docx
    45.8 KB · Affichages: 99

emilie75

XLDnaute Nouveau
Re : Probleme avec mon planning professionnel

nan c'est un document Excel, je n'ai pas besoin d'un service de dépôt de fichiers, je souhaite seulement pouvoir sélectionner directement la semaine précise du planning dont j'ai besoin.... via une barre de défilement ou via une macro, comme il y a en exemple dans la pièce ci jointe!
 

KenDev

XLDnaute Impliqué
Re : Probleme avec mon planning professionnel

Oups, avec mes excuses, j'ai loupé ton fichier du premier post ! mal réveillé moi...

Je regarde mais a-priori je suis pas trop Word, directement un fichier xls (comme le faisait remarque Victor) serait plus simple pour ceux qui veulent essayer de t'aider, là avant de commencer à chercher il faut qu'on reconstruise ton planning !

Cordialement

KD
 

emilie75

XLDnaute Nouveau
Re : Probleme avec mon planning professionnel

nan nan mon planning est sur un fichier Excel, c'est seulement un exemple que j'ai transféré sur Word. je vais vous envoyer mon planning....

Comme vous pouvez le voir sur la pièce ci-jointe, mon tableau est beaucoup trop long... j'aimerais faire une sélection par mois ou par numéro de semaine
 

Pièces jointes

  • DEBUT DU PLANNING.xlsx
    30.1 KB · Affichages: 98
Dernière édition:

KenDev

XLDnaute Impliqué
Re : Probleme avec mon planning professionnel

Re bonsoir,

Ton fichier en retour. Je n'ai mis le planning que de janvier à Avril (semaine 1 à 16).

Il est destiné à un planning du type 1 année du 1er janvier/31 décembre, sur une page.

Le n° de semaine est à entrer en A2. Toute autre entrée qu'un nombre entre 1 et 53 affichera le planning en entier.

Cas particulier semaine 1 : les jours éventuels précédent la 1ère semaine sont affichés aussi

Respecte la norme ISO 8601 : la semaine commence le lundi, semaine 1 = celle qui contient le 1er jeudi de l'année

Il est facilement adaptable pour les changements suivants :
-nombre de colonne par jour : changer Lg = 1 dans les deux macros concernées
-ligne des dates : changer Rw = 8 dans la macro concernée
-1ère colonne du calendrier : changer C1 = 3 dans les deux macros concernées

Dans un module standard :
VB:
Option Explicit
Function ColToLet$(ByVal x&)
'donne la combinaison de lettres du n° de colonne entré
    Select Case x
        Case Is <= 26
            ColToLet = Chr(64 + x Mod 27)
        Case Is <= 702
            x = x - 26
            ColToLet = Chr(64 + (Int((x - 1) / 26) + 1) Mod 27)
            x = x - 26 * (Int((x - 1) / 26))
            ColToLet = ColToLet & ColToLet(x)
        Case Is <= 16384
            x = x - 702
            ColToLet = Chr(64 + (Int((x - 1) / 676) + 1) Mod 27)
            x = x - 676 * (Int((x - 1) / 676)) + 26
            ColToLet = ColToLet & ColToLet(x)
    End Select
End Function
Function Col1Week2%()
'renvoie la première colonne (lundi) de la 2ème semaine de l'année
'(norme ISO 8601 : la semaine commence le lundi, lundi=1 dimanche=7, semaine 1 = contient le 1er jeudi de l'année.
'à adapter Rw : n° de ligne ou apparaissent les jours
'               Lg : largeur en cellules d'une journée
'               C1 : 1ère colonne du calendrier
Dim Rw%, Cpt%, C1%, Lg%
Rw = 2: Lg = 5: C1 = 2
Cpt = 0
Do
    If WorksheetFunction.Weekday(Cells(Rw, C1)) = 5 Then Cpt = Cpt + 1
    If Cpt < 2 Then C1 = C1 + Lg
Loop Until Cpt = 2
Col1Week2 = C1 - 3 * Lg
End Function

Dans le module de la feuille :
VB:
Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
'à adapter Lg : largeur en cellules d'une journée
'          C1 : 1ère colonne du calendrier
Dim C1%, Lg%
C1 = 3: Lg = 1
    If Target.Address = "$A$2" Then 'à adapter : cellule ou l'on indique le n° de semaine
        Cells.EntireColumn.Hidden = False
        Select Case Target.Value
            Case 1
                Columns(ColToLet(Col1Week2()) & ":" & ColToLet(Columns.Count)).Hidden = True
            Case 2 To 53
                Columns(ColToLet(C1) & ":" & ColToLet(Col1Week2() - 1 + Lg * 7 * (Target.Value - 2))).Hidden = True
                Columns(ColToLet(Col1Week2() + Lg * 7 * (Target.Value - 1)) & ":" & ColToLet(Columns.Count)).Hidden = True
        End Select
    End If
End Sub

Cordialement

KD
 

Pièces jointes

  • Copie de DEBUT DU PLANNING.xlsm
    19.6 KB · Affichages: 98

emilie75

XLDnaute Nouveau
Re : Probleme avec mon planning professionnel

bonjour,

merci beaucoup KenDev (c'est impressionnant) !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

cordialement
E.R
 

Pièces jointes

  • PLANNING.xlsm
    53 KB · Affichages: 92
  • PLANNING.xlsm
    53 KB · Affichages: 97
  • PLANNING.xlsm
    53 KB · Affichages: 99
Dernière édition:

Discussions similaires

Réponses
0
Affichages
269
Réponses
14
Affichages
838
Réponses
28
Affichages
1 K

Statistiques des forums

Discussions
312 677
Messages
2 090 828
Membres
104 677
dernier inscrit
soufiane12