XL 2013 Calculer son temps de travail et suivi pointage mensuel

Cecil

XLDnaute Nouveau
Bonjour à Tous,

Dans mon service, une pointeuse a été très récemment installée et celle ci nous offre 4 formules de travail avec une plage fixe de présence obligatoire (voir fichier paramètres).
A part relever l'heure à laquelle on badge, nous n'avons accès a aucun suivi a part notre supérieur.

Du coup, j'essaye de créer une feuille de calcul "genre de pointeuse" qui me permettrait de suivre mes horaires mais aussi de calculer les heures de départs possible sous 4 scénarios.

J'aimerai sur cette feuille :

-indiquer l'heure précise à laquelle je badge et savoir l'heure de départ possible avec toutes les contraintes (plage fixe, durée de travail journalière ...) selon le scénario choisi ce jour là.

Malheureusement, je ne sais pas quelle formule prendre et encore moins comment rentrer toutes ses indications.

J'espère être assez clair dans mes explications

Ceci n'est peut être pas réalisable ... !

D'avance MERCI d'avoir pris le temps de lire ma requête.

Cordialement
Cécile
 

Pièces jointes

  • calcul temps w.xlsx
    15.7 KB · Affichages: 927

Victor21

XLDnaute Barbatruc
Re : Calculer son temps de travail et suivi pointage mensuel

Re,

Essayez :
VB:
Sub SauverMois()
Dim Ws1 As Worksheet
Dim Desti
Dim Mnom As String
    Set Ws1 = Sheets("Suivi mensuel")
    Ws1.Activate
    Application.ScreenUpdating = 0
    Mnom = Replace([B2].Value, "/", ".")
    If IsSheetExists([Mnom]) = False Then
        Ws1.[B2:L33].Copy
        Worksheets.Add(before:=ActiveSheet).Name = Mnom
        With ActiveSheet
            .[B2].PasteSpecial xlPasteValues
            .[B2].PasteSpecial xlPasteFormats
            .[C2:G33].Delete Shift:=xlToLeft
        End With
    End If
    Application.CutCopyMode = False
    [A1].Select
    Application.ScreenUpdating = 1


End Sub
qui ne plante pas chez moi :)
 

Victor21

XLDnaute Barbatruc
Re : Calculer son temps de travail et suivi pointage mensuel

Re, gosselien :)

Chez moi aussi (Excel 2010 en français) Application.Text([B2], "mmmm") renvoie le nom du mois en shakespearien.
Alors que
Mnom = Replace([B2].Value, "/", ".") le renvoie dans la langue de Molière :)
 

Cecil

XLDnaute Nouveau
Re : Calculer son temps de travail et suivi pointage mensuel

j'ai réussi à copier le VBA ds l'éditeur. Cela ne m'amène pas une erreur d’exécution 1004 comme avant.
Par contre il n'y a pas toutes les colonnes. je vais mettre le résultat que j'ai obtenu.
J'ai fait les mois de Juillet et Aout.
 

Pièces jointes

  • Copie de calcul temps w Cecil3 -2.xlsm
    50.2 KB · Affichages: 71

Victor21

XLDnaute Barbatruc
Re : Calculer son temps de travail et suivi pointage mensuel

Re, Cécile.

Si vous utilisez le dernier code de Gosselien, le nom de l'onglet sera le nom du mois en anglais.
Si vous utilisez mon adaptation, le nom sera la date qui figure en B2 sous la forme jj.mm.aaaa.
Et les colonnes qui ont disparu, c'est suite à votre demande du #20 :
Si j’abuse encore, une fois lancé cette copie suppression des valeurs colonnes « blanches » C à G.

PS : désolé de ne pas avancer plus vite : les obligations familiales priment :)

Bonne soirée, Cécile.
 

Cecil

XLDnaute Nouveau
Re : Calculer son temps de travail et suivi pointage mensuel

