Un probleme de excel
Nicolas
-
nicolas -
nicolas -
bonjour a tous
je me trouve avec on probleme j'ais demander a un ami qui connais VB de m'aider a faire une feuille pour compter les carte de temps des employers de mon travaille, tou marcher bien saufe pour un probleme, j'ais 2 worksheet (oui mon microsoft office est en anglais) ma premiere sapelle emplyer, je rentre les heure des emplyer dans cette worksheet, l'autre sommaire, les donners s'enregistre dans cette worksheet qu'an je fait ctl+alt+C.
sur ma feuille emplyer tou ce calcule bien, mais dans les cells de la feuille sommaire les heures ne s'additione pas, apret arriver a 24h il retombe a 1h qu'an il faut qu'il continue a additioner.
EX:. si dans une semaine l'employer fait 30h bien l cell affiche 6h et non 30h
Le format de mes cells sont [h]:mm:ss
les code en VB, mon ami les a fait pour que je soi cappable de voir la logique et de faire mes modifications, Voici les codes.
je me trouve avec on probleme j'ais demander a un ami qui connais VB de m'aider a faire une feuille pour compter les carte de temps des employers de mon travaille, tou marcher bien saufe pour un probleme, j'ais 2 worksheet (oui mon microsoft office est en anglais) ma premiere sapelle emplyer, je rentre les heure des emplyer dans cette worksheet, l'autre sommaire, les donners s'enregistre dans cette worksheet qu'an je fait ctl+alt+C.
sur ma feuille emplyer tou ce calcule bien, mais dans les cells de la feuille sommaire les heures ne s'additione pas, apret arriver a 24h il retombe a 1h qu'an il faut qu'il continue a additioner.
EX:. si dans une semaine l'employer fait 30h bien l cell affiche 6h et non 30h
Le format de mes cells sont [h]:mm:ss
les code en VB, mon ami les a fait pour que je soi cappable de voir la logique et de faire mes modifications, Voici les codes.
Sub FillData()
'
' FillData Macro
' Copier les donnees dans la feuille Sommaire
'
' Keyboard Shortcut: Ctrl+Shift+C
'
' Variable Sommaire
Dim iColSommaireNom As Integer
Dim iColSommaireSem1 As Integer
Dim iColSommaireSem2 As Integer
Dim iColSommaireBonis As Integer
Dim iColSommaireFerie As Integer
Dim iColSommaireFormation As Integer
Dim iColSommaireVacance As Integer
Dim iColSommaireDateTerm As Integer
iColSommaireNom = 2
iColSommaireSem1 = 3
iColSommaireSem2 = 4
iColSommaireBonis = 5
iColSommaireFerie = 6
iColSommaireFormation = 7
iColSommaireVacance = 8
iColSommaireDateTerm = 9
' Variable Employe
Dim iColEmployeNom As Integer
Dim iColEmployeDim As Integer
Dim iColEmployeLun As Integer
Dim iColEmployeMar As Integer
Dim iColEmployeMer As Integer
Dim iColEmployeJeu As Integer
Dim iColEmployeVen As Integer
Dim iColEmployeSam As Integer
Dim iColEmployeBonis As Integer
Dim iColEmployeFerie As Integer
Dim iColEmployeFormation As Integer
Dim iColEmployeVacance As Integer
Dim iColEmployeDateTerm As Integer
Dim iRowEmployeNom As Integer
Dim iRowSemaine1 As Integer
Dim iRowSemaine2 As Integer
iColEmployeNom = 3
iColEmployeDim = 3
iColEmployeLun = 4
iColEmployeMar = 5
iColEmployeMer = 6
iColEmployeJeu = 7
iColEmployeVen = 8
iColEmployeSam = 9
iColEmployeBonis = 11
iColEmployeFerie = 13
iColEmployeFormation = 15
iColEmployeVacance = 17
iColEmployeDateTerm = 19
iRowEmployeNom = 2
iRowEmployeBonis = 6
iRowEmployeFerie = 6
iRowEmployeFormation = 6
iRowEmployeVacance = 6
iRowEmployeDateTerm = 6
iRowSemaine1 = 14
iRowSemaine2 = 25
Dim iRow As Integer
Dim iLigneEmploye As Integer
Dim sNomEmploye As String
Dim dTotSemaine1 As Date
Dim dTotSemaine2 As Date
Dim dTotBonis As Double
Dim dTotFormation As Double
Dim sFerie As String
Dim sVacance As String
Dim sDateTerm As String
iLigneEmploye = 0
dTotSemaine1 = 0
dTotSemaine2 = 0
dTotBonis = 0
dTotFormation = 0
sFerie = ""
sVacance = ""
sDateTerm = ""
sNomEmploye = Worksheets("Employe").Cells(iRowEmployeNom, iColEmployeNom)
' Detecter la ligne de l'employer
iRow = 3 ' 1re Ligne des nom dans sommaire
Do While iRow < 200
If Worksheets("Sommaire").Cells(iRow, iColSommaireNom) = sNomEmploye Then
iLigneEmploye = iRow
Exit Do
End If
iRow = iRow + 1
Loop
If iLigneEmploye = 0 Then
MsgBox ("Employe Invalide")
End
End If
' Calculer les montants
dTotSemaine1 = Worksheets("Employe").Cells(iRowSemaine1, iColEmployeDim)
dTotSemaine1 = dTotSemaine1 + Worksheets("Employe").Cells(iRowSemaine1, iColEmployeLun)
dTotSemaine1 = dTotSemaine1 + Worksheets("Employe").Cells(iRowSemaine1, iColEmployeMar)
dTotSemaine1 = dTotSemaine1 + Worksheets("Employe").Cells(iRowSemaine1, iColEmployeMer)
dTotSemaine1 = dTotSemaine1 + Worksheets("Employe").Cells(iRowSemaine1, iColEmployeJeu)
dTotSemaine1 = dTotSemaine1 + Worksheets("Employe").Cells(iRowSemaine1, iColEmployeVen)
dTotSemaine1 = dTotSemaine1 + Worksheets("Employe").Cells(iRowSemaine1, iColEmployeSam)
Worksheets("Sommaire").Cells(iLigneEmploye, iColSommaireSem1) = FormatDateTime(dTotSemaine1, vbLongTime)
dTotSemaine2 = Worksheets("Employe").Cells(iRowSemaine2, iColEmployeDim)
dTotSemaine2 = dTotSemaine2 + Worksheets("Employe").Cells(iRowSemaine2, iColEmployeLun)
dTotSemaine2 = dTotSemaine2 + Worksheets("Employe").Cells(iRowSemaine2, iColEmployeMar)
dTotSemaine2 = dTotSemaine2 + Worksheets("Employe").Cells(iRowSemaine2, iColEmployeMer)
dTotSemaine2 = dTotSemaine2 + Worksheets("Employe").Cells(iRowSemaine2, iColEmployeJeu)
dTotSemaine2 = dTotSemaine2 + Worksheets("Employe").Cells(iRowSemaine2, iColEmployeVen)
dTotSemaine2 = dTotSemaine2 + Worksheets("Employe").Cells(iRowSemaine2, iColEmployeSam)
Worksheets("Sommaire").Cells(iLigneEmploye, iColSommaireSem2) = FormatDateTime(dTotSemaine2, vbLongTime)
dTotBonis = Worksheets("Employe").Cells(iRowEmployeBonis, iColEmployeBonis)
Worksheets("Sommaire").Cells(iLigneEmploye, iColSommaireBonis) = FormatDateTime(dTotBonis, vbLongTime)
dTotFormation = Worksheets("Employe").Cells(iRowEmployeFormation, iColEmployeFormation)
Worksheets("Sommaire").Cells(iLigneEmploye, iColSommaireFormation) = FormatDateTime(dTotFormation, vbLongTime)
sFerie = Worksheets("Employe").Cells(iRowEmployeFerie, iColEmployeFerie)
Worksheets("Sommaire").Cells(iLigneEmploye, iColSommaireFerie) = sFerie
sVacance = Worksheets("Employe").Cells(iRowEmployeVacance, iColEmployeVacance)
Worksheets("Sommaire").Cells(iLigneEmploye, iColSommaireVacance) = sVacance
sDateTerm = Worksheets("Employe").Cells(iRowEmployeDateTerm, iColEmployeDateTerm)
Worksheets("Sommaire").Cells(iLigneEmploye, iColSommaireDateTerm) = sDateTerm
End Sub
A voir également:
- Un probleme de excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Trier un tableau excel - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
6 réponses
Désolé, j'ai abandonné la lecture de ton message après avoir essayé de déchiffrer les 3 premières lignes ... et je ne suis certainement pas le seul !
Bonjour
Comme le laisse entendre Raymond (Bonjour Raymond, ici il pleut, c'est comment dans les iles ?), c'est pas facile à lire (et à encore moins comprendre) !.
Perdre quelques secondes pour relire sa question de la rendre la plus claire possible fait gagner du temps à tous les contributeurs.
Ce qui pour toi semble une anomalie est en réalité tout à fait normal :
= FormatDateTime(Date[,NamedFormat]) ne renvoie que la partie fractionnaire du temps (les heures, minutes, secondes sont des fractions de jour)
Pour obtenir le temps complet il suffit d'écrire = Temps
Dans ton cas, par exemple au lieu de
Comme le laisse entendre Raymond (Bonjour Raymond, ici il pleut, c'est comment dans les iles ?), c'est pas facile à lire (et à encore moins comprendre) !.
Perdre quelques secondes pour relire sa question de la rendre la plus claire possible fait gagner du temps à tous les contributeurs.
Ce qui pour toi semble une anomalie est en réalité tout à fait normal :
= FormatDateTime(Date[,NamedFormat]) ne renvoie que la partie fractionnaire du temps (les heures, minutes, secondes sont des fractions de jour)
Pour obtenir le temps complet il suffit d'écrire = Temps
Dans ton cas, par exemple au lieu de
= FormatDateTime(dTotSemaine1, vbLongTime)écrire :
= dTotSemaine1
oui j'ais essaye mais sa n'as pas fontioner, mon ami a tout changer les codes de tout facon, mais je me trouve avec un autre probleme.
pour un total de 7:30 moi je veux que sa marque 7.5 et si le total est de 7:15 il faut que sa marque 7.25 tout en respectent un braquette de temps.
je mexplique
de 53 minute a 06 minute sa marque .00
de 07 minute a 21 minute sa marque .25
de 22 minute a 37 minute sa marque .50
de 38 minute a 52 minute sa marque .45
j'espaire avoir ete claire.
pour un total de 7:30 moi je veux que sa marque 7.5 et si le total est de 7:15 il faut que sa marque 7.25 tout en respectent un braquette de temps.
je mexplique
de 53 minute a 06 minute sa marque .00
de 07 minute a 21 minute sa marque .25
de 22 minute a 37 minute sa marque .50
de 38 minute a 52 minute sa marque .45
j'espaire avoir ete claire.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Justement, c'est parce que je voudrais aider que je regrette de ne pas pouvoir lire ta prose !
Je n'ai d'ailleurs posé aucune question ... Je te préviens simplement que tu n'auras que peu de réponses, car tu décourages ceux qui essaient de te lire.