Renvoi de valeur

  • Initiateur de la discussion Johann
  • Date de début
J

Johann

Guest
Bonjour à tous,

Je désire réaliser un pti truc mais je séche.

Avec des paramétres en feuille 1, je réalise une recherche en feuille 2, jusque la ça c'est dans mes cordes je réussi à trouver la ligne que je désire en fonction des paramétres.

Quand j'ai trouvé la dite ligne dans la feuille 2 je veux prendre les cellules de la ligne les une dérriéres les autres et renvoyer leurs valeurs dans des cellules prédéterminées en feuille 1.

Merci d'avance à ceux qui pourrons m'aider.
 
L

Lord Nelson

Guest
Bonsoir,

C'est un bon exemple de d'utilisation des formules INDEX et EQUIV :
EQUIV te donne la position de l'élément recherché dans une liste,
INDEX renvoie le contenu de la cellule recherchée et des cellules voisines.

Par exemple, si tu cherches Pierre dans une liste de noms et que EQUIV le trouve en 10e position de la liste, INDEX peut te fournir son adresse, son numéro de téléphone etc... tout ce qui ce trouvera sur la ligne 10 de la plage de cellules.

=INDEX(Liste!$A$2:$C$18;EQUIV($B$1;Liste!$A$2:$A$18;0);1)
=INDEX(Liste!$A$2:$C$18;EQUIV($B$1;Liste!$A$2:$A$18;0);2)
...

Exemple joint.

A+
LN
 
L

Lord Nelson

Guest
J'ai bien dit exemple joint mais ma souris a cliqué trop vite...
LN
 

Pièces jointes

  • Rechercher.zip
    2.1 KB · Affichages: 24
  • Rechercher.zip
    2.1 KB · Affichages: 18
  • Rechercher.zip
    2.1 KB · Affichages: 19
J

Johann

Guest
Je suis désolé mais cela ne correspond pas exactement à mon besion, malgré tout c'est super sympa.
En fait je fait ma recherche sous VBA et donc je veut continuer sous VBA pour le transfert des valeurs d'une feuille à l'autre.
 
L

Lord Nelson

Guest
Salut Johann,

Effectivement, en VBA la procédure est différente.
Tu peux passer les valeurs comme ceci, par exemple :

Range("Feuil1!A1").Value = Range("Feuil2!A20").Value
Pour reporter en Feuille 1 cellule A1 le contenu de la cellule A20 de ta feuille 2.

Si tu veux quelques cellules, il est possible de boucler avec Offset :
For I = 1 To 4
Range("Feuil1!A1").Offset(0, I).Value = Range("Feuil2!A20").Offset(0, I).Value
Next

ou bien, si tu reportes l'ensemble de la ligne :

Range("Feuil1A1").EntireRow.Value = Range("Feuil2A20").EntireRow.Value

Tu as le choix !

A+
LN
 

Discussions similaires

Réponses
26
Affichages
431

Statistiques des forums

Discussions
312 390
Messages
2 087 951
Membres
103 683
dernier inscrit
Cescodelvar