Sur une feuille excel, je saisie quotidiennement l'arriv=E9e de colis
pour des personnes qui sont generalement les memes.
Pour m'eviter de saisir a chaque fois le N=B0 de bureau de ces personnes
(elles, sont reconnues par excel lors de la saisie ;-) j'ai inser=E9 une
formule qui recherche dans mon propre tableau a partir de la ligne
precedente.
Le soucis, c'est que ces personnes change de bureau et meme si je
change manuellement le N=B0 lors de la saisie, les fois d'apres il me
reaffiche l'ancien N=B0 de bureau.
Cela viens t'il du fait que la recherche dans le tableau se fait de
haut en bas et m'est il possible d'inverser ce sens de fa=E7on a avoir
le N=B0 des bureaux mis a jour precedemment ?
J'espere avoir ete clair et que qqu'un pourras me renseigner, merci,
didier
A B 1 110 aa 2 112 bb 3 115 cc 4 113 dd 5 114 ee 6 113 ff 7 112 gg
Solution formule standard:
=INDEX(B1:B7;MAX(SI(D2:A7;LIGNE(INDIRECT("1:"&LIGNES(A1:A7)));0))) Valider avec Maj +ctrl+entrée
D2 contient la valeur cherchée:
Solution fonction perso:
=INDEX(B1:B7;EQUIVInv(D2;A1:A7))
Pour 113 cherché, on obtient ff
Dans un module:
Function EquivInv(v, champRech As Range) Dim temp temp = 0 For i = champRech.Count To 1 Step -1 If v = champRech(i) Then temp = i Exit For End If Next i EquivInv = temp End Function
Cordialement JB
Bonjour,
PJ: http://cjoint.com/?mCoioNZTqC
A B
1 110 aa
2 112 bb
3 115 cc
4 113 dd
5 114 ee
6 113 ff
7 112 gg
Solution formule standard:
=INDEX(B1:B7;MAX(SI(D2=A1:A7;LIGNE(INDIRECT("1:"&LIGNES(A1:A7)));0)))
Valider avec Maj +ctrl+entrée
D2 contient la valeur cherchée:
Solution fonction perso:
=INDEX(B1:B7;EQUIVInv(D2;A1:A7))
Pour 113 cherché, on obtient ff
Dans un module:
Function EquivInv(v, champRech As Range)
Dim temp
temp = 0
For i = champRech.Count To 1 Step -1
If v = champRech(i) Then
temp = i
Exit For
End If
Next i
EquivInv = temp
End Function
A B 1 110 aa 2 112 bb 3 115 cc 4 113 dd 5 114 ee 6 113 ff 7 112 gg
Solution formule standard:
=INDEX(B1:B7;MAX(SI(D2:A7;LIGNE(INDIRECT("1:"&LIGNES(A1:A7)));0))) Valider avec Maj +ctrl+entrée
D2 contient la valeur cherchée:
Solution fonction perso:
=INDEX(B1:B7;EQUIVInv(D2;A1:A7))
Pour 113 cherché, on obtient ff
Dans un module:
Function EquivInv(v, champRech As Range) Dim temp temp = 0 For i = champRech.Count To 1 Step -1 If v = champRech(i) Then temp = i Exit For End If Next i EquivInv = temp End Function
Cordialement JB
didadel
Merci JB pour la reponse
A B 1 mr X bur 01 2 mr FF bur 03 3 mr X bur 07 (nouv. bureau saisie manuellement) 4 mr X bur 01 (reponse de ma formule lors d'une nouvelle saisie)
Dans ma formule (qui se trouve en B4) : =SI( A4="";"";INDEX(A$1:B3;EQUIV(A4;A$1:A3;0);2)) Je cherche dans le tableau que constitue les lignes precedentes but je n'est pas mon nouveau bureau qui se trouve en B3 mais celui de la 1ere ligne.
Qu'en penses tu ?
merci, didier
Merci JB pour la reponse
A B
1 mr X bur 01
2 mr FF bur 03
3 mr X bur 07 (nouv. bureau saisie manuellement)
4 mr X bur 01 (reponse de ma formule lors d'une nouvelle
saisie)
Dans ma formule (qui se trouve en B4) :
=SI( A4="";"";INDEX(A$1:B3;EQUIV(A4;A$1:A3;0);2))
Je cherche dans le tableau que constitue les lignes precedentes but je
n'est pas mon nouveau bureau qui se trouve en B3 mais celui de la 1ere
ligne.
A B 1 mr X bur 01 2 mr FF bur 03 3 mr X bur 07 (nouv. bureau saisie manuellement) 4 mr X bur 01 (reponse de ma formule lors d'une nouvelle saisie)
Dans ma formule (qui se trouve en B4) : =SI( A4="";"";INDEX(A$1:B3;EQUIV(A4;A$1:A3;0);2)) Je cherche dans le tableau que constitue les lignes precedentes but je n'est pas mon nouveau bureau qui se trouve en B3 mais celui de la 1ere ligne.
La formule de base est super tant que je ne touche pas aux lignes que j'ai saisie ( je les deplace pour les mettre dans un certain ordre) ; et des lors plus rien ne vas ;-( Je pense que la fonction serais plus adaptée but j'ai mis la fonction dans module et son appel (=index.....) dans la cellule que je cherche a obtenir......rien ne se passe ;-(
Si je peu abuser une derniere fois de tes competences et apres promis j'me tais.
merci, didier
Bonjour jb et encore merci
La formule de base est super tant que je ne touche pas aux lignes que
j'ai saisie ( je les deplace pour les mettre dans un certain ordre) ;
et des lors plus rien ne vas ;-(
Je pense que la fonction serais plus adaptée but j'ai mis la fonction
dans module et son appel (=index.....) dans la cellule que je cherche a
obtenir......rien ne se passe ;-(
Si je peu abuser une derniere fois de tes competences et apres promis
j'me tais.
La formule de base est super tant que je ne touche pas aux lignes que j'ai saisie ( je les deplace pour les mettre dans un certain ordre) ; et des lors plus rien ne vas ;-( Je pense que la fonction serais plus adaptée but j'ai mis la fonction dans module et son appel (=index.....) dans la cellule que je cherche a obtenir......rien ne se passe ;-(
Si je peu abuser une derniere fois de tes competences et apres promis j'me tais.