Demande d'aide pour la réalisation d'une feuille de garde

chtitaz

XLDnaute Nouveau
Bonjour à tous,

Je viens vous solliciter pour avoir soit un fichier excel, soit l'explication de comment le réaliser.

Je m'explique; je suis en train d'essayer de réaliser un classeur excel de manière à faciliter la réalisation de nos feuilles de garde.

pour etre plus explicite, je vous joins le fichier que j'ai déja réalisé, il ne me manque plus que les formules ou macro pour joindre les 3 feuilles de mon tableau.

Le 1er onglet contient le "programme"
le second onglet contient les données du personnel
le 3ème onglet un appercu de la feuille type à réaliser.

en espérant avoir été assez précis sur ma requete, je vous remercie par avance pour l'aide sollicitée

Cordialement
Chtitaz
 

Pièces jointes

  • TRAVAIL A FAIRE.xls
    36.5 KB · Affichages: 160

chtitaz

XLDnaute Nouveau
Re : Demande d'aide pour la réalisation d'une feuille de garde

Salut,

Nickel la feuille comme ça; dans la colonne C j'ai rajouté V_49 et V_50 ca fontionne comme tu me l'as détaillé par contre sur la 1ere feuille, quand je clic sur "supprimer tout", ces deux dernières cellules ne s'effacent pas, comment modifier ça ?
je pense que si tu me le décrit comme tu l'as fait plus haut je devrais pouvoir le faire et t'éviter de tout recommencer ;)

Bonne journée
cordialement
Chtitaz
 

kjin

XLDnaute Barbatruc
Re : Demande d'aide pour la réalisation d'une feuille de garde

Bonjour,
Comme je n'avais rien rajouté, évidemment je ne me suis pas rendu compte de cet oubli
Dans le module de la feuille, modifie le code du bouton 4
Code:
Private Sub CommandButton4_Click()
Range("B3:[COLOR="Blue"][B]B500[/B][/COLOR]").ClearContents
Range("E1").ClearContents
End Sub
Dans le module1, suite aux dernières modifs, il y a également une coquille à corriger dans la macro suivante
Code:
Sub NewFeuille()
Dim rDate As String, jDate As String, ws As Worksheet, Tablo
Dim i As Byte, x As Byte, v As String
'....
rDate = Format(CDate(jDate), "dd-mm-[COLOR="Blue"][B]yy[/B][/COLOR]")
'....
Et je pense que cette fois on tient le bon bout
A+
kjin
 

chtitaz

XLDnaute Nouveau
Re : Demande d'aide pour la réalisation d'une feuille de garde

Bonjour,
Comme je n'avais rien rajouté, évidemment je ne me suis pas rendu compte de cet oubli
Dans le module de la feuille, modifie le code du bouton 4
Code:
Private Sub CommandButton4_Click()
Range("B3:[COLOR="Blue"][B]B500[/B][/COLOR]").ClearContents
Range("E1").ClearContents
End Sub
Dans le module1, suite aux dernières modifs, il y a également une coquille à corriger dans la macro suivante
Code:
Sub NewFeuille()
Dim rDate As String, jDate As String, ws As Worksheet, Tablo
Dim i As Byte, x As Byte, v As String
'....
rDate = Format(CDate(jDate), "dd-mm-[COLOR="Blue"][B]yy[/B][/COLOR]")
'....
Et je pense que cette fois on tient le bon bout
A+
kjin

Merci, modif faite par contre pour le format de la date je vais plutot le mettre du genre Lundi 4 octobre 2010
 

chtitaz

XLDnaute Nouveau
Re : Demande d'aide pour la réalisation d'une feuille de garde

Re, je parle de la feuille de garde en E3
j'ai fais une manip basique d'excel pour qu'une fois que la date est rentrée sur la feuille prog en E1, elle apparaisse sous le format lundi ... octobre 2010 sur la feuille de garde
 

kjin

XLDnaute Barbatruc
Re : Demande d'aide pour la réalisation d'une feuille de garde

Re,
j'ai fais une manip basique d'excel pour qu'une fois que la date est rentrée sur la feuille prog en E1, elle apparaisse sous le format lundi ... octobre 2010 sur la feuille de garde
La date peut très bien être saisie sous la forme "jj/mm/aa", et apparaitre sous la forme "jjjj jj mmmm aaaa", il suffit d'appliquer le bon format que se soit sur la feuille PROG ou la feuille de garde ou les 2
A+
kjin
 

chtitaz

XLDnaute Nouveau
Re : Demande d'aide pour la réalisation d'une feuille de garde

bonjour tout le monde,

Me revoila apres avoir mis en service la nouvelle version et honte à moi, depuis le début une chose apparait alors qu'elle ne le devrait pas, j'ai completement pas vu cette erreur de ma part.

