Recherche dans fichier fermé
Yannov0704
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17277 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je souhaiterais renvoyer les valeurs d'une colonne (par recherche d'une valeur variable) d'un onglet(variable) dans un fichier fermé (avec un nom variable).
En pratique j'ai utilisé la fonction :
XRECHERCHEV(FL$3;"'C:\Users\Desktop\Skills\Investis\[" & A9 & "]Langues'!$B:$C";2;VRAI)
J'obtiens # Valeur!
Avec la macro suivante (en activant la fonction DAO):
Option Explicit
Public Function XRECHERCHEV(ByVal valRecherchee As Variant, _
ByVal TabMatrice As Variant, _
ByVal colonneIndex As Integer)
If TypeName(TabMatrice) = "Range" Then
XRECHERCHEV = Application.WorksheetFunction.VLookup(valRecherchee, _
TabMatrice, _
colonneIndex, _
True)
Else
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim sRange As String
Dim sSheet As String
Dim sWbook As String
Dim sFPath As String
Dim sSQL As String
sRange = Replace(Split(TabMatrice, "!")(1), "$", vbNullString)
sSheet = Split(Split(TabMatrice, "]")(1), "'")(0)
sWbook = Split(Split(TabMatrice, "[")(1), "]")(0)
sFPath = Mid(Split(TabMatrice, "[")(0), 2)
valRecherchee = "'" & Replace(valRecherchee, "'", "''") & "'"
sSQL = "SELECT [F" & colonneIndex & "] " & _
"FROM [" & sSheet & "$" & sRange & "] " & _
"WHERE [F1] = " & valRecherchee
Set db = DAO.OpenDatabase(sFPath & sWbook, False, False, "Excel 8.0;HDR=NO;")
Set rs = db.OpenRecordset(sSQL, DAO.dbOpenSnapshot)
If rs.EOF And rs.BOF Then
XRECHERCHEV = "no match"
Else
XRECHERCHEV = rs.Fields(0)
End If
Set rs = Nothing
Set db = Nothing
End If
End Function
Quelqu'un a une idée sur l'étape manquée ou l'erreur réalisée.
Merci par avance de votre retour rapide, je dois agréger 500 fichiers pour la fin de semaine et manuellement je vais mettre une éternité
Je souhaiterais renvoyer les valeurs d'une colonne (par recherche d'une valeur variable) d'un onglet(variable) dans un fichier fermé (avec un nom variable).
En pratique j'ai utilisé la fonction :
XRECHERCHEV(FL$3;"'C:\Users\Desktop\Skills\Investis\[" & A9 & "]Langues'!$B:$C";2;VRAI)
J'obtiens # Valeur!
Avec la macro suivante (en activant la fonction DAO):
Option Explicit
Public Function XRECHERCHEV(ByVal valRecherchee As Variant, _
ByVal TabMatrice As Variant, _
ByVal colonneIndex As Integer)
If TypeName(TabMatrice) = "Range" Then
XRECHERCHEV = Application.WorksheetFunction.VLookup(valRecherchee, _
TabMatrice, _
colonneIndex, _
True)
Else
Dim db As DAO.Database
Dim rs As DAO.Recordset
Dim sRange As String
Dim sSheet As String
Dim sWbook As String
Dim sFPath As String
Dim sSQL As String
sRange = Replace(Split(TabMatrice, "!")(1), "$", vbNullString)
sSheet = Split(Split(TabMatrice, "]")(1), "'")(0)
sWbook = Split(Split(TabMatrice, "[")(1), "]")(0)
sFPath = Mid(Split(TabMatrice, "[")(0), 2)
valRecherchee = "'" & Replace(valRecherchee, "'", "''") & "'"
sSQL = "SELECT [F" & colonneIndex & "] " & _
"FROM [" & sSheet & "$" & sRange & "] " & _
"WHERE [F1] = " & valRecherchee
Set db = DAO.OpenDatabase(sFPath & sWbook, False, False, "Excel 8.0;HDR=NO;")
Set rs = db.OpenRecordset(sSQL, DAO.dbOpenSnapshot)
If rs.EOF And rs.BOF Then
XRECHERCHEV = "no match"
Else
XRECHERCHEV = rs.Fields(0)
End If
Set rs = Nothing
Set db = Nothing
End If
End Function
Quelqu'un a une idée sur l'étape manquée ou l'erreur réalisée.
Merci par avance de votre retour rapide, je dois agréger 500 fichiers pour la fin de semaine et manuellement je vais mettre une éternité
Configuration: Windows / Chrome 79.0.3945.79
A voir également:
- Recherche dans fichier fermé
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide