Feuille de temps et analyse de production

lilou09200

XLDnaute Occasionnel
Bonsoir,

Je voudrais savoir s'il y a moyen de créer un fichier de saisie de temps pour une société prestataire de services.

Il faudrait que l'on puisse:
- créer deux ou trois utilisateurs,
- avoir des tâches différentes avec un coût horaire différent,
- avoir une liste avec l'ensemble des clients,
- avoir lapossibilité de comparer le coût de revient pour un client avec le montant facturé,...

Cdlt
 

alex67800

XLDnaute Impliqué
Re : Feuille de temps et analyse de production

Re bonjou,
j'avais une question que je n'ai pas osé posé ce midi. Les Commandbutton 10 et 8, ils sont planqués où ?
Dans la Frame1 qui n'existe plus lol:p

Je sais; c'est moi, je n'ai pas fait le ménage quand je t'ai refait le formulaire:eek:

Si tu trouves d'autres cadavres te gène pas de les supprimer.:D

Existe t'il une astuce pour faire dire à une formule qui implique la ligne juste au dessus quelle se "recalcule" correctement lorsque qu'on fait une sélection d'uniquement quelques lignes avec la "fleche" de seléction qui se trouve sur les entetes de colonnes

Sûrement mais la je sèche:rolleyes:, une bonne viré sur le forum via l'option recherche s'impose. J'ai déjà croisé des sujets qui traîte de se genre de problème. Suis pas un Babatruc moi, suis humble.:cool:

On continue le ménage?
Dans module1 Sub okgo:
supprime .repaint, cette méthode n'a rien apporté.
Je voulais que j'usf se recharge quand on rentre une nouvelle données dans les combo, mais pfff sa marche pas. L'usf3 s'en charge maintenant.

Les codes en vert tu peux aussi les virer (label11, 7, textbox3,1)

Dans module2 sub masquer:
Les codes en vert tu peux aussi les virer (label7, textbox1)

Dans Usf3:
-Cmdbutton7 et 8 (j'abrège):
supprime DoEvents

-actuellement les txtbox 7,8,9 sont figé en chiffres (nbre entier); tu ne pourras rentrer de décimale. Si cela te gène vire les code associé au textbox.
Dans le cas contraire reproduit le également pour textbox10 et 25.

Voilà je pense que cela devrait être mieux rangé, ça sent le propre!!!:D

Pour ton problème plus haut une piste ici:
https://www.excel-downloads.com/threads/faire-une-somme-des-cellules-visibles-uniquement.84751/
et ici:
https://www.excel-downloads.com/threads/addition-cellules-visibles.96628/

Ou ceci de Frédéric sigonneau:
Attribute VB_Name = "SommeCellulesVisibles"

'Somme des cellules visibles
'L Longre, mpfe

Function SOMMEVISIBLE(Plage As Range) As Double
Dim Z As Range, C As Range
For Each Z In Plage.Columns
If Not Z.EntireColumn.Hidden Then _
If C Is Nothing Then Set C = Z Else Set C = Union(Z, C)
Next Z
If C Is Nothing Then Exit Function
If C.Areas.Count = 1 And C.Columns.Count = 1 Then
For Each Z In C.Cells
If Not Z.EntireRow.Hidden Then SOMMEVISIBLE = SOMMEVISIBLE + Z
Next Z
Else
For Each Z In C.Rows
If Not Z.EntireRow.Hidden Then _
SOMMEVISIBLE = Application.Sum(SOMMEVISIBLE, Z)
Next Z
End If
End Function

'Si des lignes et/ou des colonnes sont masquées par la suite, il faut
'faire Ctrl-Maj-F9 pour mettre à jour le résultat de cette fonction dans
'toutes les cellules où elle a été utilisée.
Trouvé ici: Ce site n'existe plus

A y'est 5 minutes de recherche via google et suis épuisé...;)

Je te laisse le soin de l'adapter.
 

nanajunior

XLDnaute Nouveau
Re : Feuille de temps et analyse de production

Re,

T'as déjà pris le temps de me refaire le formulaire alors pour le ménage...:D
Je dépoussière donc où tu me l'as dit.
J'ai préféré te poser la question plutôt que de supprimer à tort.
C'est ma 1ère expérience de vba, alors j'y vais à pas de velours.

Je creuse ta piste.
Je suis aussi en train travailler pour mettre en place l'encadrement automatique de toutes les cellules de la ligne à chaque nouvel enregistrement, pour que le tableau soit plus sympa à l'impression.

Je tiens au courant de mes avancements

Véro
 

alex67800

XLDnaute Impliqué
Re : Feuille de temps et analyse de production

Re Véro,
Pas encore couchée??:D
Tu passes par une MFC (Mise en forme conditionnelle)
Code:
=NON(ESTVIDE($A4))
Tu met ceci en A4, via MFC, dans la formule est (feuille analyse)

Ensuite tu fais copier, tu selctionne toutes ta plage concernée (A5 à W5), puis ctrl+shift+flèche bas. Ce qui te selectionne la plage jusqu'à la fin de la feuille.;)
Dela tu fais collage spécial>>>>.format.

Petit hic tu es obligé de refaire le format nombre des colonnes J à W, mais c'est pas cher payé...;)

Donc si A (date) n'est pas vide, alors tu auras une bordure sur la plage A:W.

A reproduire pour les autres feuilles.
 
Dernière édition:

nanajunior

XLDnaute Nouveau
Re : Feuille de temps et analyse de production

Pas de repos pour les braves;)