En fait une fois la feuille de garde édité grace au programme, dans le tableau de spécialités, seul le personnel du haut de la feuille doit apparaitre et pas le personnel qui se trouve à droite ( astreintes, SPV 24h00, SPV 8h-20h et SPV 20h-8h)
Parce qu'en fait les personnels d'astreinte ne sont pas physiquement présent donc leur spécialités n'entre pas en compte dans le comptage et ne dois pas etre renseigné.
Désolé pour ce loupé
 

kjin

XLDnaute Barbatruc
Re : Demande d'aide pour la réalisation d'une feuille de garde

Bonsoir,
En fait c'est très simple, les données PROG sont chargées dans l'ordre dans un tableau, les astreintes commencant à l'item 33, il suffit d'utiliser cette variable dans la macro.
Note que si tu viens à rajouter des lignes dans la feuille PROG, il faudra les insérer avant les astreintes et indiquer la nouvelle valeur dans la macro !
Modifie la deuxième partie de la macro NewFeuillecomme ceci
Code:
Tablo = Range("B3:C" & Range("C65000").End(xlUp).Row).Value
Sheets("Feuille de Garde").Copy after:=Sheets(Sheets.Count)
With ActiveSheet
    .Name = rDate
    .Range("E3") = CDate(jDate)
    For i = 1 To UBound(Tablo)
        On Error Resume Next 'au cas où une cellule nommée n'existe pas
        If Not IsEmpty(Tablo(i, 2)) Then
            .Range(Sheets("FEUILLE DE GARDE").Range(Tablo(i, 2)).Address(0, 0)) = Tablo(i, 1)
        End If
        On Error GoTo 0
    Next
    For i = 1 To [COLOR="Blue"][B][SIZE="3"]32[/SIZE][/B][/COLOR] [COLOR="Blue"][B]'à la place de Ubound[/B][/COLOR]
        If x > 48 Then Exit For
        v = Tablo(i, 1)
        If v <> "" Then
            If Application.CountIf(.Range("A28:A48"), v) = 0 Then
                Set c = Sheets("Personnel").Range("Noms").Find(v)
                If Not c Is Nothing Then
                    Set d = Sheets("Personnel").Range("C" & c.Row & ":H" & c.Row)
                    If Application.CountA(d) > 0 Then
                        .Cells(x, 1) = v
                        .Range(.Cells(x, 4), .Cells(x, 9)) = d.Value
                        x = x + 1
                    End If
                End If
            End If
        End If
    Next
End With
A+
kjin
 

kjin

XLDnaute Barbatruc
Re : Demande d'aide pour la réalisation d'une feuille de garde

Bonjour,
Voir PJ, c'est dans la mavro NewFeuille
As tu lu la note dans mon précédent message concernant l'ajout de ligne dans la feuille PROG ?
A+
kjin
 

Pièces jointes

  • chtitaz_v6.zip
    34 KB · Affichages: 62

kjin

XLDnaute Barbatruc
Re : Demande d'aide pour la réalisation d'une feuille de garde

Bonjour,
Note que si tu viens à rajouter des lignes dans la feuille PROG, il faudra les insérer avant les astreintes et indiquer la nouvelle valeur dans la macro !
En fait, si tu viens à insérer de nouvelles lignes dans la feuille PROG et à condition que les Astreintes soient réparties sur les 16 dernières lignes, pour ne pas être obligé de modifié la macro, tu peux aussi écrire
Code:
Tablo = Range("B3:C" & Range("C65000").End(xlUp).Row).Value
Sheets("Feuille de Garde").Copy after:=Sheets(Sheets.Count)
With ActiveSheet
    .Name = rDate
    .Range("E3") = CDate(jDate)
    For i = 1 To UBound(Tablo)
        On Error Resume Next 'au cas où une cellule nommée n'existe pas
        If Not IsEmpty(Tablo(i, 2)) Then
            .Range(Sheets("FEUILLE DE GARDE").Range(Tablo(i, 2)).Address(0, 0)) = Tablo(i, 1)
        End If
        On Error GoTo 0
    Next
    For i = 1 To [COLOR="Blue"][B][SIZE="3"]Ubound(Tablo) - 16[/SIZE][/B][/COLOR]
        If x > 48 Then Exit For
        v = Tablo(i, 1)
        If v <> "" Then
            If Application.CountIf(.Range("A28:A48"), v) = 0 Then
                Set c = Sheets("Personnel").Range("Noms").Find(v)
                If Not c Is Nothing Then
                    Set d = Sheets("Personnel").Range("C" & c.Row & ":H" & c.Row)
                    If Application.CountA(d) > 0 Then
                        .Cells(x, 1) = v
                        .Range(.Cells(x, 4), .Cells(x, 9)) = d.Value
                        x = x + 1
                    End If
                End If
            End If
        End If
    Next
End With
A+
kjin
 

Discussions similaires

Réponses
16
Affichages
491

Statistiques des forums

Discussions
312 166
Messages
2 085 889
Membres
103 019
dernier inscrit
Eliot_1