Calcul CA avec taux horaire variable
Bonjour
Je suis free-lance et je cherche à créer un tableau qui me permette de calculer mon chiffre d’affaire. Jusque là j’avais un taux horaire fixe, mais depuis début octobre j’ai un taux horaire variable, ce qui complique la construction de mon nouveau tableau.
Je m’explique :
- du lundi au samedi, de 8h à 19h, je suis rémunérée 45€ / heure
- du lundi au samedi, après 19h, je suis rémunérée 55€ / heure
- les dimanches et jours fériés, peu importe l’heure, je suis rémunérée 55€ / heure
Je vous mets ci-dessous ce à quoi j’aimerais que ce tableau ressemble.
Je suis actuellement bloquée au niveau de plusieurs points :
- je n’arrive pas à trouver la formule qui me permette, simplement en indiquant mes horaires, de répartir le nombre d’heures effectuées entre « journée » et « soirée ».
- j’aimerais savoir si la forme actuelle de la date permettra automatiquement de répartir mes heures dans « dimanche » et « férié », et si oui par quelle formule
.
Merci d’avance pour votre aide, ça fait plusieurs jours que je suis dessus et je n’avance pas !
Bonsoir à tous !
Je vous livre une proposition :
Remarque : Il serait pertinent de mettre à jour votre profil à propos de la version Excel utilisée.
Bonjour
Bonjour à tous
Une variante
Option Explicit
Dim tablo, tabloF, fe As Worksheet
Dim i&, ln&
Sub répartir()
Set fe = Sheets("fériés")
tablo = Range("A1:C" & Range("B" & Rows.Count).End(xlUp).Row)
'On complète le tablo
For i = 3 To UBound(tablo, 1)
If tablo(i, 1) = "" Then
tablo(i, 1) = tablo(i - 1, 1)
End If
Next i
ReDim tablo2(1 To UBound(tablo, 1), 1 To 4) ' tableau des résultats
'Cas des jours fériés
For i = 2 To UBound(tablo, 1)
fe.Range("D1") = Year(tablo(i, 1))
tabloF = fe.Range("C3:C13")
For ln = 3 To UBound(tabloF, 1)
If tabloF(ln, 1) = tablo(i, 1) Then
tablo2(i - 1, 4) = (tablo(i, 3) - tablo(i, 2)) * 24
GoTo suite
End If
Next ln
'Cas des dimanches
If Weekday(tablo(i, 1)) = 1 Then
'col = 3
tablo2(i - 1, 3) = (tablo(i, 3) - tablo(i, 2)) * 24
GoTo suite
End If
'Autres cas
If tablo(i, 2) < 19 / 24 And tablo(i, 3) < 19 / 24 Then
tablo2(i - 1, 1) = (tablo(i, 3) - tablo(i, 2)) * 24
ElseIf tablo(i, 2) >= 19 / 24 And tablo(i, 3) > 19 / 24 Then
tablo2(i - 1, 2) = (tablo(i, 3) - tablo(i, 2)) * 24
Else
tablo2(i - 1, 1) = (19 / 24 - tablo(i, 2)) * 24
tablo2(i - 1, 2) = (tablo(i, 3) - 19 / 24) * 24
End If
suite:
Next i
Range("D2").Resize(UBound(tablo2, 1), 4) = tablo2
End SubBye !
Bonjour à tous,
Bonjour Hannahisse
Je vous invite à lire la charte du forum [A LIRE AVANT DE POSTER]
qui vous aidera dans vos demandes et réponses sur ce forum et notamment :
- Ne postez pas la même question sur un autre forum pour éviter de faire perdre bêtement du temps aux membres sur un problème qui peut être déjà résolu sur l'autre forum. L'inverse est également valable, si vous avez déjà posé votre question sur un autre forum, ne créez pas un doublon sur ce forum (à moins d'avoir clôturé le sujet sur l'autre forum).
Merci de votre compréhension