Je venais également de trouver une MFC au moment de ta réponse :
Code:
Quadrillage
Le quadrillage n'apparaît qu'au fur et à mesure de la saisie dans la colonne A.

-Sélectionner A2:D100
-Format/Mise en forme conditionnelle
-Choisir La formule est:
=$A2<>""
-Dans Format, choisir un fond et un quadrillage

sur :Formation Excel VBA JB

y'a des exemples sympas

A la place de D100 j'ai fait ctrl+shift+flèche bas comme toi.
Pas eu de problème de format nombre, c'est royal.:)

Véro
 

alex67800

XLDnaute Impliqué
Re : Feuille de temps et analyse de production

Re,
Tous les chemins mennent a Rome!!!!;)

une petite modif à faire dans ton fichier.

J'ai mis les codes dans un classeur vierge, car sinon il devenait trop lourd.
 

Pièces jointes

  • GESTION DES TEMPS modif.xls
    21 KB · Affichages: 136
  • GESTION DES TEMPS modif.xls
    21 KB · Affichages: 137
  • GESTION DES TEMPS modif.xls
    21 KB · Affichages: 136
Dernière édition:

nanajunior

XLDnaute Nouveau
Re : Feuille de temps et analyse de production

Bonjour Alex,

espère que tout le monde va bien

J'ai fait le ménage que tu m'avais indiqué.
Mon encadrement auto fonctionne bien.

J'ai trouvé la formule qui me permets de voir le solde de mes heures qui en fait est un cumul.
Exemple pour le solde des heures S en colonne O, ligne 5 :
=SOUS.TOTAL(9;$N$5:N5)
Je la recopie dans les cellules du dessous et tout marche bien, mon total s'ajuste bien en fonction des cellules visibles.

J'ai donc voulu la coder dans l'usf1, j'ai crée une macro pour voir ce qu'il allait me dire et il en ressort :
ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R5C14:RC[-1])"

J'ai donc ensuite mis ce code au niveau des lignes en rouge ci-dessous dans la partie :
With Sheets("ANALYSE DE PRODUCTION")
Nl = .Range("A65536").End(xlUp).Row + 1 'ligne ou j'écris
.Range("l" & Nl).Value = TextBox2.Value 'Prix HT
.Range("j" & Nl).Value = TextBox1.Value 'Heures
.Range("c" & Nl).Value = ComboBox1.Value 'COLLABORATEUR
.Range("d" & Nl).Value = ComboBox2.Value 'CLIENTS
.Range("e" & Nl).Value = ComboBox3.Value 'FACTURE/AVOIR
.Range("g" & Nl).Value = ComboBox4.Value 'Mission
.Range("m" & Nl).FormulaR1C1 = "=RC[-1]-RC[-2]"
.Range("F" & Nl).Value = TextBox4.Value 'N° Facture avoir
.Range("h" & Nl).Value = ComboBox5.Value 'Tâches
.Range("i" & Nl).Value = TextBox3.Value 'Complémnent d'intitulé
.Range("A" & Nl).Value = DTPicker1.Value 'Date
.Range("B" & Nl).Value = "S" & DatePart("ww", CDate(DTPicker1.Value), 2, 2)
.Range("n" & Nl).Value = TextBox5.Value 'S
.Range("p" & Nl).Value = TextBox6.Value 'N4
.Range("r" & Nl).Value = TextBox7.Value 'N3
.Range("t" & Nl).Value = TextBox8.Value 'N2
.Range("v" & Nl).Value = TextBox9.Value 'EC
.Range("o" & Nl).ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R5C14:RC[-1])"
.Range("q" & Nl).ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R5C16:RC[-1])"
.Range("s" & Nl).ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R5C18:RC[-1])"
.Range("u" & Nl).ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R5C20:RC[-1])"
.Range("w" & Nl).ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R5C22:RC[-1])"

