Feuille de temps et analyse de production

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
 

nanajunior

XLDnaute Nouveau
Re : Feuille de temps et analyse de production

re, re,

Oups, je n'avais pas lu ton dernier message en entier, mon fichier ne tiens pas compte de la modif indiqué que je vais faire.

Désolé
 

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
 

alex67800

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

Re Véro,
quand j'applique le filtre avec a formule que je t'ai donné cela fonctionne.
regarde toi même:
http://cjoint.com/?movP6sa5mj

Je n'ai fait le teste qu'avec 2 lignes, mais les valeurs changent si je masque la première.
 

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.
http://www.excel-downloads.com/forum/76420-probl-me-sous-total-dans-une-macro.html

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+
 

nanajunior

XLDnaute Nouveau
Re : Feuille de temps et analyse de production

Bonsoir Alex,

Me revoilà.
J'avais fait un petit break car cette formule commencait à m'agacer sensiblement:cool:

J'ai repris ce soir et j'ai compris pourquoi ça ne marchait pas.
En faisant des essais en bloquant test cc, je me suis aperçue que ça fonctionnait avec :
Code:
.Range("o" & Nl).ActiveCell.FormulaR1C1 = "=SUBTOTAL(9,R5C14:RC[-1])"
.Range("q" & Nl).FormulaR1C1 = "=SUBTOTAL(9,R5C16:RC[-1])"
.Range("s" & Nl).FormulaR1C1 = "=SUBTOTAL(9,R5C18:RC[-1])"
.Range("u" & Nl).FormulaR1C1 = "=SUBTOTAL(9,R5C20:RC[-1])"
.Range("w" & Nl).FormulaR1C1 = "=SUBTOTAL(9,R5C22:RC[-1])"

cumuls avec filtres: ok

Si test cc non bloqué, cumuls avec filtres: pas ok

Je suppose donc que cette formule ne supporte pas le copier/coller et qu'elle a besoin "d'elle même" (je ne sais pas trop comment l'exprimer) et non d'une valeur pour fonctionner.

Je suis donc aller remplacer dans module3, sub test cc :
Code:
Application.ScreenUpdating = False
With Sheets("ANALYSE DE PRODUCTION")
    Columns[COLOR="Red"]("K:W").[/COLOR]Select
Par
Code:
Application.ScreenUpdating = False
With Sheets("ANALYSE DE PRODUCTION")
    Columns[COLOR="red"]("K:M").[/COLOR]Select
et j'ai réactivé test cc

Au début,lors d'enregistrements, j'ai eu un message d'erreur parlant de problème de taille non identiques et me renvoyant à
Code:
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
puis plus rien, donc j'imagine et j'espere fortement que tout va bien.

Le seul hic dans tout ça, c'est lorsque je filtre, il me laisse systematiquement la dernière ligne saisie.
Si, sur cette dernière ligne, j'écrase la formule (qui forcement apparait maintenant) dans la cellule en y tapant directement le chiffre, là, le filtre ne tiend plus compte de cette dernière ligne.

Mais bon, je crois que je vais m'y faire et lorsque j'aurais besoin de faire des impressions pour un client X, j'irais saisir le chiffre sur la dernière ligne enregistrée du tableau et hop, on en parlerera plus.;)

La formule du prix de revient fonctionne impec.
Je me suis même rajouté (toute seule comme une grande:p) un code pour la bloquer lorsque je saisie une facture.

Voilà, grâce à toi, je suis quasi au bout de mon projet.

J'aurais toutefois une dernière requête à te demander.
J'aurais voulu quand on est au niveau 2 et qu'on clic sur l'image en haut à gauche des tableaux (subimage1) que l'on puisse revenir à la page de saisie du niveau 2 et non du niveau 1.

J'ai crée dans le module2 un "subimage2" en copiant collant le "subimage1". Mais je ne trouve pas ce que je peux modifier pour que ça fonctionne. les 2 pages de saisies venant du même usf.

Code:
Sub Image1_QuandClic()
Application.ScreenUpdating = False
Worksheets("TEMPS").Visible = xlSheetVisible
Worksheets("FACTURATION").Visible = xlSheetVisible
Worksheets("ANALYSE DE PRODUCTION").Visible = xlSheetVisible
Worksheets("BDD").Visible = xlSheetVisible
Application.ScreenUpdating = True

UserForm1.Show
End Sub

