Formule

G

GClaire

Guest
Salut a toutes et tous

J'ai cette formule (en AH61), que m'avait faite Monique, (Ti coucou, d'ailleur).

=SOMMEPROD(NB.SI(C22:C52;AT54:AT56))

Dans la cellule AT54, j'ai : CP.A-M
et dans la cellule AT 56, j'ai : CP.A-M et Emp

Donc ce que je veux faire, c'est compter le nombre de fois qu'il y a ces valeurs dans la plage sélectionnée.

Mon problème viens d'une donnée que j'ai besoin, dans cette même plage et qui fausse le résultat.

La donnée qui perturbe : CP(NP).A-M

Elle me sert a déduire des congés qui ne doivent pas être payés, mais en faite elle s'ajoute a la cellule AH61

Par exemple si j'ai 5 fois CP.A-M, 3 Fois CP.A-M et Emp et 2 fois CP(NP).A-M, le résulta final devrait être : 8 jours de congés pris et pour le moment cela me donne 10 jours, quel est le problème et surtout comment puis y remédier?

Merci d'avance G'Claire.
 
G

GClaire

Guest
Le forum, Monique

Merci de ta réponse.

En faite la formule étée bonne, et tu l'avait faite comme j'avais du te le demander, a l'époque.

Mais hier en faisant cette fiche de paye, j'ai eu un doute, car ma nourisse avait prie 3 semaines (Normale), sauf qu'une tombée en dehors de nos congé, donc il fallait quelle soit Non-payée, mais ce que j'avais oublié (Et quelle m'a rappellée, ce matin), c'est qu'il faut quand même compter cette semaine, comme des congés prient, donc la 1 ere formule est la bonne.

Désolé pour le travail pour rien :eek: .

Grosses bises, G'Claire
 
G

GClaire

Guest
Re

Oups, cela me pose un ti souci, tout cela.

Comme dans une formule cela me calcul le nombres de jours non travaillé suivant le nombres d'heures par jours et la somme par heures et que je dois les déduire du salaire brut, que les samedi et jours non gardé (Prévu dans le contrat) sont compté dans les CP non payés, mais pas dans la somme a déduire du brut, cela ne colle pas, donc je résume suivants mon tableau.

En AU 42 : =NB.SI($C22:$C52;AT55)*AX31

Avec en :

AT55 : CP(NP).A-M ------> (Congés payés non payés)
AX31 : 5,5 ------>(Nombres d'heures par jours)

Donc, je pense qu'il faudrait tenir compte de la valeur maximum d'heure dans la semaine, qui est en cellule AX33

De plus je viens d'apprendre que si un CP est prie un vendredi, il faut systématiquement mettre le samedi (Car c'est 6 jours ouvrés, du Lundi au samedi)

Je ne sais pas trop comment gérer le truc, soit en l'intégrant lors de l'envoie (Par macro), ou en formule.

J'espère que c'est claire et vous remercie d'avance, G'Claire
 

Laisse moi rire

XLDnaute Occasionnel
Salut

j'ai bien regardé un peu, mais en vain.

En plus, je ne sais même pas comment faire pour pouvoir tenir compte de ce critère des samedi et des jours sans garde.

Donc il faut bien que je comptabilise les jours de CP non payés, afin de les déduire des CP, mais pour les déduire du salaire il faut que tienne compte des samedi et des jours de non garde, qui eux ne sont pas a déduire (Sauf si le samedi a été prévu de garde).

Donc pour voir les jours avec garde j'ai une partie de tableau qui me dit si oui, il y a garde, je ne sais si cela peu aider.

Merci, G'Claire
 

Laisse moi rire

XLDnaute Occasionnel
Re


Oups, le fichier
Merci, G'Claire [file name=FeuilleDePayePourXLD.zip size=19828]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/FeuilleDePayePourXLD.zip[/file]

Message édité par: GClaire, à: 20/09/2005 17:58
 

Pièces jointes

  • FeuilleDePayePourXLD.zip
    19.4 KB · Affichages: 35

Monique

Nous a quitté
Repose en paix
Bonjour,

Pour AU42, je ne trouve que cette formule :
=SOMMEPROD(SI(C22:C52=AT55;(A22:A52={'lu'.'me'.'je'.'ve'})*1))*AX31
à valider par ctrl, maj et entrée