ok je me suis mal exprimée. Ce n'est pas sur la copie que je souhaitais l’effacement des colonnes blanches C à G mais sur le suivi mensuel.
Mais ce n'est vraiment pas grave cette suppression. Manuellement cela fonctionne très bien.
Je vais tenter de copier le code de Gosselien pour comprendre les posts.
je vais voir si j'arrive à modifier le code pour avoir sur la copie toutes les colonnes.
Merci encore à tous les 2 pour les réponses apportées.

Ne soyez pas désolé, tout ce que vous avez fait est déjà au delà de mes espérances.
Je peux patienter sans problème
Bonne soirée Patrick.
 

Victor21

XLDnaute Barbatruc
Re : Calculer son temps de travail et suivi pointage mensuel

Re,

Dernière version du code de sauvegarde, avant d'aller au lit :
VB:
Sub SauverMois()
Dim Ws1 As Worksheet
Dim Desti
Dim Mnom As String
    Set Ws1 = Sheets("Suivi mensuel")
    Ws1.Activate
    Application.ScreenUpdating = 0
    Mnom = Mnom = Application.Proper(MonthName([b1]))
    If IsSheetExists([Mnom]) = False Then
        Ws1.[A1:M33].Copy
        Worksheets.Add(before:=ActiveSheet).Name = Mnom
        With ActiveSheet
            .[A1].PasteSpecial xlPasteValues
            .[A1].PasteSpecial xlPasteFormats
            .[C1:G33].Delete Shift:=xlToLeft
            .[F1:G33].Delete Shift:=xlToLeft
        End With
        Columns("B:C").ColumnWidth = 20
        Columns("D:E").ColumnWidth = 12
    End If
    Application.CutCopyMode = False
    [A1].Select
    Application.ScreenUpdating = 1


End Sub
 

Pièces jointes

  • Cecil.xlsm
    39.9 KB · Affichages: 107

gosselien

XLDnaute Barbatruc
Re : Calculer son temps de travail et suivi pointage mensuel

Hello tous,

problème résolu alors :)

Merci du retour et des commentaires !


ps: Mnom = Application.Proper(MonthName([b2]))

ne fonctionne pas chez moi ??? il y aurait une référence à cocher ? (XL2007) c'est pourtant repris dans les listes de fonctions M$

P.
 
Dernière édition:

Cecil

XLDnaute Nouveau
Re : Calculer son temps de travail et suivi pointage mensuel

re,
j'ai une question de débutante :
pourquoi ds le code il y a ces 2 lignes :
.[C1:G33].Delete Shift:=xlToLeft
.[F1:G33].Delete Shift:=xlToLeft ?
Enfin en étant plus précise, je comprends que c'est pour supprimer et décaler à gauche mais la question porte plutôt sur la deuxième ligne : quel est son rôle?

Si je souhaite supprimer une colonne autre que celle indiqué :p par exemple la colonne I
je pensais modifier le code par
[I2:I33].Delete Shift:=xlToLeft
cependant il doit me manquer qq chose uniquement au niveau de la mise en forme. les colonnes à droite sont restées jaune poussin.

Vous m'avez donné l'envie de chercher ! mais en partant de loin!:cool:
 

gosselien

XLDnaute Barbatruc
Re : Calculer son temps de travail et suivi pointage mensuel

re,

si tu veux effacer la colonne entière ! (I):
essaye ceci dans un fichier exemple où tu auras mis des données avant et après cette colonne "I"

Sub colmoins()
[I:I].Delete shift:=xlToLeft

' [I:I,L:L].Delete shift:=xlToLeft pour effacer les colonnes I et L et tout décaler vers la gauche

End Sub

le >'< en début de ligne signifie que vba ne doit pas en tenir compte, tu le mets et puis l'enlèves pour tester
 

Statistiques des forums

Discussions
312 099
Messages
2 085 282
Membres
102 848
dernier inscrit
boum