Sub Image2_QuandClic()
Application.ScreenUpdating = False
Worksheets("TEMPS").Visible = xlSheetVisible
Worksheets("FACTURATION").Visible = xlSheetVisible
Worksheets("ANALYSE DE PRODUCTION").Visible = xlSheetVisible
Worksheets("BDD").Visible = xlSheetVisible
Application.ScreenUpdating = True

UserForm1.Show
End Sub
Peut être que ce n'est pas possible sans créer 2 usf différents et dans ce cas, on oublie mon idée.

Je te remercie encore beaucoup pour ton aide.
Bonne soirée, heu plutôt bonne nuit.
http://cjoint.com/?mqbwUyBGPP

J'ai vidé mon tableau client, ainsi ceux qui voudront récupérer le fichier pour s'aider n'auront pas à le faire.
Mot de passe : vero
 

alex67800

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

Bonsoir Véro,

C'est très bien tu as trouvée toute seule, cela m'enlève un mal de crâne!!:D

Pour ta question c'est très simple en fait, tu double clic sur le bouton Visualiser Niveau2 puis tu bloques "masquer", et remplace Unload Me, par Userform1.hide

Hide masque le formulaire sans le décharger, contrairement à unload Me.

Et le tour est joué, pas besoin d'image supplémentaire.;)

Attention quand tu auras fini tes saisies niveau2, pense à repasser en niveau 1 sinon ils auront accès comme toi à ton niveau2 avec l'image!!:rolleyes:, ou passe par le bouton quitter l'application qui lui décharge le formulaire avant de fermer le fichier.:p

Tu n'as pas encore procédée aux modifs que je t'ai refilé, pas bien:eek:
Je te le remet en copie, avec quelques modifs supplémentaires.

Bonne nuit!

A te lire.
 

Fichiers joints

Dernière édition:

nanajunior

XLDnaute Nouveau
Re : Feuille de temps et analyse de production

Bonsoir Alex,

Pour ta question c'est très simple en fait, tu double clic sur le bouton Visualiser Niveau2 puis tu bloques "masquer", et remplace Unload Me, par Userform1.hide

Hide masque le formulaire sans le décharger, contrairement à unload Me.
C'est nickel, ça marche impec.

En fait, pour tes modifs, j'avais fait celle du milieu "concatener".
Pour celle de droite "controle des valeurs numériques", je l'avais faite puis enlevée car je ne pouvais plus saisir avec le "poin" du pavé numérique, obligation de passer par la touche "virgule" (les comptables ont la facheuse tendance d'être mariés avec le pavé numérique:D) et ma fameuse formule de cumul ne fonctionnait plus. On aurait dit qu'elle reconnaissait pas le chiffre retranscrit en tant que chiffre.

Je n'ai pas voulu t'embêter avec ça, tu as déjà fait beaucoup pour moi sur ce projet.

Pour celle de gauche, "bonjour", en faisant la modif, ça m'a donné l'idée d'y inscrire "Nathalie" quelque soit le collaborateur car c'est cette personne qui va saisir les feuilles de temps de tous les collaborateurs.
Je ne m'en suis occupée qu'aujourd"hui.

Merci

Véro
 

alex67800

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

Bonsoir Véro,
Ok pour le format nomber, j'avais vaguement lu quelque chose dans ce genre, mais pensé que cela passerait avec nos version excel.

Pour le textbox , il s'agit d'un gadget que tu peu adapter à ta guise, je le met just en Enabled, afon que l'in ne puisse pas modifier le texte affiché.

Heureux d'avoir pu te rendre service, et t'apporter mes maigres connaissances, afin de parfaire les tiennes. En tous cas cela a été un plaisir, d'autant que tu t'es également impliqué à trouver tes propres solutions aux problèmes rencontrés.

Bonne continuation.
 

nanajunior

XLDnaute Nouveau
Re : Feuille de temps et analyse de production

Re,

Je vais aller le mettre en Enabled de ce pas.
Je suis contente du visage final de ce projet.
J'essaie toujours de comprendre ce que je fait, c'est pourquoi j'essaie de ne pas me contenter de "recopier" les choses.
Je déposerai demain la version finale pour ceux qui pourrait en avoir besoin.
Vu l'aide dont j'ai bénéficié sur ce forum, c'est le moins que je puisse faire.

Bonne continuation à toi aussi.
;)
Véro
 

alex67800

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

Boinsoir tout le monde,

je post ici le fichier, afin de permettre au forumeurs de s'en inspirer.
Il est vrai que les liens ne dure qu'un temps.

Quelle meilleure récompense que d'en faire profiter les autres.
 

Fichiers joints


Haut Bas