End With

Et là rien ne va plus, il me met un message d'erreur qui me renvoie sur ces 4 lignes.

J'ai fait un essaie en enlevant le mot ActiveCell et là la formule marche mais evidement sur toutes les cellules et pas seulement les visibles.

J'ai cherché sur le net mais pas trouvé pourquoi.

Aurais tu une idée ?

Merci

Bon dimanche
 

alex67800

XLDnaute Impliqué
Re : Feuille de temps et analyse de production

Bonjour Véro,

Pour moi l'enregistreur de macro me donne ceci en O6*:
ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R5C14:R[-1]C[-1])"
Enlever effectivement ActiveCell

A tester! J'ai fait un petit essai cela a l'air de fonctionner, a toi de me dire.
Code:
    With Sheets("ANALYSE DE PRODUCTION")
        Nl = .Range("A65536").End(xlUp).Row + 1    'ligne ou j'écris
    .Range("l" & Nl).Value = TextBox2.Value 'Prix HT
    .Range("j" & Nl).Value = TextBox1.Value 'Heures
    .Range("c" & Nl).Value = ComboBox1.Value 'COLLABORATEUR
    .Range("d" & Nl).Value = ComboBox2.Value 'CLIENTS
    .Range("e" & Nl).Value = ComboBox3.Value 'FACTURE/AVOIR
    .Range("g" & Nl).Value = ComboBox4.Value 'Mission
    .Range("m" & Nl).FormulaR1C1 = "=RC[-1]-RC[-2]"
    .Range("F" & Nl).Value = TextBox4.Value 'N° Facture avoir
    .Range("h" & Nl).Value = ComboBox5.Value 'Tâches
    .Range("i" & Nl).Value = TextBox3.Value 'Complémnent d'intitulé
    .Range("A" & Nl).Value = DTPicker1.Value 'Date
    .Range("B" & Nl).Value = "S" & DatePart("ww", CDate(DTPicker1.Value), 2, 2)
    .Range("n" & Nl).Value = TextBox5.Value 'S
    .Range("p" & Nl).Value = TextBox6.Value 'N4
    .Range("r" & Nl).Value = TextBox7.Value 'N3
    .Range("t" & Nl).Value = TextBox8.Value 'N2
    .Range("v" & Nl).Value = TextBox9.Value 'EC
 [COLOR="Red"]   .Range("o" & Nl).FormulaR1C1 = "=SUBTOTAL(9,R5C14:R[-1]C[-1])"
    .Range("q" & Nl).FormulaR1C1 = "=SUBTOTAL(9,R5C14:R[-1]C[-1])"
    .Range("s" & Nl).FormulaR1C1 = "=SUBTOTAL(9,R5C14:R[-1]C[-1])"
    .Range("u" & Nl).FormulaR1C1 = "=SUBTOTAL(9,R5C14:R[-1]C[-1])"
    .Range("w" & Nl).FormulaR1C1 = "=SUBTOTAL(9,R5C14:R[-1]C[-1])"[/COLOR]
End With
 
[COLOR="Green"]'testcc[/COLOR]
j'ai bloquer le module testcc pour voir la formule, si c'est bon relance le module en enlevant le'

A te lire!
*Edit: l'enregisterur me donne ceci en recopiant ta formule =SOUS.TOTAL(9;$N$5:N5) en O6
 
Dernière édition:

nanajunior

XLDnaute Nouveau
Re : Feuille de temps et analyse de production

Bonsoir Alex,

Merci à toi de continuer à me répondre.

Pour ma formule, je me suis mise en O5 qui est la 1ère ligne du tableau en fait.

