Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

automatiser des Query

2 réponses
Avatar
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:\SCH\POOL\VGL_AT\STERN_SCHWEIZ;DefaultDir=R:\SCH\POOL\VGL_AT\STERN_SCHWEIZ;Driver={Driver
da Microsoft para arquivos text"), _
Array("o (*.txt;
*.csv)};DriverId=27;FIL=text;MaxBufferSize=2048;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:\System\Application Data\Microsoft\Queries\fich_etoiles_prot.dsn"
.Refresh BackgroundQuery:=False
End With
End Sub
'****************************************************************************************

--
Amicalement

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

2 réponses

Avatar
JB
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}


Avatar
Jean-François Aubert
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" a écrit dans le message de news:

Bonjour,

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

JB