VBA - Fonction rechercheV à appliquer

Signaler
Messages postés
284
Date d'inscription
jeudi 12 janvier 2012
Statut
Membre
Dernière intervention
18 septembre 2019
-
michel_m
Messages postés
16036
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
15 janvier 2020
-
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

3 réponses

Messages postés
11584
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
21 janvier 2020
1600
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
Messages postés
16036
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
15 janvier 2020
2852
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




Messages postés
16036
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
15 janvier 2020
2852
MERCI

De rien....

Adieu, Ecam, je ne t’oublierai pas