Mise à jour de ligne

Bonjour j'aimerai savoir quelle formule utiliser pour mettre à jour ma colonne qui comportera le dernier numéro inscris sur la ligne sans compter 0. Merci.

Un exemple vaut mieux que des mots.

Florian

12exemple-2.xlsx (12.03 Ko)

bonjour,

pour ton exemple, dans la cellule S11 met cette formule et tire la cellule vers le bas:

=INDEX(E11:Q11;1;NB.SI(E11:Q11;"<>0");1)

tiens nous au courant

Merci de ta réponse mais la formule n'est pas celle que je recherche. La tienne m'indique VRAI à chaque fois.

Il me faut le dernier chiffre de la ligne sans prendre en compte 0. DOnc si j'ai 5,6,8 et 0 le dernier à indiquer dans ma colonne réponse est 8

Merci

pourtant cette formule renvois bien le résultat escompté.

voir fichier image joint.

il faudrait voir dans les paramètres d'Excel, je suis pas sur.

capture1

Bonjour,

Ci-joint fichier qui correspond à la réponse de rvtoulon.

Ca fonctionne parfaitement

Cdlt

6exemple-2.xlsx (11.36 Ko)

Effectivement ça fonctionne merci, je sais pas pourquoi la première fois ça n'a pas fonctionné.

Sinon en plus de sans compter les 0 peut-on sans compter le texte aussi ? Car c'est celle qui me faudrait en fait car entre chaque colonne j'ai un commentaire qui prend une colonne, c'est alternée. Un exemple en fichier

Merci, Beaucoup, Florian

12exemple-2.xlsx (11.65 Ko)

Des idées ?

Merci, Florian

par formule je ne sais pas mais par vba oui:

Une fonction perso a mettre dans un module :

Function marecherche(maplage As Range) As Double
Dim vresultat As Double

For Each c In maplage
If IsNumeric(c) And c <> 0 Then vresultat = c.Value
Next c

marecherche = vresultat

End Function

puis dans la cellule ou tu veux la résultat par exemple S11 dans ton fichier mettre:

=marecherche(E11:Q11)

il suffit ensuite de tirer la formule vers le bas.

tiens moi au courant

EDIT:

je met le fichier exemple corrigé:

9exemple-2.xlsm (19.36 Ko)

Merci de ta réponse. Le seul problème c'est que dans mon cahier des charges, je ne dois pas utiliser VBA ni de macro, ou alors quelles ne soient pas dures d'utilisation, en gros que l'on ai rien à faire en plus pour que ça fonctionne au lancement du document.

Je vais en parler avec les personnes en relation avec moi, si on peut utiliser ton code. Sinon, il faudra une formule comme du style INDEX mais sans prendre en compte les 0 et le texte.

Merci, Florian

Bonjour,

Une solution avec données validation, qui n'autorise que la saisie d'un nombre décimal compris entre 0 et 10.

Cdlt

Merci de ta reponse, mais il faut que je puisse insérer du texte à tout moment car dans mon fichier très similaire à mon exemple, les colonnes sont 1 à 2 commentaires/notes. La formule index pourrais correspondre si dans la plage que l'on donne, on autorise pas la prise en compte du texte :

Si j'ai .................. | 6 | 8 | ok | 0 |........................ 0 pas pris en compte, ok pas pris en compte , 8 pris en compte donc...................| 8 |

Alors qu'avec ta solution, cela pourrait être ça si on à le droit d'ajout de texte et qu'il ne soit pas pris en compte.

J'espère avoir été assez clair dans mes explications.

Merci, je suis vraiment en galère pour cette tâche.

Florian

Des solutions, si vraiment pas, j'essayerai VBA alors :/

Florian

Bonjour,

Cela revient donc à utiliser la fonction personnalisée proposée par Rvtoulon dans un post précédent.

C'est le plus simple et le code est compréhensible.

Cdlt.

Option Explicit
Public Function marecherche(maplage As Range) As Double
Dim vresultat As Double
Dim c As Range

    For Each c In maplage
        If IsNumeric(c) And c <> 0 Then vresultat = c.Value
    Next c

    marecherche = vresultat

End Function

Très bien, parcontre ne connaisant absolument pas VBA, comment dois-je m'y prendre, pour mettre la formule, l'utiliser etc ... Quelles démarches suivre, car à la fin, ce "logiciel" (par son automatisation que je lui aurait apporté) sera pour des novices d'excel, donc je ne veux pas d'un interface compliqué. Je veux aller au plus simple, c'est pour cela que je ne voulais pas de VBA, c'était mon cahier des charges.

Mais si j'en ai besoin alors tant pis. D'où ma question, n'en ayant jamais fait, comment s'y prendre ?

Je vous remercie, Florian

Re,

Ci-joint ton fichier modifié avec la fonction personnalisée.

A te relire si besoin de + d'infos.

Cdlt

8exemple-2-vba.xlsm (20.74 Ko)

Bonjour Jean-Eric, symbiiote,

Jean-Eric merci pour ce fichier, il est mieux commenté que le mien.

Je pense aussi que la solution VBA est dans ce cas la plus pratique et la plus souple.

Je suis sur que des génies d'Excel pourraient trouver une formule du genre matricielle qui correspondrait au besoin mais avec les contraintes qu'elles posent.

Symbiiote, en fait ce code est simple:

il parcours chaque cellule de la plage définie dans la formule ici "marecherche()".

si la cellule contient une valeur numérique et si cette valeur est différente de 0 alors je donne à ma variable résultat le contenu de cette cellule.

A chaque passage dans la boucle il vérifie les conditions si elles sont remplis il remplace le contenu de la variable par le nouveau contenu.

A la fin de ma boucle j'ai donc dans ma variable la dernière valeur numérique autre que 0.

je renvois dans ma formule le contenu de ma variable.

voilà en gros ce que fait le code.

si tu suis les instructions de Jean-Eric tout ira bien.

Toutefois je pense qu'il faudra sur les postes qui utiliseront ce fichier permettre l'utilisation des macros.

Très bien merci beaucoup de cette indication détaillée. Par contre la formule VBA, comment je vais pour l'insérer ? Enfin comment l'implanter ?

Merci

Re,

Peux-tu reformuler tes 2 questions?

Et as-tu plusieurs classeurs qui utiliseront cette fonction?

Cdlt

J'ai un seul classeur de 20-25 pages dont 20 qui utiliseront cette formule. J'aimerai juste savoir comment implanté du VBA dans Excel, je n'ai jamais fais ça auparavant.

Merci, florian

voici le principe

Dans ton classeur, tu appuies sur les touches ALT+F11.

ça va ouvrir la fenêtre VBA.

Ensuite tu clic sur INSERTION puis MODULE

tu copies le code qu'on ta fournis et le colles dans la page blanche à droite là ou le curseur clignote.

et voilà le code est en place.

ensuite dans ta feuille de calcul dans la cellule ou tu veux le résultat tu mets la formules:

=marecherche(E11:Q11)

biensur tu adapteras la plage en fonction de tes besoins. peux importe le nombre de feuilles du classeur la formule "marechercher()" sera valide pour tout le classeur. il faudra l'appeler comme tu appellerais une formule "somme()".

n'oublie pas d'enregistrer ton ficher au format XLSM format qui prend en charge les macros

Rechercher des sujets similaires à "mise jour ligne"