Bonjour tout le monde,
J'ai plusieurs fichiers csv chacun pensant dans les 150 Mo.
Je dois extraire des colonnes plusieurs fois (je récupère les numéros de colonnes dans une feuille "Inputs").
Je les copie dans des fichiers destination,
Bref, j'ai réussi a tout coder et la macro fait exactement ce que je veux.
Le souci est que la macro manipule des fichiers trop volumineux et Excel plante souvent et donc, pas facilement utilisable.
Pourtant, j'ai applique des astuces concernant l'optimisation du code (éviter le select, déclarer les variables etc ...).
Alors, je me suis rabattu sur l'option de lire les données dans un classeur ferme.
J'essaye de prendre en main le tutoriel correspondant
Le souci, je suis sur EXCEL 2013 et il ne reconnaît pas le type de la première ligne.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33 Sub RequeteClasseurFerme_Excel2007() Dim Cn As ADODB.Connection Dim Fichier As String Dim NomFeuille As String, texte_SQL As String Dim Rst As ADODB.Recordset 'Définit le classeur fermé servant de base de données Fichier = "C:\Documents and Settings\mimi\dossier\NomClasseur.xlsx" 'Nom de la feuille dans le classeur fermé NomFeuille = "Feuil1" Set Cn = New ADODB.Connection '--- Connexion --- 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 ... ' '--- Fermeture connexion --- Cn.Close Set Cn = Nothing End Sub
Le message de VBA :
"Error Compilation : User-defined type not defined"
Des idees ?
Faut-il activer un add-on ?
Solution:
Il faut activer Microsoft ActiveX Data Objects 6.1 dans tools/Reference
Partager