HA | HR | Tarif/H | |||
NOM1 | mois N | 11 | 11 | 1,27 | Formule OK si HR=HA |
NOM1 | mois N+1 | 11 | 14 | 1.27 | Formule PAS OK si HR>HA mais TOTAL HA=HR |
NOM1 | mois N+2 | 11 | 11 | 1.27 | Bref je patauge dans la semoule |
TOTAL TRIM. | 33 | 36 |
Sub test()
Dim c As Range
For Each c In Selection
Select Case c.Row Mod 4
Case 2 ' formule ok
Cells(c.Row, "K").FormulaR1C1 = _
"=IF(SUM(R" & c.Row & "C4:RC[-7])>SUM(R" & c.Row & "C3:RC[-8]),SUMPRODUCT((R" & c.Row & "C3:RC[-8])*(R" & c.Row & "C5:RC[-6])),SUMPRODUCT((R" & c.Row & "C4:RC[-7])*(R" & c.Row & "C5:RC[-6])))"
Case 3 ' erreur de syntaxe en VBA, reste à trouver ou ;o)
Cells(c.Row, "K").FormulaR1C1 = _
"=IF(SUM(R" & c.Row - 1 & "C4:RC[-7])>SUM(R" & c.Row - 1 & "C" & c.Row & ":RC[-8]),SUMPRODUCT((R" & c.Row - 1 & "C" & c.Row & ":RC[-8])*(R" & c.Row - 1 & "C5:RC[-6])),SUMPRODUCT((R" & c.Row - 1 & "C4:RC[-7])*(R" & c.Row & "C5:RC[-6])))-SUM(R" & c.Row & "C11:R[-1]C)"
Case 0
' formule à traduire en VBA
End Select
Next c
End Sub
Sub test()
Dim dl&
With ActiveWorkbook.Names
.Add Name:="Autor", RefersToR1C1:= _
"=OFFSET(Feuil1!R1C3,(INT((ROW()+2)/4))*4,)"
.Add Name:="Real", RefersToR1C1:= _
"=OFFSET(Feuil1!R1C4,(INT((ROW()+2)/4))*4,)"
End With
dl = Cells(Application.Rows.Count, 2).End(xlUp).Row
With Range("K2:K" & dl)
.FormulaR1C1 = _
"=IF((MOD(ROW()-1,4)=0),SUM(OFFSET(RC,-1,0),OFFSET(RC,-2,0),OFFSET(RC,-3,0)),IF(Real<=Autor,RC[-7]*RC[-6],MIN(RC[-8],RC[-7])*RC[-6]))"
End With
End Sub
NOMS | PERIODE | NBHA | NBHR | TOTAL AUTORISE | TOTAL A PAYER |
NOM1 | MOIS N | ||||
NOM1 | MOIS N+1 | ||||
NOM1 | MOIS N+2 | ||||
TOTAL TRIM. | |||||
NOM2 | etc... |
NBHA | NBHR |
13,50 | 26 |
13,50 | 5,75 |
13,50 | 2,45 |
Trois points tout de même avant d'essayer d'industrialiser le bazar :Il y un problème dans la proposition de ninbihan, comme dans la première que je t'avais faite : si on dépasse le quota horaire du trimestre, on paye moins cher que si on l'a juste atteint ! essayes de rentrer 13 en D4 pour t'en convaincre.
Le critère de plafond par trimestre est bien le nombre d'heures indépendamment de leur cout ?
Il y a nombre d'heure trimestriel autorisé.
Le nombre qui sera saisi dans le logiciel pour le trimestre à traiter ne peut être supérieur mais peut être inférieur à ce maximal trimestriel.
(Selon les cas , il y a une seule ligne de saisie ou une ligne pour chaque mois, voire 2 lignes + une ligne)
On a donc besoin d'avoir dans le fichier Excel une saisie selon le modèle présent dans cette discussion.
(Je zappe volontairement tout ce qui peut être régularisation ultérieure)
Y-a-t'il absolument besoin du coût de chaque mois ou peut-on se contenter de celui du trimestre ?
Le coût horaire peut être différent d'un mois sur l'autre
donc on on peut pas faire TOTALTRIM*TARIF/H
Il n'y a qu'un seul trimestre par facture.Je pense que plutôt que de traduire les formules en Vb, il est préférable de construire le calcul et de la réaliser par Vba. On pourrait faire une boucle pour traiter tous les trimestres successifs ensuite.