Bonjour à tous,
Je voudrais utiliser une recherchev en VBA en utilisant Application.Vlookup pour enrichir une base de données.
Le but du jeu étant, dans un fichier de plus de 100 000 lignes et des dizaines de colonnes, de gagner du temps par rapport à l'utilisation du .Formula = Vlookup.... puis collage valeur.
Mon code :
Sub RDG_formules()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
'Définition de la variable v_derligne
Dim v_derligne As Long
'Recherche de la dernière ligne du tableur
v_derligne = Range("A" & Rows.Count).End(xlUp).Row
'Boucle sur CRN
Range("C2:C" & v_derligne).Value = Application.IF(Range("B2") = "" - "", Application.VLookup(Range("B2") & Range("A2"), ['ARBRE CRN'!A:S], 13, False), Application.VLookup(Range("Q2"), ['ARBRE CRN'!A:S], 13, False))
'confirmer l'exécution de la macro
MsgBox ("Mise à jour terminée")
End Sub
En utilisant .Formula ça donnait ça et ça marchait très bien mais trop long à mon goût sur un fichier de 200 mo.
'Boucle sur CRN
With Range("C2:C" & v_derligne)
'recherchev
.Formula = "=IF(B2=""-"",VLOOKUP(B2&A2,'ARBRE CRN'!A:S,13,FALSE),VLOOKUP(B2,'ARBRE CRN'!A:S,13,FALSE))"
.Value = .Value
'End With
J'ai sûrement mal écrit ma fonction car j'ai un message d'erreur "incompatibilité de type 13" mais je ne vois plus comment m'en sortir... Avez-vous une idée svp ?
Je vous remercie pour votre lecture et votre aide éventuelle.