Bonjour au forum !
Je suis en pleine élaboration d'une solution de traitement de données basé sur des fichier Excel.
Pour cela j'utilise des requête SQL afin de récupérer les données dans les différents classeur fermé que je manipule.
Le problème est que je ne parviens pas a trouver un exemple pour effectuer une fonction FIND dans un classeur fermé.
Je cherche à déterminer l’existence d'une en tête de colonne et d'en récupérer l'adresse.
Je répond de suite à la question qui tue et que j'ai vu sur les post similaire :"Pourquoi tu ouvre pas simplement tes classeur pour les manipuler"
Tout simplement pour des questions de performance. mon code manipule une cinquantaine de fichier et chaque requête récurer des dizaine de millier de lignes.
Voici un exemple de mon code pour la récupération des données par requêtes SQL. Ce que je recherche donc est la commande permettant d'effectuer un Find sur un classeur fermer dans l'objectif de déterminer la position de l'information que je souhaite extraire de mon fichier.
Je fais appel au savoir infinis des membres les plus sages du forum pour parfaire mes connaissances en VBA et particulièrement le domaine des requêtes OLEDB.
Par avec merci pour votre aide
Meilleures salutations
Vorens
Je suis en pleine élaboration d'une solution de traitement de données basé sur des fichier Excel.
Pour cela j'utilise des requête SQL afin de récupérer les données dans les différents classeur fermé que je manipule.
Le problème est que je ne parviens pas a trouver un exemple pour effectuer une fonction FIND dans un classeur fermé.
Je cherche à déterminer l’existence d'une en tête de colonne et d'en récupérer l'adresse.
Je répond de suite à la question qui tue et que j'ai vu sur les post similaire :"Pourquoi tu ouvre pas simplement tes classeur pour les manipuler"
Tout simplement pour des questions de performance. mon code manipule une cinquantaine de fichier et chaque requête récurer des dizaine de millier de lignes.
Voici un exemple de mon code pour la récupération des données par requêtes SQL. Ce que je recherche donc est la commande permettant d'effectuer un Find sur un classeur fermer dans l'objectif de déterminer la position de l'information que je souhaite extraire de mon fichier.
Code:
Sub CommandButton1_click()
Dim Cn As ADODB.Connection
Dim Fichier As String
Dim NomFeuille As String, texte_SQL As String
Dim Rst As ADODB.Recordset
'Adresse de la cible
Dim TargetCol As String
Col = NumCol.Text
'Spécification de la feuille et du range à récupérer
Feuille = "DB1$"
Cellule = Col & "1" & ":" & Col & "10"
'Définit le classeur fermé servant de base de données
Fichier = "C:\Users\Bruno\SkyDrive\Documents\Excel\Solution & Exemple VBA\Requête SQL dans Workbook et écriture dans un second Workbook\EA_Catalog_VPApplicationComponant.xlsx"
Fichier2 = "C:\Users\Bruno\SkyDrive\Documents\Excel\Solution & Exemple VBA\Requête SQL dans Workbook et écriture dans un second Workbook\EA Catalog.xlsx"
'Nom de la feuille dans le classeur fermé
NomFeuille = "DB1"
Set Cn = New ADODB.Connection
'--- Connexion classeur 1 ---
With Cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& Fichier & ";Extended Properties=""Excel 12.0;HDR=YES;"""
.Open
End With
'-----------------
'
'... la requête ...
Set Rst = Cn.Execute("[" & Feuille & Cellule & "]")
'--- Connexion classeur 2 ---
With Cn
.Provider = "Microsoft.Jet.OLEDB.4.0"
.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" _
& Fichier2 & ";Extended Properties=""Excel 12.0;HDR=YES;"""
.Open
End With
'-----------------
Range("A2").CopyFromRecordset Rst
'--- Fermeture connexion ---
Cn.Close
Set Cn = Nothing
End Sub
End Sub
Je fais appel au savoir infinis des membres les plus sages du forum pour parfaire mes connaissances en VBA et particulièrement le domaine des requêtes OLEDB.
Par avec merci pour votre aide
Meilleures salutations
Vorens