XL 2016 Passer en paramètre la zone de plage de cellules

Xavlh76

XLDnaute Nouveau
Bonjour à tous,

Avant tout, merci pour ce forum, source d'inspiration et super travail.
Je viens vers vous aujourd'hui car je bloque sur quelque chose qui est peut-être tout simplement pas faisable.

Voilà le sujet.
Je souhaite faire la somme des valeurs numériques uniquement avec un effet cumulé en colonne D, mais afficher le résultat uniquement lorsque un nombre se trouve en colonne A. Pour cela j'ai besoin de créer un décalage et récupérer la dernière ligne de somme lorsque je tombe sur un séquence de texte.

1643699780331.png

Je cherche donc à tester si ma ligne de la colonne B contient du texte ou un chiffre.
Si elle contient un nombre, je fais ma somme en récupérant la valeur précédente. (si vide, il faut que je trouve la dernière valeur calculée)
Si elle contient un texte, il faut que je compter le nombre d'occurrences identiques sur les lignes suivantes depuis la position de la ligne en cours.
- pour ce faire, je souhaitais utiliser la fonction NB.SI(zone;"rien") en passant la zone matricielle en paramètre.
- En gros je cherche comment je peux remplacer le B5:B15 par Nb.si( "numero de la ligne en cours":"num de la dernière ligne du tableau" ;"rien")

Est-ce possible ?
Si pas possible, avec vous une idée de génie pour résoudre ce problème.
J'avoue que là je sèche.

Merci d'avance pour votre aide.
Xavier
 

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Xavlh76, et bienvenu sur XLD,
Par pitié prenez l'habitude de donner un fichier test, cela éviterait de se le retaper.
En PJ une piste possible avec :
VB:
NBR:      =SI(ESTNUM(B2)=FAUX;NB.SI(B3:B27;"*");"")
Somme:    =SI(ESTNUM(B2);MAX($D$1:D1)+B2;"")
Mais par rapport à votre exemple il y a des différences :
1- Somme ligne 14, je trouve 60 ( 58+2), comment trouvez vous 30 ?
2- NBR ligne 12, je trouve 0 car pas de "rien" après. Comment trouvez vous 1 ?
Mais au moins cela fait avancer les choses. :)
1643701773550.png
 

Pièces jointes

  • Classeur1.xlsx
    9.6 KB · Affichages: 2

Xavlh76

XLDnaute Nouveau
Bonjour Xavlh76, et bienvenu sur XLD,
Par pitié prenez l'habitude de donner un fichier test, cela éviterait de se le retaper.
En PJ une piste possible avec :
VB:
NBR:      =SI(ESTNUM(B2)=FAUX;NB.SI(B3:B27;"*");"")
Somme:    =SI(ESTNUM(B2);MAX($D$1:D1)+B2;"")
Mais par rapport à votre exemple il y a des différences :
1- Somme ligne 14, je trouve 60 ( 58+2), comment trouvez vous 30 ?
2- NBR ligne 12, je trouve 0 car pas de "rien" après. Comment trouvez vous 1 ?
Mais au moins cela fait avancer les choses. :)
Regarde la pièce jointe 1129391
Bonjour Sylvanu, et merci pour la réponse,
Désolé pour le fichier test, j'y penserais la prochaine fois, j'ai juste créé le tableau comme exemple.

Pour répondre à la remarque 1 - erreur de frappe, j'avais même pas vu que j'avais tapé 30 au lieu de 60 :p Mon dieu, voilà que je sais plus compter :)

Pour la remarque 2, en fait la colonne C n'est qu'un visualisation, je compte le nombre de fois ou je trouve rien sur les autres lignes depuis la ligne où je me trouve. Le but étant d'afficher un blanc à la place de répéter 31 en somme sur la ligne 5, 6, 7, 8 et reprendre le calcul qu'en ligne 9. etc

Je suis pas expert en code VB, c'est pourquoi je demandais si quelqu'un avait une idée en utilisant les fonctions EXCEL de base.
 

Xavlh76

XLDnaute Nouveau
Bonjour Xavlh76, et bienvenu sur XLD,
Par pitié prenez l'habitude de donner un fichier test, cela éviterait de se le retaper.
En PJ une piste possible avec :
VB:
NBR:      =SI(ESTNUM(B2)=FAUX;NB.SI(B3:B27;"*");"")
Somme:    =SI(ESTNUM(B2);MAX($D$1:D1)+B2;"")
Mais par rapport à votre exemple il y a des différences :
1- Somme ligne 14, je trouve 60 ( 58+2), comment trouvez vous 30 ?
2- NBR ligne 12, je trouve 0 car pas de "rien" après. Comment trouvez vous 1 ?
Mais au moins cela fait avancer les choses. :)
Regarde la pièce jointe 1129391
Je ne connaissais pas cette fonction MAX, je te remercie, ça fait le job bien plus facilement que ce que je voulais faire. Au top !
 

Discussions similaires