VBA - Fonction rechercheV à appliquer

Résolu
Ecam39 Messages postés 314 Statut Membre -  
michel_m Messages postés 18903 Statut Contributeur -
Bonsoir,
Après quelques recherches, forcé de constater que je n'arrive pas à comprendre comment appliquer la recherche V en vba dans mon cas :

J'ai un tableau (à nombre de ligne variable) dont en dernière colonne, je souhaite ajouter une valeur se trouvant dans un autre onglet.

J'ai essayé d'utiliser cette méthode =>
Sub recherchev()

Dim f As Long

'N° de ligne où démarre la boucle
f = 1

'Finir la boucle jusqu'à la 1ere cellule vide
Do Until Sheets("import").Cells(f, 1) = ""
f = f + 1


Sheets("import").Cells(f, 2) = Application.WorksheetFunction.VLookup(Sheets("import").Cells(f, 1), Sheets("fam").Range("a2:b10"), 2, False)

Loop

End Sub


Tout bêtement je bloque sur la case de départ. Sur excel on tape la formule dans le case où l'on veut afficher la valeur et on étire. sur la vba je ne sais pas la traduire, même avec une boucle.

Merci pour votre aide

Configuration: Windows / Chrome 76.0.3809.132
A voir également:

3 réponses

michel_m Messages postés 18903 Statut Contributeur 3 317
 
MERCI

De rien....

Adieu, Ecam, je ne t’oublierai pas
1
via55 Messages postés 14730 Statut Membre 2 749
 
Bonsoir

Au lieu de Do until tu peux détecter la dernière cellule remplie et faire une boucle For Next depuis la ligne de ton choix jusqu'à la dernière
Exemple à adapter
https://mon-partage.fr/f/O7gZVGjz/

Cdlmnt
Via
0
michel_m Messages postés 18903 Statut Contributeur 3 317
 
Bonjour Ecam, Via

Tu déclares F as long --> F>65236 , das ce cas il faudrait utiliser un autre type de macro.

d'autre part il faut tester si la cellule cells(f,x) existe bien dans la colonne A feuile fam

proposition à adapter sans utilisation de rechercheV( non nécessaire dans ce cas en VBa)
https://mon-partage.fr/f/ODnIUA2Z/

le code:
Option Explicit
'------------------------------------------------------------
Sub Ecam_ccm()
Dim Lig As Byte, Ligvid As Byte, Nom As String
    
    'fige le défilement de l'écran (confort des yeux, rapidité)
    Application.ScreenUpdating = False
       
    With Sheets("Feuil1")
         'trouve la 1° ligne vide dans colA
        Ligvid = .Columns("A").Find("", .Range("A1"), xlValues).Row
        'Boucle de recherche dans feuil2
        For Lig = 1 To Ligvid
            Nom = .Cells(Lig, "A")
            'teste la présence de "nom" dans la feuil2 col A
            On Error Resume Next
                .Cells(Lig, "B") = Sheets("Feuil2").Columns("A").Find(Nom).Offset(0, 1)
       Next
    End With
End Sub




0