Probléme utilisation Vlookup dans tableau

Bonjour,

Je commence en précisant que je débute avec VBA.

Mon problème est le suivant: j'ai crée 2 tableaux de 3 colonnes,

J'ai affecté avec succès des valeurs à mon premier tableau.

J'ai également attribué des valeurs a la première colonne de mon second tableau.

Je souhaite avec la fonction vlookup, recherché pour chaque case de la première colonne du tableau 2, une valeur proche dans la première colonne du tableau 1.

Ceci afin de récupéré la valeur présente dans la 3éme colonne du tableau 1 est l'attribué a la 3eme colonne du tableau2.

voici la ligne posant problème: (K étant l'indice de la boucle)

tabl2(k, 2) = Application.WorksheetFunction.VLookup(tabl2(k, 0), tabl1, 2, True)

l'erreur est la suivante erreur 1004 : impossible de lire la propriété VLookUp

Cela fait un bout de temps que je cherche sur le net sans trouver de solutions, une réponse serait vraiment très bien venu.

Je ne vois pas de problème. Envoie un classeur exemple.

Tu pourrais tout aussi bien faire un find, puisque l'avantage de tes tableaux c'est que décaler de deux colonnes tu sais faire, aucun intérêt de faire un vlookup.

tu findes dans ton tableau et du prend le deuxieme indice.

OK, merci pour ta réponse rapide.

J'essaie avec find et je vois si sa résous le problème.

Rebonjour,

D’après ce que j'ai compris avec la méthode find on ne peut pas trouver une valeur approché comme avec vlookup, Du coup j'ai pas réussi.

Je te joint le fichier xls comportant le code, c'est le fichier Imax.xls. (Je ne suis qu'au début du code,il me reste encore pas mal de chose a ajouter)

Je te joint également le fichier ou ce que je veut coder(automatiser) et sous forme de feuille excel, car sa te permettra de voir ce que je veut faire. Le tableau 1 correspond au colonne A,B,C et le tableau 2 correspond au colonne F,G,H de la feuille pluie_pas_fixe_periode_intensite.xls (je ne suis pas le rédacteur de cette feuille, je cherche a automatiser sont contenu)

Et encore merci pour ton aide

29imax.xlsm (19.45 Ko)

Si le vlookup ne trouve pas ta valeur il va déclencher une erreur. Ce qui est normal ton tableau2 est vide en 0

On Error Resume Next
  For k = 0 To Ltabl2
       If k = 0 Then
        tabl2(k, 0) = Range("a" & debut)
        Else
        tabl2(k, 0) = tabl2(k - 1, 0) + 1 / 1440
        End If
        tabl2(k, 2) = Application.WorksheetFunction.VLookup(tabl2(k, 0), tabl1, 2, True)
        If k = 0 Then
        tabl2(k, 1) = tabl2(k, 2)
        Else
        tabl2(k, 1) = tabl2(k, 2) - tabl2(k - 1, 2)
        End If
  Next

Lorsque tu dis ton tableau est vide tu parle de la colonne 0 ou de la ligne 0?

Si c'est de la colonne 0 dont il s'agit j'ai essayé avec msgbox il me renvoi une valeur pour la colonne 0 (les valeurs sont donc copié correctement pour la colonne 0), la colonne 1 est vide,

Pour pouvoir eviter d'avoir une erreur sur vlookup j'ai enlevé WorksheetFunction

tabl2(k, 2) = Application.WorksheetFunction.VLookup(tabl2(k, 0), tabl1, 2, True)

Mais bien que sa n’affiche pas d'erreur pour cette ligne ce n'est pas pour autant que ça fonctionne

tabl2(k, 2) = Application.VLookup(tabl2(k, 0), tabl1, 2, True)

la colonne 2 (colonne ou j'utilise vlookup) génère une erreur d'execution 13 'incompatibilité de type' avec msg box.

bonjour,

Le problème est résolu. J'ai utilisé une bonne vieille boucle en lieu et place de la fonction excel qui posait problème.

   For l = 0 To UBound(tabl1)
   If tabl2(k, 0) < tabl1(l, 0) Then
   Exit For
    End If
   tabl2(k, 2) = tabl1(l, 2)
   Next

Te remerciant pour ton intérêt engueengue

Rechercher des sujets similaires à "probleme utilisation vlookup tableau"