Je rencontre des problèmes avec VLOOKUP dans mon VBA. Voici un exemple du code que je utilise:VBA VLOOKUP Convertir en valeurs Donne # N/A
Sub Macro15()
'
' Macro15 Macro
Dim LR As Long
LR = Cells(Rows.Count, "A").End(xlUp).Row
Range("B1:B" & LR).FormulaR1C1 = _
"=VLOOKUP(RC[-1],'https://internal_sharepoint_address
/[Vendor_Information.xlsx]Sheet1'!R3C3:R150C18,4,FALSE)"
Range("C1:C" & LR).FormulaR1C1 = _
"=VLOOKUP(RC[-2],'https://internal_sharepoint_address
/[Vendor_Information.xlsx]Sheet1'!R3C3:R150C18,5,FALSE)"
With Range("B1:C" & LR)
.Value = .Value
End With
End Sub
Le problème est que les valeurs dans les colonnes B & C (les formules RECHERCHEV) renvoient une valeur de # N/A.
Cependant, si j'arrête le code avant la conversion de la formule de valeurs (l ' « Avec Range (» B1: C « & LR) » ligne), la formule RECHERCHEV renvoie les valeurs correctes .
Étrange aussi - si j'efface le contenu des colonnes B & C et réexécute le code ci-dessus, les valeurs retournent bien. Si j'essaye d'ajouter un deuxième cycle à la VBA, cependant, cela ne fonctionne PAS. Toute la sagesse que n'importe qui peut fournir serait une aide énorme. Je suis coincé là-dessus depuis longtemps, et je suis juste à la fin de mon esprit.
Merci à tous, David
Salut Brad - Merci pour la réponse rapide! J'ai donné un coup de feu, en ajoutant Application.Calculate (et plus tard, Application.CalculateFull) juste avant le "Avec Range (" B1: C "& LR)" code, mais toujours pas de dés. D'autres idées? – David
@David: pas sûr, mais j'imagine que récupérer des données de recherche à partir d'un classeur lié sur un site Sharepoint prendrait un certain temps. Peut-être ajouter des boucles de délai? Pouvez-vous faire deux macros séparées (une finissant avec les formules, et une deuxième commençant aux valeurs de collage), et les exécutent séparément avec une pause entre les deux? – BradC
Brad, tu es officiellement mon héros. Ça a marché; en augmentant le VLOOKUP au début du code (c'était juste une petite partie de la macro), et en exécutant une deuxième macro pour les convertir en valeurs travaillées! Je vous remercie beaucoup pour votre aide!!!! – David