SOMME.SI.ENS en fonction d'une autre cellule
Florentin55
Messages postés
8
Statut
Membre
-
Florentin55 Messages postés 8 Statut Membre -
Florentin55 Messages postés 8 Statut Membre -
Bonjour,
Je suis confronté à une formule qui je ne sais traduire pour l'appliquer sur excel.
Explication :
Ci-joint un tableau :

Premièrement, je souhaite que les cellules E28 à J28 ne se calculent que si B28 et C28 sont remplies par une date .
La formule général pour les données dans le tableau est =SOMME.SI.ENS(Activités!L:L;Activités!H:H;"Développée";Activités!O:O;1).
Deuxièmement, et là c'est plus compliqué à mon avis, je souhaite que le résultat obtenu précédemment ne soit pas mis à jour.
Explication :
La cellule J28 contient le résultat 86.5 qui provient des données d'une autre feuille qui est mis à jour toutes les semaines au moins. Sauf que j'aimerai que cette cellule m'affiche le résultat le jour ou j'ai inscrits des dates dans la cellule B28 et C28.
Cela me permet d'avoir une synthèse sur l'avancement par date.
Au vu du tableau cela semble compliqué.
Pour simplifier si une formule me permet d'avoir le résultat de J28 quand je mets une date précise dans la cellule B28, sinon j'ai un "?" car la colonne date est vide.
Si vous avez des soucis de compréhension, n'hésitez pas à poser des questions.
Merci d'avance. Cordialement, Florentin.
Je suis confronté à une formule qui je ne sais traduire pour l'appliquer sur excel.
Explication :
Ci-joint un tableau :

