Feuille de temps et analyse de production

alex67800

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

Bonjour vero,
J'ai anticipé cela en déplacant la mise à jour BDD dans un nouvel userform;), du coup il y a de la place à revendre.:D

Celui-ci est appelé par le bouton MAJ BDD.

Ce n'est pas parceque je n'avais pas ton fichier que je n'ai pas avancé un peu. lol Surtout que ton fichier client a été enrichit de quelques colonnes:rolleyes:

Ne te prive pas d'essayer d'avancer de ton côté.

Je regarde ton fichier et te tiens au courant si j'ai besoin d'un complément d'information.

A bientôt.
 

lilou09200

XLDnaute Occasionnel
Re : Feuille de temps et analyse de production

Bonjour Alex,

Tout d'abord Alex encore un grand merci pour tu ce que tu as fait.
Je te remercie encore pour ta patience que j'ai mise à rude épreuve et te prie encore de mettre cela sur le compte que je démarre.


Bonjour Véro,

Je vois que l'on a sensiblement les mêmes demandes.
Tu sembles plus avancée que moi car ayant sans doute déjà une base.

Je suivrai bien entendu la suite de ce sujet avec grand intérêt.

Bonne journée.
 

alex67800

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

Bonjour Véro,
Tiens Bonjour lilou , àa fait longtemps:D

Voilà j'ai fait les modifs que tu as demandé, et agrémenté de quelques gadgets le formulaire, je te laisse découvrir.

Dans ton fichier info tu me dis ceci:
La colonne J serait calculée d'après ta formule qui est déjà dans le tableau et dont j'irai modifier les cellules de référence : heures X taux fact dans BDD
Attention la formule se fait via une macro!!!!! je l'ai bloqué car elle ne correspond plus, cela t'affichait #Valeur et faussait toutes le autres, donc ta colonne prix de revient ne se renseigne plus, si tu veux la modifier par la suite elle se trouve ici:
Code:
Private Sub CommandButton1_Click() 'Valider Saisies

