Somme si ens

Bonjour

j'ai un soucis ave une macro qui utilise somme.si ens, pour moi elle est correcte mais je pense que que le format des dates bug.

pourtant la fonction me donne le résultat souhaité.

si joint la fontion

=SOMME.SI.ENS($AL$14:$AL$44;$AI$14:$AI$44;">="&$AP4;$AI$14:$AI$44;"<"&$AP5;$AG$14:$AG$44;"="& "")

la macro

Sub test1()

Cells(4, 42).Value = ("=TODAY()")

Cells(5, 42).Value = Cells(4, 42).Value + 1

Cells(6, 42).Value = Cells(5, 42).Value + 1

Cells(7, 42).Value = Cells(6, 42).Value + 1

Cells(8, 42).Value = Cells(7, 42).Value + 1

Cells(9, 42).Value = Cells(8, 42).Value + 1

Cells(10, 42).Value = Cells(9, 42).Value + 1

Dim ligne As Integer

ligne = 4

Do While Cells(ligne, 42).Value <> ""

'will1

Cells(ligne, 43).Value = Application.WorksheetFunction.SumIfs(Range("al14:al44"), _

Range("ai14:ai44"), ">=" & Cells(ligne, 42), _

Range("ai14:ai44"), "<" & Cells(ligne + 1, 42), _

Range("ag14:ag44"), "=" & "")

ligne = ligne + 1

Loop

End Sub

je joints aussi le fichier

par avance merci pour votre aide

philippe

Bonjour,

Essaie :

Sub test1()
Cells(4, 42).Value = Date
'le reste sans changement...
End Sub

A+

bonjour Galopin1

merci pour ton aide mais ça ne fonctionne pas.

je joint le bon fichier, je pense que sait mieux pour tout le monde

cordialement

philippe

bonjour

salut au passage galopin

je ne vois pas bien pourquoi mettre une macro là où une formule fonctionne

amitiés

bonjour JMD

le fichier joint à juste ce qui faut pour le joindre à ma demande . Sauf qu'il fait de 46 000 ko . je voudrais éviter de le grossir surtout qu'il est utiliser par un sous traitant qui gère notre stockage. On lui envoie par mail tous les matins.

Si vous pouvez regarder pourquoi la macro nefonctionne pas.

je vous remercie par avance

philippe

Bonjour à tous,

moi non plus je ne vois pas trop l'intérêt de mettre une formule par macro si elle est destinée à y rester tout le temps.

Si tu désires ne garder que la valeur (mais ce n'est pas 6 formules en moins qui vont faire maigrir ton fichier :

    With [AQ4].Resize(Cells(Rows.Count, 42).End(xlUp).Row - 3)
        .FormulaR1C1 = "=SUMIFS(R14C38:R44C38,R14C35:R44C35,"">=""&RC42,R14C35:R44C35,""<""&R[1]C42,R14C33:R44C33,""=""& """")"
        .Value = .Value
    End With

Ta formule =Aujourdhui() et celles des jours suivants doivent être mises sur la feuille. Aucun intérêt pas macro.

eric

bonjour Eric

merci pour votre aide à tous , ça fonctionne.

je fais le maxi pour réduire le fichier mais on gére plus 55000t de stock et je vous dit pas le nombre de lignes que ça représante.

et sourtout on a du personnel sous traitant qui non aucune connaissance d'excel et c'est souvant que j'avais des fonctions effacées.

Voila pourquoi je laisse le minimu de fonction dans ces fichiers.

merci encore à tous

philippe

re

le principe consiste à ne communiquer QUE les données, sans aucun calculs

soit des xls, soit des txt ou csv

c'est à lui de réimporter les données dans son Excel (s'il le peut, je préconise d'importer par Power Query)

puis de faire les calculs

amitiés

note : tu peux aussi faire les calculs sur ton Excel, exporter au format txt

ce qui allège considérablement le fichier, il contient les valeurs de tes calculs, sans les formules

lui n'aura qu'à importer

note 2 : ou bien mets ton Excel dans le Cloud, il n'aura qu'à le lire directement avec Power Query

note 3 / Power Query est dispo pour Excel grauitement, pour les versions >= 2010

note 4 : un TCD serait peut-être la bonne solution à tes calculs

amitiés

Rechercher des sujets similaires à "somme ens"