probleme de recherche + vba

Le
Flex
bonjour
j'ai un problème que j'ai qualifié de "recherche" mais je sais pas trop
comment l'appeler.
je vous l'explique:
sur ma feuille excel j'ai une base de données.
dans cette bdd 3 colonnes nous interresse:
colonne1: année (contient toutes les années)
colonne2: numEtab (contient le numéro des établissements) (c'est
l'équivalent de la clé primaire)
colonne3: nomEtab (contient le nom de tous les etablissements)

le problème c'est que souvent à un même numéro d'établissement correspond
des noms différents pour des années différentes.
c'est comme si on avait
année| numEtab| nomEtab
2000| e20120 | toto
2001| e20120 | tot'o
2002| e20120 | le toto

ou
année| numEtab| nomEtab
2000| e20140 | paris
2001| e20140 | le paris
2002| e20140 | paris
2002| e20140 | paris


ce que j'aurais voulu c'est créer une procédure vba qui me retourne le nom
de l'établissement correspondant à la dernière année d'activité en fonction
du numéro de l'établissement.
pour + de détails j'affiche mes données dans un TCD et puis une sub me
copie mon tableau sur une autre feuille et c'est la qu'interviendrait la
procédure en remplacant le numéro de l'établissment par son dernier nom
connu.

Quelqu'un peut il m'aider, svp.

Merci

version: excel2003
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
isabelle
Le #3138721
bonjour Flex,

si les enregistrements sont classés en ordre croissant sur la colonne "année"
=INDEX(C:C;EQUIV("e20140E";B:B;1))

isabelle


bonjour
j'ai un problème que j'ai qualifié de "recherche" mais je sais pas trop
comment l'appeler.
je vous l'explique:
sur ma feuille excel j'ai une base de données.
dans cette bdd 3 colonnes nous interresse:
colonne1: année (contient toutes les années)
colonne2: numEtab (contient le numéro des établissements) (c'est
l'équivalent de la clé primaire)
colonne3: nomEtab (contient le nom de tous les etablissements)

le problème c'est que souvent à un même numéro d'établissement correspond
des noms différents pour des années différentes.
c'est comme si on avait
année| numEtab| nomEtab
2000| e20120 | toto
2001| e20120 | tot'o
2002| e20120 | le toto

ou
année| numEtab| nomEtab
2000| e20140 | paris
2001| e20140 | le paris
2002| e20140 | paris
2002| e20140 | paris


ce que j'aurais voulu c'est créer une procédure vba qui me retourne le nom
de l'établissement correspondant à la dernière année d'activité en fonction
du numéro de l'établissement.
pour + de détails j'affiche mes données dans un TCD et puis une sub me
copie mon tableau sur une autre feuille et c'est la qu'interviendrait la
procédure en remplacant le numéro de l'établissment par son dernier nom
connu.

Quelqu'un peut il m'aider, svp.

Merci

version: excel2003







isabelle
Le #3138691
correction :
lire décroissant au liu de croissant

isabelle


bonjour
j'ai un problème que j'ai qualifié de "recherche" mais je sais pas trop
comment l'appeler.
je vous l'explique:
sur ma feuille excel j'ai une base de données.
dans cette bdd 3 colonnes nous interresse:
colonne1: année (contient toutes les années)
colonne2: numEtab (contient le numéro des établissements) (c'est
l'équivalent de la clé primaire)
colonne3: nomEtab (contient le nom de tous les etablissements)

le problème c'est que souvent à un même numéro d'établissement correspond
des noms différents pour des années différentes.
c'est comme si on avait
année| numEtab| nomEtab
2000| e20120 | toto
2001| e20120 | tot'o
2002| e20120 | le toto

ou
année| numEtab| nomEtab
2000| e20140 | paris
2001| e20140 | le paris
2002| e20140 | paris
2002| e20140 | paris


ce que j'aurais voulu c'est créer une procédure vba qui me retourne le nom
de l'établissement correspondant à la dernière année d'activité en fonction
du numéro de l'établissement.
pour + de détails j'affiche mes données dans un TCD et puis une sub me
copie mon tableau sur une autre feuille et c'est la qu'interviendrait la
procédure en remplacant le numéro de l'établissment par son dernier nom
connu.

Quelqu'un peut il m'aider, svp.

Merci

version: excel2003







isabelle
Le #3138661
correction :
lire décroissant au liu de croissant
et
=INDEX(C:C;EQUIV("e20140E";B:B;0))

isabelle


bonjour
j'ai un problème que j'ai qualifié de "recherche" mais je sais pas trop
comment l'appeler.
je vous l'explique:
sur ma feuille excel j'ai une base de données.
dans cette bdd 3 colonnes nous interresse:
colonne1: année (contient toutes les années)
colonne2: numEtab (contient le numéro des établissements) (c'est
l'équivalent de la clé primaire)
colonne3: nomEtab (contient le nom de tous les etablissements)

le problème c'est que souvent à un même numéro d'établissement correspond
des noms différents pour des années différentes.
c'est comme si on avait
année| numEtab| nomEtab
2000| e20120 | toto
2001| e20120 | tot'o
2002| e20120 | le toto

ou
année| numEtab| nomEtab
2000| e20140 | paris
2001| e20140 | le paris
2002| e20140 | paris
2002| e20140 | paris


ce que j'aurais voulu c'est créer une procédure vba qui me retourne le nom
de l'établissement correspondant à la dernière année d'activité en fonction
du numéro de l'établissement.
pour + de détails j'affiche mes données dans un TCD et puis une sub me
copie mon tableau sur une autre feuille et c'est la qu'interviendrait la
procédure en remplacant le numéro de l'établissment par son dernier nom
connu.

Quelqu'un peut il m'aider, svp.

Merci

version: excel2003







Flex
Le #3085791
le seul hic c'est que les données sont classéees en ordre croissant
Alors comment gérer ça en vba?
merci

correction :
lire décroissant au liu de croissant
et
=INDEX(C:C;EQUIV("e20140E";B:B;0))

isabelle


AV
Le #3085711
En supposant les noms de champs en ligne 1 et les années croissantes :
Matrielle (validation par ctrl+maj+entrée)
=INDEX(nomEtab;MAX((numEtab=G1)*LIGNE(numEtab))-1)

Exemple là : http://cjoint.com/?iwqS2kqawc
Si tu le veux par vba, relance...

AV
Flex
Le #3085691
Je crois que tu m'a bien compris puisque la soluce est bonne par contre je
ne sais pas comment traduire cette formule en vba
Si tu peux m'aider.
Merci


"AV"
En supposant les noms de champs en ligne 1 et les années croissantes :
Matrielle (validation par ctrl+maj+entrée)
=INDEX(nomEtab;MAX((numEtab=G1)*LIGNE(numEtab))-1)

Exemple là : http://cjoint.com/?iwqS2kqawc
Si tu le veux par vba, relance...

AV





AV
Le #3085451
Je crois que tu m'a bien compris puisque la soluce est bonne par contre je
ne sais pas comment traduire cette formule en vba


Avec l'exemple joint et les plages nommées
(la plage contenant la valeur cherchée est nommée "ValeurCherchée")

MsgBox [index(nomEtab,max((numEtab=ValeurCherchée)*row(numEtab))-1)]

AV

Flex
Le #3085311
ok je te remercie.
je cours essayer tout ca

"AV"
Je crois que tu m'a bien compris puisque la soluce est bonne par contre
je
ne sais pas comment traduire cette formule en vba


Avec l'exemple joint et les plages nommées
(la plage contenant la valeur cherchée est nommée "ValeurCherchée")

MsgBox [index(nomEtab,max((numEtab=ValeurCherchée)*row(numEtab))-1)]

AV





Poster une réponse
Anonyme