Somme des lignes avec 2 critères dates

Bonjour,

je me permets de vous écrire car je suis bloqué sur la fonction somme sur vba .

But de macros :

faire la somme des colonnes A2 à L2 suivant une condition : date sur la colonne Q contient une date spécifiques.

cad : si la colonne Q contient 10/2022 alors faire la somme des 12 salaires de 10/2021 à 09/2022.

si la colonne Q contient 11/2022 alors faire la somme des 12 salaires de 11/2021 à 10/2022 ect.....

j'ai réussi à faire la somme sur la ligne par contre la ligne 3 , 4, et 5 prend la somme de ligne 2.

donc le blocage est : de basculer la formule sur toutes les lignes .

le résultat 24000 sur la cellule P2 est la somme de A2 à L2 puisque la date est 10/2022.

le résultat sur la cellule P3doit être 33000 est la somme de A2 à L2, le résultat sur la cellule P6 doit être 72000 est la somme de B6 à M6.

je ne sais pas si j'étais clair , de toute façon ci-joint le fichier qui contient le tableau et le macros.

j'attends vos aides, merci d'avance .

25somme-salaire.xlsm (19.74 Ko)

Bonsoir,

Une proposition sans VBA.

Cordialement.

19somme-salaire.xlsx (11.34 Ko)

Merci pour ta réponse et ta proposition.

Il faut que se soit un macros car je vais l'intégrer dans le macros globale qui va faire dautres traitement.

bonjour,

y aura t il une personne qui peut m'aider ?

Bonjour,

Il est possible d'utiliser la proposition faite et la macro pour le reste.

Cordialement

Bonsoir à tous,

Un essai .....pour le fun....

Option Explicit

Sub Sommeif_salaire()
 Dim i, dl%, madate As Date, debut, fin, coldebut, colfin
  Application.ScreenUpdating = False
   With Sheets("calcul salaire")
    dl = .UsedRange.Rows.Count
     For i = 2 To dl
      If .Range("Q" & i) <> "" Then
       madate = .Range("Q" & i)
        debut = "salaire " & Format(Month(madate), "00") & "/" & Year(madate) - 1
          fin = "salaire " & Format(Month(madate) - 1, "00") & "/" & Year(madate)
        Set coldebut = .Range("A1:O1").Find(what:=debut, LookAt:=xlWhole)
         If Not coldebut Is Nothing Then
          Set colfin = .Range("A1:O1").Find(what:=fin, LookAt:=xlWhole)
           If Not colfin Is Nothing Then
            .Range("P" & i) = Application.Sum(.Range(.Cells(i, coldebut.Column), .Cells(i, colfin.Column)))
           End If
         End If
      End If
     Next i
   End With
  Application.ScreenUpdating = True
End Sub
33somme-salaire.xlsm (19.26 Ko)

Cordialement,

Bonjour,

merci xorsankukai , je vais tester , je te tiens au courant ...

Bonsoir ,

merci xorsankukai sa fonctionne très bien

par contre le mois de janvier 2023 il a un soucis il ne fait pas la somme

il faudrait ajouter 2 autres variables ? ( debutj et finj )

debutj = "salaire " & Format(Month(madate), "00") & "/" & Year(madate) - 1
finj = "salaire " & Format(Month(madate) + 11, "00") & "/" & Year(madate) - 1

si date = 01/2023 alors fait la somme entre 01/202 et 12/2022

j'arrive pas à l'intégrer dans ton script , tu pe le faire ?

Bonjour à tous,

par contre le mois de janvier 2023 il a un soucis il ne fait pas la somme

Effectivement, comme on ne travaille pas avec de vraies dates, avec janvier le mois précédent = 0, l'année pose également souci....

Ceci dit, ça fait un peu "usine à gaz", je pense que si tu avais laissé Zebulon2 finaliser sa proposition par formule, cela aurait simplifier la tâche.

A tester:

15somme-salaire.xlsm (21.15 Ko)

nota: le code ne fonctionne que si il y a correspondance dans la ligne de titre....(salaire "début" ,salaire "fin")

Cordialement,

Bonsoir,

Pour répondre à xorsankukai, que je salue, un essai en modifiant la présentation, toujours sans VBA.

Cordialement.

16somme-salaire.xlsx (11.89 Ko)

Bonsoir ,

merci xorsankukai et Zebulon2

code vba ok xorsankukai

parfait aussi sans vba

Rechercher des sujets similaires à "somme lignes criteres dates"