Extraire la premiere valeur négative excell

Fermé
robin - 27 oct. 2010 à 14:29
 robin - 28 oct. 2010 à 23:00
Bonjour,
je ne maitrise pas du tout le code excel pour creer une macro et j'ai des fichiers a analyser sous excel (2007) , dans chaque fichier il y a une colonne de position en degrés (obtenue par une formule de multiplication de deux cellules il parait que c est important de le dire...) et a coté une colonne de nombres positifs sauf deux séries de valeurs négatives, et je voudrais pouvoir trouver directement la premiere valeur négative de chacune de ces séries et la valeur de position correspondante (et les faire copier coller directement en haut du fichier pour pouvoir en faire un nouveau tableau).
Chaque fichier comporte au moins 1500 valeurs par colonne...
merci d avance
Robin

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
Modifié par Mike-31 le 27/10/2010 à 14:54
Salut,

Si j'ai bien compris, tu cherche à afficher la première valeur inférieure à 0 parmis des valeurs positives et négatives

formule matricielle à confirmer en appuyant en même temps sur Ctrl, Shift et Entrée
=MAX(SI(A1:A30<0;(A1:A30);""))

si tu le fais correctement, la formule se mettra entre {}

comme ceci
{=MAX(SI(A1:A30<0;(A1:A30);""))}

et si tu souhaites retrouver la première valeur négative 0 compris ajoute = entre < et 0 comme ceci <=0
A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
merci de ta rep
en fait je cherche la cellule correspondante (de la colonne E) à la premiere cellule negative d une colonne (de la colonne B), le probleme etant qu'il y a deux séries négatives par fichier, et j aimerais avoir la cellule correspondante a la premiere cellule negative de chaque série.
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
27 oct. 2010 à 15:09
Re,

Difficile à cerner, pourrais tu mettre ton fichier sur un lien sans notes confidentielles, avec ce lien

https://www.cjoint.com/
0
https://www.cjoint.com/c/2kBponWB7in
voila le lien,j ai mis en rouge et en vert les deux valeurs que j aimerais retrouver automatiquement
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
Modifié par Mike-31 le 27/10/2010 à 16:04
Re,

pour la première formule, le chiffre en vert n'est pas le premier négatif de la liste, c'est celui qui est sur la ligne inférieure idem pour la deuxième

et la formule est

=RECHERCHEV(MAX(SI(C23:C1722<0;(C23:C1722);""));C37:E1722;3;0)
formule matricielle à confirmer Ctrl+Shift+Entrée)

pour la seconde valeur, soit tu limites chaque zone de recherche
première formule
=RECHERCHEV(MAX(SI(C23:C556<0;(C23:C556);""));C37:E556;3;0)
deuxième formule
=RECHERCHEV(MAX(SI(C556:C1722<0;(C556:C1722);""));C556:E1722;3;0)

ou on recherche une formule plus complexe si les plages sont variables

A+
Mike-31

Une période d'échec est un moment rêvé pour semer les graines du savoir.
0
merci bcp de tn aide (il me semble que le chiffre en vert est le premier negatif de la liste (pas forcément le premier ou les valeurs changent mais bien le premier négatif...) et ensuite oui les plages changent constamment étant donné que les valeurs négatives correspondent à un moment ou les sujets d une etude appuient sur un bouton poussoir(donc jms au mm moment......dsl si je te fais chercher des trucs encore plus complexes!!!)
0
ta formule est tres interessante...mais elle me donne a chaque fois la premiere valeur minimale je pense(la cellule en dessous de celle que je voudrais avoir a chaque fois...c presque parfait en tt cas...je pourrais me debrouiller avec ca si la cellule donnée correspondait je m arrangerais pour séparer les plages de donnée et balancer les formule dans tous les tableaux que je dois analyser)
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
Modifié par michel_m le 27/10/2010 à 16:13
Bonjour,

j'ai hésité avec des matricielles sur 1500 lignes

Ci joint macro avec le moyens du bord: fichier illisible pour les gens n'ayant pas les moyens de se payer office 2007
valable quelque soit le nombre de groupes négatifs

Const lig As Byte = 2 'ligne de départ 
Sub premiers_negatifs() 
Dim derlig As Integer 
Dim liste, retour 
Dim cptr As Integer, cptr_t As Byte 

derlig = Range("B3000").End(xlUp).Row 
ReDim retour(1, 0) 
liste = Application.Transpose(Range("B" & lig & ":B" & derlig).Value) 

For cptr = 1 To UBound(liste) 
    If cptr = UBound(liste) Then Exit For 
    If liste(cptr) >= 0 And liste(cptr + 1) < 0 Then 
    ReDim Preserve retour(1, cptr_t) 
    retour(0, cptr_t) = liste(cptr + 1) 
    retour(1, cptr_t) = "B" & cptr + lig 
    cptr_t = cptr_t + 1 
    End If 
Next 
Application.ScreenUpdating = False 
Range("E" & lig).Resize(cptr_t, 2) = Application.Transpose(retour) 
End Sub


piece jointe:
http://www.cijoint.fr/cjlink.php?file=cj201010/cijtbmLP4y.xls


Pour Mike31:
salut,
vaut mieux passer par cijoint.fr que par cjoint; avec cijoint.fr, on peut lire les fichiers 2007 avec la visionneuse microsoft
Michel
0
je ne dois pas utiliser excel correctement...puisqu'il me repond erreur d'execution 1004(c'est la premiere fois que j'utilise les macros...et dire que dans les cours g eu des cours d'excel l'an dernier et que le prof ne sait pas les utiliser non plus.......)merci de votre aide en tout cas.
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
27 oct. 2010 à 17:07
re,

sur quel classeur as tu essayé ? le tien ou le mien ?

sur quelle ligne se produit l'erreur ? tu vas dans VBE par Alt+F11, tu lances la macro par execution -executer sub et tu regardes où ca s'arr^te

tu peux remettre en pièce jointe en enregistrant au format xl 97-2003
0
j ai essayé sur le mien ca ne marche pas ca me dit erreur 1004 alors que sur le tien ca marche c est la derniere ligne du copier coller qui ne marche pas apparement (celle qui apparait en surligné en jaune sur le debogueur) mais sur ton classeur ca ne pose aucun probleme pour trouver les cellules qu il faut...j abuse encore un peu est ce qu il serait possible avec la meme macro de copier coller les cellules qui correspondent d une autre colonne en plus de celle ci (colonne E en plus de la colonne B dans mon classeur...en plus de la cellule choisie)
http://www.cijoint.fr/cjlink.php?file=cj201010/cijeqk9MR0.xlsx (excel 2007)
http://www.cijoint.fr/cjlink.php?file=cj201010/cijmmDHgOA.xls (excel 97 - 2003)
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
Modifié par michel_m le 28/10/2010 à 07:14
Bonjour,
tu demandes les 1° négatifs.
Dans ta colonne C tu as plusieurs changements (onze) de positif à négatif par ex lignes 534,538,540, 543....
et non 2 comme tu l'indiques (vert et rouge)
alors, comment détermines tu la valeur rouge ?????

ci joint ton classeur avec les lignes en question...
http://www.cijoint.fr/cjlink.php?file=cj201010/cijH43P3zY.xls
0
ah mince c'est vrai que le voltage fluctue autour de 0 lorsque le sujet appuie, la valeur rouge est donc le 1er négatif de la deuxieme série (apres que le voltage soit revenu a 1,3.....).je ne sais pas si c'est mieux expliqué. ca devrait etre le premier négatif au dela de la 1000eme cellule normalement dans tous les fichiers.
0