Cette formule te donne le nb de CP(NP).A-M tombant un lundi, mercredi, jeudi ou vendredi

Si tu avais ta série de oui et non en colonne I,
tu pourrais utiliser cette formule (à valider par 'Entrée' simplement) :
=SOMMEPROD(($I$22:$I$52='oui')*($C$22:$C$52=AT55))*AX31

Ou bien les oui non situés n'importe où, pourvu qu'il y ait 31 cellules, pas forcément de la ligne 22 à la ligne 52
 

Laisse moi rire

XLDnaute Occasionnel
Monique, le forum

Merci beaucoup.

Alors,

1) Pour

Pour AU42, je ne trouve que cette formule :
=SOMMEPROD(SI(C22:C52=AT55;(A22:A52={'lu'.'me'.'je'.'ve'})*1))*AX31

C'est tout a fait Oki.

2)Pour

Si tu avais ta série de oui et non en colonne I,
tu pourrais utiliser cette formule (à valider par 'Entrée' simplement) :
=SOMMEPROD(($I$22:$I$52='oui')*($C$22:$C$52=AT55))*AX31

Ou bien les oui non situés n'importe où, pourvu qu'il y ait 31 cellules, pas forcément de la ligne 22 à la ligne 52

Cela peu être réalisable dans deux cas.

1 er cas en formule .

Que dans chaque lignes de la colonne I ou autre, cela analyse la plage A22:A52 et que cela mette l'état de chaque jour par rapport au tableau des jours de garde.

2 eme cas en macro .

Car j'ai ce code pour rempir le tableau des jours de garde.

Dim TheDate As Date

Private Sub cmdAnnuler_Click()
UserForm_Initialize
End Sub

Private Sub cmdRetour_Click()
Unload Me
End Sub

Private Sub chbAucuns_Click()
If ChbAucuns = True Then
chbLundi = False
chbMardi = False
chbMercredi = False
chbJeudi = False
chbVendredi = False
chbSamedi = False
chbDimanche = False
End If
End Sub

Private Sub chbLundi_Click()
InitialisationChbAucuns
End Sub

Private Sub chbMardi_Click()
InitialisationChbAucuns
End Sub

Private Sub chbMercredi_Click()
InitialisationChbAucuns
End Sub

Private Sub chbJeudi_Click()
InitialisationChbAucuns
End Sub

Private Sub chbVendredi_Click()
InitialisationChbAucuns
End Sub

Private Sub chbSamedi_Click()
InitialisationChbAucuns
End Sub

Private Sub chbDimanche_Click()
InitialisationChbAucuns
End Sub

Private Sub cmdModifier_Click()
Dim TheNum As Byte
TheDate = Month(Date)
TheNum = CByte(Month(Date))
PositionModifier
Préposition
chbLundi.Locked = False
chbMardi.Locked = False
chbMercredi.Locked = False
chbJeudi.Locked = False
chbVendredi.Locked = False
chbSamedi.Locked = False
chbDimanche.Locked = False
chbLundi.Value = False
chbMardi.Value = False
chbMercredi.Value = False
chbJeudi.Value = False
chbVendredi.Value = False
chbSamedi.Value = False
chbDimanche.Value = False
cmdModifier.Visible = False

End Sub

Private Sub UserForm_Initialize()
Dim TheNum As Byte
TheDate = Month(Date)
TheNum = CByte(Month(Date))
PositionInitiale
Usf_NonGarde.Caption = 'Jours de garde en ' & Worksheets(TheNum).Name

