OVH Cloud OVH Cloud

Chercher le dernier élément dans une liste

13 réponses
Avatar
GL
Bonjour,

J'ai une liste comme ceci :

<pos.> <numéro>
1 1
2 2
3 3
4 4
5 5
6 6
7 1
8 2
9 3
10 4
11 1
12 2
13 3
14 4
15 5

Et je me propose de trouver la position du dernier 4
dans la liste <numéro>.

Je viens de trouver sur le net : {=EQUIV(2;CHERCHE(4;<plage numéro>);1)}
qui donne bien: 14.

J'en reste baba ;-) et je voulais vous faire partager cette
connoissance fondamentale !

Bonne journée.

3 réponses

1 2
Avatar
GL
Le 08/11/2014 16:32, Jacquouille a écrit :
Mon Bon Denis
La politique actuelle étant le laxisme, on n'arrête plus les gens. -))
Voici une autre solution qui a dépoussiéré mon neurone
----------------
Sub Le_dernier()
derL = [A65536].End(3).Row
For zz = derL To 1 Step -1
If Range("a" & zz).Value = 4 Then
MsgBox zz: Exit Sub
End If
Next
End Sub



1/ Ca va être hyper-lent
2/ Il faut me souvenir de 'Le_dernier'
3/ Ce n'est pas portable

Bref, avec le temps, j'en suis venu à la conclusion qu'il faut faire
les calculs avec les fonctions natives UNIQUEMENT (sauf impossibilité :
typiquement la matrice identité...)

Cdt.
Avatar
Jacquouille
Dois-je répondre ?

1) à quoi ça sert de gagner (???) quelques secondes, si c'est pour perdre un
quart d'heure après pour savoir si on colorie en rouge ou en vert. Cette
notion de "vitesse" m'a toujours fait sourire
2) un petit bouton, judicieusement placé, pourrait commander le
déclenchement de la macro. Celle-ci pourrait être adaptée sous forme de
dialogue demandant quel est le texte dont il faut retrouver la dernière
position.
3) ce n'est pas portable. Jargon moderne ne voulant rien dire à mes yeux. On
peut utiliser cette macro au même titre qu'une formule, là où on le désire.
4) cette réponse n'est ni encourageante, ni constructive, ni gratifiante.
Aah, Ducros, comme je te comprends.

En vertu de cela, je clos donc ce fil définitivement.

Jacques.

Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"GL" a écrit dans le message de groupe de discussion :
545e5fd1$0$2308$

Le 08/11/2014 16:32, Jacquouille a écrit :
Mon Bon Denis
La politique actuelle étant le laxisme, on n'arrête plus les gens. -))
Voici une autre solution qui a dépoussiéré mon neurone
----------------
Sub Le_dernier()
derL = [A65536].End(3).Row
For zz = derL To 1 Step -1
If Range("a" & zz).Value = 4 Then
MsgBox zz: Exit Sub
End If
Next
End Sub



1/ Ca va être hyper-lent
2/ Il faut me souvenir de 'Le_dernier'
3/ Ce n'est pas portable

Bref, avec le temps, j'en suis venu à la conclusion qu'il faut faire
les calculs avec les fonctions natives UNIQUEMENT (sauf impossibilité :
typiquement la matrice identité...)

Cdt.
Avatar
GL
Le 08/11/2014 20:30, Jacquouille a écrit :
Dois-je répondre ?



Je réponds quand même, car ça s'impose à mes yeux.

1) à quoi ça sert de gagner (???) quelques secondes, si c'est pour
perdre un quart d'heure après pour savoir si on colorie en rouge ou en
vert. Cette notion de "vitesse" m'a toujours fait sourire



- Je n'ai pas de problème à attendre 5 secondes pour les couleurs et
autres enjolivures. En revanche, pour les calculs, définitivement si.

- Les enjolivures, je les fais à la fin. Les calculs, ils sont faits à
chaque fois que je modifie mes valeurs.

- C'est terrible de voir qu'une macro sur WinEdt qui reproduit le
calcul d'Excel va beaucoup plus vite qu'Excel lui même ! Vous ne
trouvez pas ?

2) un petit bouton, judicieusement placé, pourrait commander le
déclenchement de la macro. Celle-ci pourrait être adaptée sous forme de
dialogue demandant quel est le texte dont il faut retrouver la dernière
position.
3) ce n'est pas portable. Jargon moderne ne voulant rien dire à mes
yeux. On peut utiliser cette macro au même titre qu'une formule, là où
on le désire.



- Ca veut très exactement dire, dans ce cas, que si je recopie la
formule dans un autre classeur, cela ne marche plus.

De plus, si un autre Excel a des paramètres "de sécurité" différents,
cela ne marchera pas non plus.

4) cette réponse n'est ni encourageante, ni constructive, ni
gratifiante. Aah, Ducros, comme je te comprends.

En vertu de cela, je clos donc ce fil définitivement.

Jacques.



Voilà. J'ai utilisé mon droit de réponse. Je n'ai rien à ajouter.

Bon weekend.
1 2