With Sheets("ANALYSE DE PRODUCTION")
        Nl = .Range("A65536").End(xlUp).Row + 1    'ligne ou j'écris
        .Range("k" & Nl).FormulaR1C1 = _
        "=IF(RC[-3]=BDD!R2C5,RC[-1]*BDD!R3C11,IF(RC[-3]=BDD!R3C5,RC[-1]*BDD!R4C11,IF(RC[-3]=BDD!R4C5,RC[-1]*BDD!R5C11,IF(RC[-3]=BDD!R5C5,RC[-1]*BDD!R6C11,""""))))" 'Prix de revient
    End With
Une idée tu as cas mettre une base 100 pour les HMO (peu importe comment tu l'appeles plus tard) et mettre cette référence x HMO en colonne prix de revient.

L'avantage de passer par la macro et que tu n'alourdit pas inutilement ton fichier avec des formules dans des lignes vides (étirer formule vers le bas;) ). Elles se mettent en même temps que t'as sasie.

De plus je fais un copier/coller par dessus, qui a pour but de supprimer la formule et ne garder que la valeur;), ce qui allège le fichier et limite les erreurs de calcul si cellule vide. De plus ceci évite que les sommes se mettent à jour, si tu réévalue tes prestations l'année suivante.:eek:

J'ai donc de suite codé les valeur S, N4, N3, N2, EC via la macro, qui prend ces données en ("K2:K7") dans la BDD.

Jette un coup d'oeil et dis moi si cela te convient.

A plus tous les deux.

http://cjoint.com/?mkskoJ0vAz
 
Dernière édition:

nanajunior

XLDnaute Nouveau
Re : Feuille de temps et analyse de production

Bonsoir Alex,

Très beau boulot. Le calendrier disponible, l'image sur BDD, le formulaire supplémentaire.... c'est très sympa.

Lilou, effectivement on a quasi les mêmes besoins. Et c'est Alex qui en fait les frais :p


Deux questions :
1) quand je valide une saisie en niveau 1 ou 2, j'ai un message d'erreur :
"erreur d'exécution '424' " objet requis.
Je fais debogage, il me renvoie sur la ligne, ci-dessous, de l'userform1 :
.Range("B" & Nl).Value = "S" & DatePart("ww", CDate(DTPicker.Value), 2, 2)

J'ai compris que c'est lié au calcul de la semaine mais je n'ai pas compris ce qu'il fallait modifier.
Je reviens sous excel et arrête le debocage.

2) Les heures saisies dans la zone imputation de l'usf1 ne se reportent pas dans mon tableau analyse de production. Seul HMO se reporte.
Pourtant, j'ai lu et relu les codes de l'usf1 dans la partie ci-dessous, et si je commence à comprendre correctement la partie vba, ce sont bien les lignes en rouge qui donnent les instructions de report pour ces heures ?

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(DTPicker.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).FormulaR1C1 = "=RC[-1]*BDD!R3C11"
.Range("q" & Nl).FormulaR1C1 = "=RC[-1]*BDD!R4C11"
.Range("s" & Nl).FormulaR1C1 = "=RC[-1]*BDD!R5C11"
.Range("u" & Nl).FormulaR1C1 = "=RC[-1]*BDD!R6C11"
.Range("w" & Nl).FormulaR1C1 = "=RC[-1]*BDD!R7C11"
End With
Pour cette histoire de formule, je n'avais pas compris qu'elle arrivait d'une macro.
Je vais regarder ce que tu m'as suggéré.

Merci beaucoup

Vero
 

alex67800

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

Bonjour Véro,
pour le petit bug c'est un copier coller trop rapide de ma part.
Tu n'étais pas loin d'avoir trouvée.
Tu rajoutes un 1 à Dtpicker:
Code:
.Range("B" & Nl).Value = "S" & DatePart("ww", CDate(DTPicker[B][COLOR="Red"]1[/COLOR][/B].Value), 2, 2)
2) Les heures saisies dans la zone imputation de l'usf1 ne se reportent pas dans mon tableau analyse de production. Seul HMO se reporte.
Tout simplement car le bug se crée juste sur la ligne au dessus, donc le reste du code ne se fait pas.

Essaie de corriger tu verras.
 

nanajunior

XLDnaute Nouveau
Re : Feuille de temps et analyse de production

Re,

Super ça marche.
C'est tout à fait ce que je voulais.

Sais tu pourquoi le symbole monétaire € ne s'affiche plus dans la feuille annalyse de production mais à la place j'ai une barre.
Dans Facturation ça marche, et pourtant le format nombre dans les cellules est paramétré pareil ?

Je me mets sur les formules et me permettrait de te rencontacter si je bloques trop.
Evidement si ça ne te dérange pas.

Mille merci

Véro
 

nanajunior

XLDnaute Nouveau
Re : Feuille de temps et analyse de production

Oublie cette partie de mon message
honte à moi, :( c'est juste du au format d'affichage de la page.
Sais tu pourquoi le symbole monétaire € ne s'affiche plus dans la feuille annalyse de production mais à la place j'ai une barre.
Dans Facturation ça marche, et pourtant le format nombre dans les cellules est paramétré pareil ?

Bonne soirée

Véro
 

alex67800

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

Bonjour Véro,
J'ai eu le même reflexe que toi, jusqu'à je percute sur la taille de la feuille:(:D

Pas de problème, de toute façon je n'ai pas encore finis avec ce fichier, c'est un bon moyen pour moi de m'améliorer!!!
Comme je le disais à lilou ce forum est une vrai mine d'or, la capitalisation des compétences à du bon;)

Bonne journée.
 
Dernière édition:

alex67800

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

Bonjour Véro, tout le monde,
Si tu pouvais nous dire quelle formule tu as mise se serait interressant. Le partage est la base du forum.;)

petite mise à jour.

http://cjoint.com/?mlt0PnLwM0
 
Dernière édition:

nanajunior

XLDnaute Nouveau
Re : Feuille de temps et analyse de production

Bonsoir,

Pas de souci, j'avais bien prévu de le faire. Promis.
C'est juste qu'hier soir, j'ai arreté, trop crevée et je viens de me remettre de dessus.
Je me suis imprimée tous les codes comme ça je potasse mon sujet pour essayer de ne pas faire trop de "boulettes".
Je regardes ta mise à jour et te tiens au courant.
Merci
Vero
 

alex67800

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

Bonjour Véro,
Voilà quelqu'un d'assidut, c'est très bien!!!;)

J'en faisant autant. on verra si tu as trouvée les modifs, elles sont subtile!:D

Bonne journée.
 

nanajunior

XLDnaute Nouveau
Re : Feuille de temps et analyse de production

Bonjour Alex,

Hé ben, c'est pas facile le VBA, j'ai chopé un bon mal de crane mais je persévère.:D

Déjà double merci car précédement j'avais bien vu tes gadgets comme tu dis mais je n'avais pas encore vu qu'il y en avais aussi dans la présentation de l'usf1, ils étaient à droite et je ne les voyais pas sur mon écran.
Je les ai donc bougés pour pouvoir les savourer pleinement.

Pour ce qui est de tes dernières modifs je pense les avoir trouver dans usf3:
End With
UserForm1.TextBox11.Value = FormatDateTime(Now(), vbShortTime)
UserForm1.ComboBox2.AddItem TextBox14.Text
UserForm1.ComboBox4.AddItem TextBox5.Text
UserForm1.ComboBox1.AddItem TextBox6.Text



L1 = .Range("C65536").End(xlUp).Row + 1 'Dans quelle ligne je vais écrire
J'ai fait une modif au niveau de l'usf3 à :
.Range("I" & Nl).Value = TextBox28.Value 'PORTABLE
.Range("Q" & Nl).Value = ComboBox1.Value 'AGA/GCA
Il y avait 2 fois le I


En ce qui concerne mes formules, j'ai réusi à "coder" le solde de mes heures (heures prévues à la mission - heures effectuées) : pas trop dur à faire

J'ai un problème avec le prix de revient.
J'ai ma formule qui marche si je la mets dans les cellules de la colone k dans le tableau ANALYSE DE PRODUCTION (exemple elle est dans la cellule K7)
Mais quand j'essaie de la "coder" dans l'usf1, rien ne va plus.
'With Sheets("ANALYSE DE PRODUCTION")
' Nl = .Range("A65536").End(xlUp).Row + 1 'ligne ou j'écris
' .Range("k" & Nl).FormulaR1C1 = _
' "=IF(OR(RC[3]<>0,RC[5]<>0,RC[7]<>0,RC[9]<>0,RC[11]<>0),RC[3]*BDD!R3C11+RC[5]*BDD!R4C11+RC[7]*BDD!R5C11+RC[9]*BDD!R6C11+RC[11]*BDD!R7C11,"""")" 'prix de revient
'End With
J'ai fait des tonnes d'essais, macro, pas macro, RC quelquechose ou RquelchoseCquelquechose....
A tel point que je me suis retrouvée avec un fichier qui faisait 2.7MO sans même comprendre pourquoi.
Heureusement je "bidouille" sur des copies et suis donc repartie de la version "allégée" et on recommence les essais.:confused:
Il y a surement une truc que je n'ai pas compris mais je n'arrive pas à trouver quoi, ni où.
Aurais tu la gentillesse de m'aider à trouver ?

