Microsoft 365 ADDITIONNER DES CELLULES AVEC CONDITIONS

ABDELHAK

XLDnaute Occasionnel
Bonjour le forum
Je sollicite à nouveau votre aide pour réaliser une macro
J’ai dans le fichier joint en colonne B des cellules avec une valeur = 1 ou vides. Et à partir de la cellule (B7984) toutes les 9 cellules, il y a une cellule à fond vert.
Je voudrais que la macro réalise les tâches suivantes :
  • Sélectionner la cellule (D7976).
  • Additionner les cellules (B7984 à B7976).
  • Sélectionner la cellule (D7967). 9 cellules plus haut
  • Additionner les cellules (B7975 à B7967).
  • Sélectionner la cellule (D7958). 9 cellules plus haut
  • Additionner les cellules (B7966 à B7958).
  • Et ainsi de suite jusqu’en haut de la feuille.
J’ai essayé d’enregistrer une macro mais je pense que la procédure sera trop longue.
Comme j’ai plusieurs fichiers, il se peut que le pas de 9 soit un pas de 8 ou de 7, etc.
Merci d’avance pour votre aide.
ABDELHAK
 

Pièces jointes

  • MD_SOMME.xlsm
    247.6 KB · Affichages: 4

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Abdelhak,
Pas tout compris à votre besoin.
Mais on peut , peut être , résoudre le problème sans macro ( voir PJ )
Le modulo se met en I1, on règle le problème des sommes par un indirect. [ =SI(A2=1;SOMME(INDIRECT("C"&LIGNE()&":C"&LIGNE()+Modulo-1));"") ]
Le modulo des lignes est donné en colonne A.
la mise en couleurs est fait en MFC par rapport à colonneA=1.
( évidemment avec le rajout de la colonne 1, B devient C et D devient E )
 

Pièces jointes

  • Copie de MD_SOMME.xlsm
    649.4 KB · Affichages: 8

ABDELHAK

XLDnaute Occasionnel
Bonjour sylvanu,
D’abord toutes mes excuses pour ma réponse tardive.
Vous avez bien compris ce que je voulais, mais je n’arrive pas à maîtriser le modulo. J’aimerais que le modulo commence à la ligne 7984. C’est à la ligne 7984 que les additions commencent.
Dans l’exemple que je vous ai envoyé, il y a un pas de 9 donc
  • la 1ière addition (D7984 à D7976)
  • la 2ième addition (D7975 à D7967).
  • Et ainsi de suite jusqu’à la 1ière ligne.
Les additions doivent toujours commencer par la ligne n° 7984.
En tout cas merci d’avoir accordé de l’attntion à mon problème.
A+
ABDELHAK
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Abdelhak,
Avez vous regardé ce que faisait le fichier ?
En 7976 vous avez la somme de 7976 à 7984 comme demandé.
J'ai rajouté des commentaires qui donnent les lignes sommées.
Je ne comprends pas où se situe le problème.
 

Pièces jointes

  • Copie de Copie de MD_SOMME.xlsm
    674 KB · Affichages: 5

ABDELHAK

XLDnaute Occasionnel
Bonjour sylvanu,
Autant pour moi, je n’avais pas compris comment utiliser cette formule. Mais. Ça y est j’ai compris , elle fonctionne très bien.
Pouvez-vous m’expliquer de manière concise, si cela est possible, comment ça marche ?.Si je sais l’utiliser par contre je ne comprends pas du tout la procédure. C’est la 1ière fois que je reçois une telle formule.
Mille merci pour votre aide précieuse.
A+
ABDELHAK
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Re,

Je n'utilise que deux fontions:
Ligne : qui donne le numéro de ligne où est inserée la formule. (https://support.office.com/fr-fr/article/ligne-ligne-fonction-3a63b74a-c4d0-4093-b49a-e76eb49a6d8d)
Indirect qui permet de passer un texte en adresse. (https://support.office.com/fr-fr/ar...fonction-474b3a3a-8a26-4f44-b491-92b6306fa261)

En colonne A je fais un incrément avec un modulo, le modulo est donné par la variable en I1. Donc à chaque fois que je trouve 1 je dois faire la somme des 9 cellules.
Ligne me donne la ligne courante
Ligne+8 me donne la fin de tableau . Ou plus généralement Ligne()+Modulo-1
Ensuite je reconstrut l'adresse par indirect :
INDIRECT("C"&LIGNE()&":C"&LIGNE()+Modulo-1))
Donc si la formule est en E7976 alors :
Ligne()=7976
Ligne()+Modulo-1=7984 ( 7976+9-1)
"C"&LIGNE()&":C"&LIGNE()+Modulo-1 me donne C7976:C7984
Indirect dit à Excel que ce n'est pas un texte mais des adresses, puis je fait somme, ce qu'XL interprète comme SOMME(C7976:C7984)
Plus le petit SI qui va bien pour n'exprimer la formule que quand en colonne A je trouve 1.

De cette façon c'est automatique, dynamique et dimmensionnable avec Modulo.
 

Statistiques des forums

Discussions
312 203
Messages
2 086 194
Membres
103 153
dernier inscrit
SamirN