VBA - Fonction rechercheV à appliquer
Résolu
Ecam39
Messages postés
314
Statut
Membre
-
michel_m Messages postés 18903 Statut Contributeur -
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 =>
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
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:
- VBA - Fonction rechercheV à appliquer
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Excel compter cellule couleur sans vba - Guide
- Application pour apprendre à coder - Guide
3 réponses
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
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
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:
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