Effectivement sans ActiveCell, elle fait correctement le calcul.

Mais si je selectionne uniquement un seul client, elle tiens toujours compte des lignes masquées.

Je pense avoir compris que la réponse est ce fameux ActiveCell, mais je comprends pas pourquoi, ça ne marche pas avec.

Je continue de chercher mais si je n'y arrive pas, je crois que je vais finir par laisser la formule de départ : =SOUS.TOTAL(9;$N$5:N5) directement dans les cellules du tableaux.
Sous cette forme, ça fonctionne avec le filtre.

Merci encore

Vero
 

nanajunior

XLDnaute Nouveau
Re : Feuille de temps et analyse de production

Bonsoir,

Grâce à ton exemple dans le fichier, je me suis aperçue que je me suis très mal expliquée.:confused:
Je souhaite un cumul à la "vertical" et non à "l'horizontal"
Dans la colonne O : uniquement le suivi des heures S qui sont dans la colonne N
Dans la colonne Q : uniquement le suivi des heures N4 qui sont dans la colonne P
Dans la colonne S : uniquement le suivi des heures N3 qui sont dans la colonne R
et ainsi de suite.

J'ai rajouté quelques lignes à ton fichier (lien en bas) et ainsi si je filtre sur le client ALLO LA TERRE, je vois qu'entre les heures prévues sur la mission (c'est à dire la facture) et les heures déjà effectuées par les collaborateurs :

- pour les heures S : on est encore bien avec la prévision, il reste 1 heure (positive).
- pour les heures N4 : on est encore bien avec la prévision, il reste 2 heures (positive).
etc...
- je passe directement aux EC : on est en dépassement de temps de 4 heures (négatives)

Est ce que cela résume mieux mon souhait ?

http://cjoint.com/?moxyq2JR5s

Merci

Vero
 

alex67800

XLDnaute Impliqué
Re : Feuille de temps et analyse de production

Re,
A la verticale, donc par colonne (horizontale = ligne).
Ta somme ce fait bien par colonne (verticale), en comparaison de la plage de valur valeur $N$5:N pour la colonne O (par exemple).
Si jr reprend ton exemple EC:
Lg colV colW
4 | EC |Solde EC
5 | -2 |-2
6 | -3 |-5
7 | 1 |-4<<<<<<<<(-2)+(-3)= -5 + 1 = -4

Ou est l'erreur?
 

nanajunior

XLDnaute Nouveau
Re : Feuille de temps et analyse de production

Re,

Il n'y a pas d'erreur. C'est exactement le résultat que je souhaiterais avoir.
Mais pour avoir cela, j'ai rentré la formule directement dans la cellule W5 (je reste avec les heures EC) puis étirer vers le bas.
Mon souci est d'arriver à la mettre dans l'usf.
.Range("w" & Nl).ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R5C22:RC[-1])" : ça me dit erreur
.Range("w" & Nl).FormulaR1C1 = "=SUBTOTAL(9,R5C22:RC[-1])" : le calcul fonctionne mais pas avec le filtre. Tiens toujours compte des lignes masquées. Si je selectionne le client ALLO LA TERRE, j'aurais toujours -1 qui est le total de toutes lignes.

vero
 

alex67800

XLDnaute Impliqué
Re : Feuille de temps et analyse de production

Re, Re,
J'avoue que je sèche là. Sinon une piste ici qui traîte des sous-totaux via macro.
https://www.excel-downloads.com/threads/probleme-sous-total-dans-une-macro.76420/

Sinon ouvre un nouveau fil avec cette demande sous-totaux via macro!

La je ne te serais d'aucune aide désolé.

Quoi que j'ai fait un essai avec ceci dans un module:
Code:
Sub test3()
    Range("A4:W" & Range("A65536").End(xlUp).Row).Select
    Selection.Subtotal GroupBy:=4, Function:=xlSum, TotalList:=Array(10, 11, 14, 16, 18, 20, 21, 22, 23), Replace:=True, _
        PageBreaks:=False, SummaryBelowData:=True

End Sub

Puis tu créé un bouton sur la feuille analyse de production qui appel test3.

par contre tes colonnes Solde ne servent plus si j'ai bien compris cette macro.

Fait une sauvegarde de ton fichier, avant de faire le test, c'est préférable.

A+
 

Discussions similaires