automatiser des Query

Le
Jean-François Aubert
Salut à toutes et à tous,

Avec la macro ci-dessous, je récupère les données d'un fichier Excel.
Cela fonctionne.

Afin de récupérer les données de plusieurs fichiers d'un même dossier,
je cherche à introduire des variables dans la ligne de code suivante:
.CommandText = Array("SELECT * FROM `2007_Stern_aubertje.csv`")
et je n'y arrive pas avec mes lignes en commantaire.

Quelqu'un saurait-il le faire ?


'***********************************************************************************************************
Sub Macro2()
'annee = "2008"
'prot = "protoc01"
'quoi = Array("SELECT * FROM `" & annee & "_Stern_" & prot & ".csv`")

ActiveWorkbook.Worksheets.Add
With ActiveSheet.QueryTables.Add(Connection:= _
Array(Array("ODBC;DBQ=R:SCHPOOLVGL_ATSTERN_SCHWEIZ;DefaultDir=R:SCHPOOLVGL_ATSTERN_SCHWEIZ;Driver={Driver
da Microsoft para arquivos text"), _
Array("o (*.txt;
*.csv)};DriverId';FIL=text;MaxBufferSize 48;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UserCommitSy"),
_
Array("nc=Yes;")), Destination:=Range("A1"))


.CommandText = Array("SELECT * FROM `2007_Stern_aubertje.csv`")
' .CommandText = quoi



.Name = "fich_etoiles_prot"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.SourceConnectionFile = _
"H:SystemApplication DataMicrosoftQueriesfich_etoiles_prot.dsn"
.Refresh BackgroundQuery:úlse
End With
End Sub
'****************************************************************************************

--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}
Questions / Réponses high-tech
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
JB
Le #4657631
Bonjour,

x = "2007_Stern_aubertje.csv"
.CommandText = Array("SELECT * FROM `" & x & "`")

JB

On 14 août, 11:48, "Jean-François Aubert" wrote:
Salut à toutes et à tous,

Avec la macro ci-dessous, je récupère les données d'un fichier Exce l.
Cela fonctionne.

Afin de récupérer les données de plusieurs fichiers d'un même dos sier,
je cherche à introduire des variables dans la ligne de code suivante:
.CommandText = Array("SELECT * FROM `2007_Stern_aubertje.csv`")
et je n'y arrive pas avec mes lignes en commantaire.

Quelqu'un saurait-il le faire ?

'************************************************************************ **­*********************************
Sub Macro2()
'annee = "2008"
'prot = "protoc01"
'quoi = Array("SELECT * FROM `" & annee & "_Stern_" & prot & ".csv`")

ActiveWorkbook.Worksheets.Add
With ActiveSheet.QueryTables.Add(Connection:= _
Array(Array("ODBC;DBQ=R:SCHPOOLVGL_ATSTERN_SCHWEIZ;DefaultD ir=R:SCHPO­OLVGL_ATSTERN_SCHWEIZ;Driver={Driver
da Microsoft para arquivos text"), _
Array("o (*.txt;
*.csv)};DriverId';FIL=text;MaxBufferSize 48;MaxScanRows=8;Pag eTimeout=5­;SafeTransactions=0;Threads=3;UserCommitSy"),
_
Array("nc=Yes;")), Destination:=Range("A1"))

.CommandText = Array("SELECT * FROM `2007_Stern_aubertje.csv`")
' .CommandText = quoi

.Name = "fich_etoiles_prot"
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.SourceConnectionFile = _
"H:SystemApplication DataMicrosoftQueriesfich_etoiles_prot.d sn"
.Refresh BackgroundQuery:úlse
End With
End Sub
'************************************************************************ **­**************

--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


Jean-François Aubert
Le #4804281
Salut JB,

Non, malheureusement cela ne fonctonne pas. Erreur d'exécution '1004' :
Erreur générale ODBC

Merci quand même.

--
Amicalement

Jean-François Aubert
{Vaudois de la Côte Lémanique}


"JB"
Bonjour,

x = "2007_Stern_aubertje.csv"
.CommandText = Array("SELECT * FROM `" & x & "`")

JB
Publicité
Poster une réponse
Anonyme