Bonjour à tous !
Je lance une requête en VBA qui place les résultats sur une feuille Excel.
Or mon nombre de ligne retournées dépasse 65536 (le maximum autorisé de lignes sur une feuille).
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 With ActiveSheet.QueryTables.Add(Connection:=Array(Array( _ "ODBC;DSN=HORIZONSQL;UID=GAL;PWD=gal;DBQ=HORIZONSQL;DBA=W;APA=T;EXC=F;FEN=T;QTO=T;FRC=10;FDL=10;LOB=T;RST=T;GDE=F;FRL=F;BAM=IfAllSuccessful;" _ ), Array("MTS=F;MDI=F;CSR=F;FWC=F;PFC=10;TLO=0;")), Destination:=Range("A2")) .CommandText = requete .Name = "Lancer la requête à partir de HORIZONSQL" .FieldNames = False .RowNumbers = False .FillAdjacentFormulas = False .PreserveFormatting = True .RefreshOnFileOpen = False .BackgroundQuery = True .RefreshStyle = xlInsertDeleteCells .SavePassword = True .SaveData = True .AdjustColumnWidth = False .RefreshPeriod = 0 .PreserveColumnInfo = True .Refresh BackgroundQuery:=False End With
J'aimerais que la suite de mes résultats se placent sur une deuxième feuille...
J'ai trouvé sur Internet une réponse indiquant d'utiliser "ROWNUM", pour limiter à 65000 mes premières résultats puis recommencer une requête en partant de la 65001ème ligne... Cela n'est pas très pratique niveau temps d'exécution : la requête doit se lancer deux fois, etc.
Quelqu'un aurait t'il une idée pour m'aider ?
Merci d'avance !
Partager