XL 2016 remplacer le nom du fichier dans une rechechV en vba

philippe87420

XLDnaute Nouveau
bonjour à tous

afin d'éviter à mes collègues d'aller reprendre le vba je souhaiterai remplacer le nom du fichier dans ma recherchV:

'With Cells(ligne, 22)
'.Formula = "=IFERROR(VLOOKUP(RC[-20],'[STO002F---INVENTAIRE des PALETTES 10-10-2021-rapprochement.xls]Sheet1'!R10C2:R18114C11,1,FALSE),"""")"
' .Value = .Value
'End With

j'ai essayé ça mais ça me remonte rien dans mon fichier

With Cells(ligne, 22)
.Formula = "=IFERROR(VLOOKUP(RC[-20],'" & [ Fichier ] & "sheet1'!R10C2:R18114C11,1,FALSE),"""")"
.Value = .Value
End With


ci joint les fichiers

merci de votre aide par avance
philippe
 

Pièces jointes

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

Je n'ai pas ouvert vos fichiers mais les crochet "[]" doivent entourer le nom du fichier. Donc être dans les guillemets.

quelque chose comme :

"=IFERROR(VLOOKUP(RC[-20],'[" & Fichier & "]sheet1'!R10C2:R18114C11,1,FALSE),"""")"

Cordialement
 

fanch55

XLDnaute Barbatruc
Bonjour,
Une autre solution :
Déclarer au niveau du classeur une variable Crystal ( par exemple ) faisant référence aux colonnes désirées du fichier crystal ( à ce propos, je n'ai pas compris pourquoi R10C2 ? ).
et faire une formule générique dans les cellules en colonne V :
Code:
=SIERREUR(RECHERCHEV(B6;Crystal;1;FAUX);"")

Pour modifier le nom Crystal, double cliquer par exemple en J2, choisir un nom de fichier et modifier le champ nommé.
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    If Target.Address = [J2].Address Then
        If [J2] = "" Then F = [J2] Else F = Dir([J2])  ' pas de iif sinon dir se plante
        If F = "" Then
            With Application.FileDialog(msoFileDialogFilePicker)
                .InitialFileName = ThisWorkbook.Path
                .InitialView = msoFileDialogViewList
                .AllowMultiSelect = False
                .ButtonName = "Select"
                .Filters.Clear
                .Filters.Add "Fichier Crystal", "*.xls"
                .Title = "Choix du Fichier Crystal"
                If .Show Then
                    Range("J2") = .SelectedItems(1)
                    T = Split(Range("J2"), "\")
                    T(UBound(T)) = "[" & T(UBound(T)) & "]"
                    T = "='" & Join(T, "\") & "Sheet1'!$B:$K"
                    ThisWorkbook.Names("Crystal").RefersTo = T
                    Cancel = True
                End If
            End With
        End If
    End If

End Sub
 

Pièces jointes

Discussions similaires

Réponses
2
Affichages
352
Réponses
3
Affichages
474

Statistiques des forums

Discussions
315 293
Messages
2 118 125
Membres
113 434
dernier inscrit
thais1808