Ci dessous le lien de ma dernière version
http://cjoint.com/?mmm2SeWxE7

Bonne journée

Véro
 

alex67800

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

Bonjour Véro,
chez moi cela fonctionne très bien, SI le textbox1 n'est pas vide!!!
Code:
If Not [COLOR="red"]TextBox1.Value = "" [/COLOR]Then
With Sheets("TEMPS")
    Nl = .Range("A65536").End(xlUp).Row + 1    'Dans quelle ligne je vais écrire
    .Range("A" & Nl).Value = DTPicker1.Value 'Date
    .Range("i" & Nl).Value = [COLOR="Red"]TextBox1.Value 'Heures[/COLOR]
    .Range("c" & Nl).Value = ComboBox1.Value 'COLLABORATEUR
    .Range("d" & Nl).Value = ComboBox2.Value 'CLIENTS
    .Range("e" & Nl).Value = ComboBox3.Value 'Type d'opération
    .Range("f" & Nl).Value = ComboBox4.Value 'Mission
    .Range("g" & Nl).Value = ComboBox5.Value 'Tâches
    .Range("h" & Nl).Value = TextBox3.Value 'Commentaires complément d'intitulé
    .Range("B" & Nl).Value = "S" & DatePart("ww", CDate(DTPicker1.Value), 2, 2)
    End With
  [COLOR="red"]  With Sheets("ANALYSE DE PRODUCTION")
        Nl = .Range("A65536").End(xlUp).Row + 1    'ligne ou j'écris
     .Range("k" & Nl).FormulaR1C1 = _
       "=IF(OR(RC[3]<>0,RC[5]<>0,RC[7]<>0,RC[9]<>0,RC[11]<>0),RC[3]*BDD!R3C11+RC[5]*BDD!R4C11+RC[7]*BDD!R5C11+RC[9]*BDD!R6C11+RC[11]*BDD!R7C11,"""")" 'prix de revient
    End With[/COLOR]
 End If
Si tu veux qu'elle s'incrive en toutes circonstances, il faut la mettre en fin de code, avec with sheets("ANALYSE DE PRODUCTION") sans condition

La vba que c'est bien mais quel mal de crâne:eek:

Ou là c'est le boxon dans ton usf......;)

Bien pour les modifs tu les as trouvé, maerci de corriger mes erreurs:D dans l'usf3:cool:
 

alex67800

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

Re,
petite précision, dans l'usf1 tu peu suppimer les private sub textbox16 à 20, ils n'existent plus lol.
De même que le frame1.visble=true (en commentaire) dans commandbutton9, l'existe plus non plus.

L'usf3 les remplacent.

Un petit dépouissiérage s'impose:p

petit rappel si tu veux que les formules reste visible dans ta feuille tu met un ' devant testcc dans commandbutton1_click, dans le cas contraire ben tu l'enlève.
 

nanajunior

XLDnaute Nouveau
Re : Feuille de temps et analyse de production

Bonjour Alex,

C'est à ce point là le bins. Je pensais pas avoir sauvegarder autant de bêtises!!!:eek:

Je vais essayer de mettre la formule où tu m'as dit car chez moi, elle ne marche pas et je saisi bien des heures dans HMO qui est le textbox1.

Au mois ça me fait plaisir que ça marche chez toi, ça veut au moins dire que le format de formule est correct. J'ai pas tout complétement faux.

Je vais aussi faire le menage que tu m'indiques.

j'avais une question que je n'ai pas osé posé ce midi. Les Commandbutton 10 et 8, ils sont planqués où ?

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
Pas sure d'avoir été très claire:eek:
Exemple : ma formule pour le solde des heures est = à la cellule juste au dessus - la cellule de gauche.
Elle marche impeccable mais si par exemple, je ne veux voir que les lignes qui concerne 1 seul client, ça ne va plus car normal elle tiend toujours compte des lignes qu'on ne voit plus.
Existe t'il une moyen qu'elle s'adapte ?

Encore merci pour ton aide précieuse

Véro
 

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:
http://www.excel-downloads.com/forum/84751-faire-une-somme-des-cellules-visibles-uniquement.html
et ici:
http://www.excel-downloads.com/forum/96628-addition-cellules-visibles.html

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
 

Haut Bas