With Sheets('CoordonnéesBebe')
If .lblSexe = 'G' Then
Usf_NonGarde.BackColor = &HFFC0C0
frmJoursDeGarde.BackColor = &HFFC0C0
chbLundi.BackColor = &HFFC0C0
chbMardi.BackColor = &HFFC0C0
chbMercredi.BackColor = &HFFC0C0
chbJeudi.BackColor = &HFFC0C0
chbVendredi.BackColor = &HFFC0C0
chbSamedi.BackColor = &HFFC0C0
chbDimanche.BackColor = &HFFC0C0
End If
If .lblSexe = 'F' Then
Usf_NonGarde.BackColor = &HFFC0FF
frmJoursDeGarde.BackColor = &HFFC0FF
chbLundi.BackColor = &HFFC0FF
chbMardi.BackColor = &HFFC0FF
chbMercredi.BackColor = &HFFC0FF
chbJeudi.BackColor = &HFFC0FF
chbVendredi.BackColor = &HFFC0FF
chbSamedi.BackColor = &HFFC0FF
chbDimanche.BackColor = &HFFC0FF
End If
End With
With Worksheets(TheNum)
chbLundi.Value = IIf(.Range('AT30').Value = 'Oui', True, False)
chbMardi.Value = IIf(.Range('AT31').Value = 'Oui', True, False)
chbMercredi.Value = IIf(.Range('AT32').Value = 'Oui', True, False)
chbJeudi.Value = IIf(.Range('AT33').Value = 'Oui', True, False)
chbVendredi.Value = IIf(.Range('AT34').Value = 'Oui', True, False)
chbSamedi.Value = IIf(.Range('AT35').Value = 'Oui', True, False)
chbDimanche.Value = IIf(.Range('AT36').Value = 'Oui', True, False)
End With
chbLundi.Locked = True
chbMardi.Locked = True
chbMercredi.Locked = True
chbJeudi.Locked = True
chbVendredi.Locked = True
chbSamedi.Locked = True
chbDimanche.Locked = True
End Sub

Sub InitialisationChbAucuns()
'ChbAucuns = False
End Sub

Private Sub cmdValider_Click()
Dim Choix1 As String
Dim Choix2 As String
Dim Choix3 As String
Dim Choix4 As String
Dim Choix5 As String
Dim Choix6 As String
Dim Choix7 As String
Dim Mois, TheNum As Byte
TheDate = Month(Date)
TheNum = CByte(Month(Date))
If chbLundi = True Then
Choix1 = 'Oui'
Else
Choix1 = 'Non'
End If
If chbMardi = True Then
Choix2 = 'Oui'
Else
Choix2 = 'Non'
End If
If chbMercredi = True Then
Choix3 = 'Oui'
Else
Choix3 = 'Non'
End If
If chbJeudi = True Then
Choix4 = 'Oui'
Else
Choix4 = 'Non'
End If
If chbVendredi = True Then
Choix5 = 'Oui'
Else
Choix5 = 'Non'
End If
If chbSamedi = True Then
Choix6 = 'Oui'
Else
Choix6 = 'Non'
End If
If chbDimanche = True Then
Choix7 = 'Oui'
Else
Choix7 = 'Non'
End If
Call Msg4
For Mois = TheNum To 12
With Worksheets(Mois)
.Range('AT30').Value = Choix1
.Range('AT31').Value = Choix2
.Range('AT32').Value = Choix3
.Range('AT33').Value = Choix4
.Range('AT34').Value = Choix5
.Range('AT35').Value = Choix6
.Range('AT36').Value = Choix7
End With
Next Mois
Msg2
Unload Me
End Sub

Sub PositionInitiale()

frmJoursDeGarde.Caption = 'Jours de gardes actuels'
cmdValider.Visible = False
cmdAnnuler.Visible = False
cmdModifier.Visible = True

End Sub

Sub PositionModifier()

frmJoursDeGarde.Caption = 'Sélectionner les jours de garde'
cmdAnnuler.Visible = True
cmdValider.Visible = True
cmdModifier.Visible = False

End Sub

Sub Préposition()

Dim TheNum As Byte, VarPreposition
TheNum = CByte(Month(Date))
Select Case TheNum
Case 4, 8, 10: VarPreposition = 'd''
Case Else: VarPreposition = 'de'
End Select

Usf_NonGarde.Caption = 'Jours de garde a partir ' & VarPreposition & _
Worksheets(TheNum).Name
End Sub


Et pouvoir le faire lors de l'envoie ou de la mise a jour des jours de garde.

En tous les cas merci, G'Claire
 

Discussions similaires

Réponses
1
Affichages
240

Statistiques des forums

Discussions
312 217
Messages
2 086 354
Membres
103 197
dernier inscrit
sandrine.lacaussade@orang