Premièrement, je souhaite que les cellules E28 à J28 ne se calculent que si B28 et C28 sont remplies par une date .
La formule général pour les données dans le tableau est =SOMME.SI.ENS(Activités!L:L;Activités!H:H;"Développée";Activités!O:O;1).
Deuxièmement, et là c'est plus compliqué à mon avis, je souhaite que le résultat obtenu précédemment ne soit pas mis à jour.
Explication :
La cellule J28 contient le résultat 86.5 qui provient des données d'une autre feuille qui est mis à jour toutes les semaines au moins. Sauf que j'aimerai que cette cellule m'affiche le résultat le jour ou j'ai inscrits des dates dans la cellule B28 et C28.
Cela me permet d'avoir une synthèse sur l'avancement par date.
Au vu du tableau cela semble compliqué.
Pour simplifier si une formule me permet d'avoir le résultat de J28 quand je mets une date précise dans la cellule B28, sinon j'ai un "?" car la colonne date est vide.
Si vous avez des soucis de compréhension, n'hésitez pas à poser des questions.
Merci d'avance. Cordialement, Florentin.
A voir également:
- SOMME.SI.ENS en fonction d'une autre cellule
- Fonction si et - Guide
- Comment colorer une cellule excel en fonction du contenu d'une autre cellule - Forum Excel
- Excel remplir automatiquement une cellule en fonction d'une autre ✓ - Forum Excel
- Changer la couleur d'une cellule selon son texte - Forum Excel
- Diviser une cellule excel en deux horizontalement ✓ - Forum Excel
4 réponses
Bonjour Florentin
Pour récupérer les données d'une autre feuille et les figer à cette date il faut procéder par une macro lancée à la modification des cellules B et C
Impossible d'en dire plus sans avoir un exemple de ton fichier au lieu d 'une image; exemple à poster sur cjoint.com, faire créer un lien, le copier et revenir le coller ici dans ton prochain message
Cdlmnt
Via
Pour récupérer les données d'une autre feuille et les figer à cette date il faut procéder par une macro lancée à la modification des cellules B et C
Impossible d'en dire plus sans avoir un exemple de ton fichier au lieu d 'une image; exemple à poster sur cjoint.com, faire créer un lien, le copier et revenir le coller ici dans ton prochain message
Cdlmnt
Via
Re Florentin
Ton fichier en retour (je l'envoie par mon partage car comme il est en extension xlsm souvent on ne peut pas l'ouvrir directement avec cjoint, il faut d'abord l'enregistrer, et changer l'extension avant d'ouvrir)
https://mon-partage.fr/f/GZRtOxWi/
Toute modification d'une des cellules C28:C35 lance la macro qui effectue les SOMME.SI.ENS et remplit les cellules de la lignes dont les résultats restent donc figés tant qu'on ne remodifie pas la date en C sur la même ligne
ALT+F11 pour voir le code
Cdlmnt
Via
Ton fichier en retour (je l'envoie par mon partage car comme il est en extension xlsm souvent on ne peut pas l'ouvrir directement avec cjoint, il faut d'abord l'enregistrer, et changer l'extension avant d'ouvrir)
https://mon-partage.fr/f/GZRtOxWi/
Toute modification d'une des cellules C28:C35 lance la macro qui effectue les SOMME.SI.ENS et remplit les cellules de la lignes dont les résultats restent donc figés tant qu'on ne remodifie pas la date en C sur la même ligne
ALT+F11 pour voir le code
Cdlmnt
Via
Re via55,
Alors déjà, tu as fait un truc de fou furieux :).
Bon ayant déjà fait du code, je vois un peu ce que tu as fait.
Cependant après avoir fait ALT+F11 je ne me repère pas très bien dans la hiérarchie du logiciel si tu pouvais juste m'éclairer sinon je chercherai par moi-même.
En tout cas, un IMMENSE MERCI pour ton travail et surtout ta rapidité.
Alors déjà, tu as fait un truc de fou furieux :).
Bon ayant déjà fait du code, je vois un peu ce que tu as fait.
Cependant après avoir fait ALT+F11 je ne me repère pas très bien dans la hiérarchie du logiciel si tu pouvais juste m'éclairer sinon je chercherai par moi-même.
En tout cas, un IMMENSE MERCI pour ton travail et surtout ta rapidité.
Re
Je te remets ci-dessous la macro avec des explications, n'hésites pas à me demander s'il y a quelque chose que tu ne comprends pas
La macro est dans le worksheet de la feuille sprint, elle ne se déclenche donc que lors d'un événement sur cette feuille, en l'occurance un changement de valeur dans une cellule :
Cdlmnt
Via
Je te remets ci-dessous la macro avec des explications, n'hésites pas à me demander s'il y a quelque chose que tu ne comprends pas
La macro est dans le worksheet de la feuille sprint, elle ne se déclenche donc que lors d'un événement sur cette feuille, en l'occurance un changement de valeur dans une cellule :
Private Sub Worksheet_Change(ByVal Target As Range)
' à chaque changement d'une valeur dans une cellule la macro est déclenchée
' si la cellule cible(target) et une des cellules de la plage C28:C35
If Not Intersect(Target, Range("C28:C35")) Is Nothing Then
' alors
' avec la feuille Activités pour source de toutes les adresses précédées d'un point (.Range(...)
With Sheets("Activités")
'les cellule E à F de la ligne de la cible prennet comme valeurs celles calculées par les SOMME.SI.ENS (Sumifs ...)
Range("E" & Target.Row) = Application.WorksheetFunction.SumIfs(.Range("L:L"), .Range("H:H"), "Créé", .Range("O:O"), Range("A" & Target.Row))
Range("F" & Target.Row) = Application.WorksheetFunction.SumIfs(.Range("L:L"), .Range("H:H"), "Prête", .Range("O:O"), Range("A" & Target.Row))
Range("G" & Target.Row) = Application.WorksheetFunction.SumIfs(.Range("L:L"), .Range("H:H"), "Evaluée", .Range("O:O"), Range("A" & Target.Row))
Range("H" & Target.Row) = Application.WorksheetFunction.SumIfs(.Range("L:L"), .Range("H:H"), "Affectée", .Range("O:O"), Range("A" & Target.Row))
Range("I" & Target.Row) = Application.WorksheetFunction.SumIfs(.Range("L:L"), .Range("H:H"), "Développée", .Range("O:O"), Range("A" & Target.Row))
Range("J" & Target.Row) = Application.WorksheetFunction.SumIfs(.Range("L:L"), .Range("H:H"), "Terminée", .Range("O:O"), Range("A" & Target.Row))
End With
End If
End Sub
Cdlmnt
Via