Dupliquer resultat sur toute les lignes
Bonjour,
espère que vous allez bien.
je reviens vers vous pour un soucis que je n'ai pas pu résoudre jusqu'à mnt tout seul, j'aurai besoin de vos talents magiques SVP.
J'essaye de faire une sommi.si.ens mais le résultat remonte juste pour une seule colonne et non pas pour toutes mes références.
Voici mon code utiliser :
Sub SOMMESIENS()
'reprendre les colonnes en nombre
For Each r In Sheets(1).UsedRange.SpecialCells(xlCellTypeConstants)
If IsNumeric(r) Then
r.Value = CSng(r.Value)
r.NumberFormat = "0.00"
End If
Next
For ligne = 2 To 50000
Dim rngCritère As Range
Dim rngCritère2 As Range
Dim rngCritère4 As Range
Dim rngSommeA As Range
Dim valeurUn As String
'Affectation la plage de cellules
Set rngCritère = Sheets(1).Cells(ligne, 1) (REF UNIQUE)
Set rngCritère2 = Sheets(1).Cells(ligne, 8) (conditions)
Set rngCritère4 = Sheets(1).Cells(ligne, 10) (conditions)
Set rngSommeA = Sheets(1).Cells(ligne, 12) (MT)
'somme.si.en
Sheets(3).Cells(ligne, 7).Value = WorksheetFunction.SumIfs(rngSommeA, rngCritère, Sheets(1).Cells(ligne, 1), rngCritère2, "ENIPA")
Sheets(3).Cells(ligne, 8).Value = WorksheetFunction.SumIfs(rngSommeA, rngCritère, Sheets(1).Cells(ligne, 1), rngCritère4, "ENIPA")
'Libération des objets range
Set rngCritère = Nothing
Set rngCritère2 = Nothing
Set rngCritère4 = Nothing
Set rngSommeA = Nothing
Next ligne
End Sub
Je vous remercie par avance de votre aide et je reste a votre dispo.
voici le fichier de travail pour bien comprendre mon besoin :).
Bonjour,
voici le fichier de travail pour bien comprendre mon besoin
Désolé, mais il n'y a aucune description de ce qu'il faut faire, même votre code se retrouve à quelques nuances près dans 2 modules à la fois, quel est le bon code, celui du module "SOMMESIENS" ou "SOMMESIENS1" ?
Résoudre un problème simplement en essayant de déchiffrer un code (pas forcement limpide et efficace), n'est pas la meilleure solution.
Quelle somme faut-il faire? ou afficher le résultat?
Alors, donnez un descriptif du but à atteindre et vous aurez obtiendrez plus rapidement des réponses.
Cdlt
je suis nouveau désolé, le but c'est d'avoir pour chaque référence unique dans la feuille 3 (salarié et mois) qui est dans la colonne 1 la somme de la colonne 12 selon la qualification des colonne 8/10 de la feuille 1.
je vous remercie et reste dispo pour clarification.
la feuille 3 (salarié et mois) n'existe pas.
EXCUSEZ MOI JE VOULAIS DIRE FEUILLE 2
Bonjour,
Comme les valeurs de la colonne "L" contiennent des nombres et du texte, j'ai utilisé la colonne "R" de la feuil6 pour y glisser une formule via le VBA qui fera le ménage.
Ensuite la même macro, fera le total par référence de cette colonne "L" et mettra le résultat dans la colonne "Q" de la feuille "RESULTAT".
La macro:
Sub Total()
Dim f1 As Worksheet, f2 As Worksheet
Dim DerLig_f1 As Long, DerLig_f2 As Long
Set f1 = Sheets(Sheets(1).Name)
Set f2 = Sheets("RESULTAT")
DerLig_f1 = f1.Range("A" & Rows.Count).End(xlUp).Row
DerLig_f2 = f2.Range("A" & Rows.Count).End(xlUp).Row
f1.Range("R2:R" & DerLig_f1).FormulaR1C1 = "=IF(ISNUMBER(RC[-1]),RC[-1],"""")"
f1.Range("R2:R" & DerLig_f1).Value = f1.Range("R2:R" & DerLig_f1).Value
f2.Range("Q2:Q" & DerLig_f2).FormulaR1C1 = "=SUMIF(" & Sheets(1).Name & "!R2C1:R" & DerLig_f1 & "C1,RC1," & Sheets(1).Name & "!R2C[1]:R" & DerLig_f1 & "C[1])"
f2.Range("Q2:Q" & DerLig_f2).NumberFormat = "0.00"
Set f1 = Nothing
Set f2 = Nothing
End SubCdlt