EXCEL identifier 1ère valeur négative ds lign

Résolu/Fermé
M'zlle B - 2 févr. 2009 à 09:40
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 - 2 févr. 2009 à 15:19
Bonjour,

sur excel, j'ai une ligne de valeurs numériques :
100 200 300 -60 -1 100

et je voudrais pouvoir, sur chaque ligne trouver la première valeur négative que je trouve (en partant de la gauche).
Sur cet exemple, je voudrais pouvoir trouver et extraire le -60

Merci....
A voir également:

4 réponses

Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
2 févr. 2009 à 09:58
Salut,

Colles ce code dans un module, associse le à u, bouton et cliques sur la première cellule de la ligne puis sur le bouton.

Avec plus d'explication il sera possible de faire un balayage depuis la première ligne et le code s'arrêtera sur le premier chiffre négatif

A+
0
où est donc ce fameux code ?
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
2 févr. 2009 à 10:05
Exuse je rsuis sur plusieurs discussion en même temps

Sub test()
'Range("A1").Select
Do While ActiveCell.Value <> ""
ActiveCell.Offset(0, 1).Select
If ActiveCell < 0 Then Exit Sub
Loop
End Sub

A+
0
Bien mais pas suffisant... je voudrais pouvoir l'extraire cette première valeur négative trouvée... en fin de ligne par exemple.

Personne n'a une fonction magique pour ça ? mes utilisateurs vont être réticents à la macro !!!
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
2 févr. 2009 à 10:49
Bonjour,

Sans macro

formule matricielle à valider par Ctrl=maj+entree (et non par entrée comme d'hab), le curseur étant dans la barre de cellule
=MIN(SI(A1:M1<0;COLONNE(A1:M1)))

Pour blinder au cas où il n'a pas de valeur négative:
=SI(MIN(A1:M1)>=0;"";MIN(SI(A1:M1<0;COLONNE(A1:M1))))
toujours en matricielle
0
MERCI.... je m'en sors avec des SI....

=SI(A5<0;A5;SI(B5<0;B5;SI(C5<0;C5;SI(D5<0;D5;""))))

limite : il ne faut pas avoir plus de 8 "SI" successifs ! oufff c'est le cas. mais merci quand même...

ça m'a permis de découvrir les formules "matricielles" !!!!
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073 > M'zlle B
2 févr. 2009 à 15:19
Effectivement dans une imbrication mieux vaut ne pas dépasser sept conditionnelle SI, mais dans la même formule il est possible de relancer plusieurs imbrication de sept SI, exemple la formule ci dessous enchaine 14 SI mais on pourrait aller beaucoup plus loin
Pour la tester, la coller dans une cellule et saisir en A1 un chiffre de 1 à 14

=SI(A1=1;"un";SI(A1=2;"deux";SI(A1=3;"trois";SI(A1=4;"quatre";SI(A1=5;"cinq";SI(A1=6;"six";SI(A1=7;"sept";"")))))))&SI(A1=8;"huit";SI(A1=9;"neuf";SI(A1=10;"dix";SI(A1=11;"onze";SI(A1=12;"douze";SI(A1=13;"treize";SI(A1=14;"quatorze";"")))))))

mets un exemple de ton fichier sur le forum avec des anotations que l'on comprenne tes attentes (avec ce lien)

https://www.cjoint.com/

A+
0
Mike-31 Messages postés 18313 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 21 avril 2024 5 073
2 févr. 2009 à 13:09
Re,

Lorsque tu parles d' extraire, que veux tu dire la couper et la mettre en fin de ligne ou simplement un copier et coller de cette valeur en fin de ligne

Si on fait en couper de cette valeur négative, la deuxième valeur négative sur la ligne devient première, que fait on

Et ces valeurs sont des valeurs saisies ou le résultat d'une formule, le code n'est pas le même

A+
0