Recherchev qui ne marche pas (Désolé...)

idieordeco Messages postés 28 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 20 février 2011 - 19 oct. 2008 à 13:57
cs_thierry la fronde Messages postés 351 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 août 2009 - 27 oct. 2008 à 11:02
Bonjour,

Comme toujours, je ne sais pas ou mettre les questions VBA Excel.
Cependant le problème est simple (Pas pour moi)

J'ai un VLOOKUP qui plante :

    Nblignes = ActiveSheet.UsedRange.Rows.Count
    For i = 1 To Nblignes


    Range("k" & i).Select
    ActiveCell.FormulaR1C1 = _
    "=VLOOKUP(RC[-10],worksheets(2)!C[-10]:C[-1],10,FALSE)"


    Next i

L'erreur est en rouge. (Vu que c'est une erreur 1004)
Je veux que le VLOOKUP aille chercher les colonnes sur la deuxième feuille du classeur
J'ai essayé :"Sheet(2)","Sheets(2)","Worksheet(2)","Worksheets(2)","Workbook(2)" et "Workbooks(2)"
Mais rien !

Donc question :
Dans un VLOOKUP, comment renvoyer la deuxième feuille sans faire appel à son nom ?

Merci par avance

Bière qui roule bière qui mousse

4 réponses

cs_thierry la fronde Messages postés 351 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 août 2009
19 oct. 2008 à 14:22
bonjour,

essai avec le nom de la feuille :
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[1],Feuil2!C[-10]:C[-1],2,0)"

Ceci dit indiquer colonne complète dans la formule ne me semble pas justifier cela fait quand même 10 colonnes x 65535 lignes.
récupère uniquement ton tableau avec Selection.End(xlDown).Select et Selection.End(xlToRight).Select

thierry la fronde
0
idieordeco Messages postés 28 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 20 février 2011
19 oct. 2008 à 20:04
Merci pour ta réponse.
Je n'ai pas testé mais je pense que ça ne va pas marcher.
La feuille 2 de mon classeur a un nom aléatoire. Elle s'appelle : inventaire & range("A1").value.
le range A1 est une donnée aléatoire.

Donc, si je la ramène via feuil2, je pense que ça va foirer car ce n'est pas son nom.

Pourtant, logiquement, sheets(2) ça devrait marcher bourdel :(

Bière qui roule bière qui mousse
0
idieordeco Messages postés 28 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 20 février 2011
26 oct. 2008 à 23:03
Bon, je viens de test ta solution et ça ne marche pas.
Une autre solution en magasin ?

Bière qui roule bière qui mousse
0
cs_thierry la fronde Messages postés 351 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 août 2009
27 oct. 2008 à 11:02
bonjour,

ma formule fonctionne mais il faut passer la matrice en reférence absolue :
  ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-11], Feuil2!R1C1:R25C7 ,2,0)"

autre solution : créer une plage nommée qui correspond aux cellules voulues de la feuill2
ActiveCell.FormulaR1C1 = "=VLOOKUP(RC[-11],maListe,2,0)"
j'ai tester cela fonctionne

thierry la fronde
0
Rejoignez-nous