OVH Cloud OVH Cloud

exporter donnes access sous excel avec choix de cellule de destination

4 réponses
Avatar
Marc
Bonjour à tous,

je souhaiterai exporter des données access sous excel mais pas par
défaut en cellule A1 mais à la fin de ma feuille excel qui contient deja
des données sous forme de tableau ?! ex and A56 ( la cellule est
variable c'est en fait a la fin du tableau ), j'ai vu sur le net du code
qui "réponds" à ma question mais je ne dispose pas de l'ocx pour pouvoir
l'utilisé :(

Merci Bcp Marc

4 réponses

Avatar
jero
Salut,
Quel ocx ?
Tu utilises automation ?

"Marc" a écrit dans le message de news:
4b6461f7$0$15329$
Bonjour à tous,

je souhaiterai exporter des données access sous excel mais pas par défaut
en cellule A1 mais à la fin de ma feuille excel qui contient deja des
données sous forme de tableau ?! ex and A56 ( la cellule est variable
c'est en fait a la fin du tableau ), j'ai vu sur le net du code qui
"réponds" à ma question mais je ne dispose pas de l'ocx pour pouvoir
l'utilisé :(

Merci Bcp Marc


Avatar
Marc
Le 30/01/2010 18:32, jero a écrit :
Salut,
Quel ocx ?
Tu utilises automation ?

"Marc" a écrit dans le message de news:
4b6461f7$0$15329$
Bonjour à tous,

je souhaiterai exporter des données access sous excel mais pas par défaut
en cellule A1 mais à la fin de ma feuille excel qui contient deja des
données sous forme de tableau ?! ex and A56 ( la cellule est variable
c'est en fait a la fin du tableau ), j'ai vu sur le net du code qui
"réponds" à ma question mais je ne dispose pas de l'ocx pour pouvoir
l'utilisé :(

Merci Bcp Marc






Bonjour Jérome

Non car je ne sais pas faire mais j'ai vu qu'il n'y avait que cette
solution sur le net ?! s'il y en a une autre se serait mieux !,

Merci
Avatar
Blaise Cacramp
Examine le code ci dessous (en commençant par l'exemple 2) Très pratique.

Option Compare Database
Option Explicit

Sub Exemple_xl_1()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim L As Long
Dim C As Integer

Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True 'ou False (plus rapide dans le cas d'un grand
tableau)
xlApp.Calculation = xlCalculationManual ' plus rapide si encodage de
formules : elle ne seront calculées qu'à la fin
Set xlBook = xlApp.Workbooks.Add 'dans le cas d'un classeur vierge
' ou Set xlBook = xlApp.Workbooks.Open("x:cheminnom.xlt") 'dans le cas
d'un modèle
' Ecrire quelques valeurs
Set xlSheet = xlBook.Worksheets("Feuil1") 'ou son vrai nom dans un
modèle (conseillé)

With xlSheet
For L = 1 To 20
For C = 1 To 5
.Cells(L, C) = L ^ C
Next C
Next L
For C = 1 To 5
With .Cells(21, C)
.FormulaR1C1 = "=SUM(R[-20]C:R[-1]C)"
.Font.Bold = True
End With
Next
.Range(xlSheet.Cells(1, 1), xlSheet.Cells(21, 5)).NumberFormat = "$
#,##0"
End With

xlApp.Calculation = xlCalculationAutomatic ' voir plus haut
xlApp.Calculate
xlApp.Visible = True '(s'il avait été à false en début de procédure)
' Libérer les variables objet
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
End Sub

Sub Exemple_xl_2()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim L As Long
Dim C As Integer

Dim sSql As String
Dim Rst As New ADODB.Recordset

sSql = "SELECT Tbl_Poste.CP_Code, Tbl_Poste.CP_Localite" _
& " FROM Tbl_Poste;"
Rst.Open sSql, CurrentProject.Connection, adOpenStatic
If Rst.EOF Then
Beep
MsgBox "pas d'enregistrements"
Exit Sub 'pas d'enregistrements
Else
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True 'ou False (plus rapide dans le cas d'un
grand tableau)
Set xlBook = xlApp.Workbooks.Add 'dans le cas d'un classeur
vierge
' ou Set xlBook = xlApp.Workbooks.Open("x:cheminnom.xlt") 'dans le
cas d'un modèle
' Ecrire quelques valeurs
Set xlSheet = xlBook.Worksheets("Feuil1") 'ou son vrai nom dans
un modèle (conseillé)

With xlSheet
For L = 1 To Rst.RecordCount
For C = 1 To 2
.Cells(L, C) = Rst(C - 1)
Next C
If Not Rst.EOF Then Rst.MoveNext
Next L
End With
MsgBox "fini ! "
xlApp.Visible = True '(s'il avait été à false en début de
procédure)
' Libérer les variables objet
Rst.Close
Set Rst = Nothing
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
End If
End Sub


"Marc" a écrit dans le message de news:
4b6461f7$0$15329$
Bonjour à tous,

je souhaiterai exporter des données access sous excel mais pas par défaut
en cellule A1 mais à la fin de ma feuille excel qui contient deja des
données sous forme de tableau ?! ex and A56 ( la cellule est variable
c'est en fait a la fin du tableau ), j'ai vu sur le net du code qui
"réponds" à ma question mais je ne dispose pas de l'ocx pour pouvoir
l'utilisé :(

Merci Bcp Marc


Avatar
Marc
Le 31/01/2010 15:51, Blaise Cacramp a écrit :
Examine le code ci dessous (en commençant par l'exemple 2) Très pratique.

Option Compare Database
Option Explicit

Sub Exemple_xl_1()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim L As Long
Dim C As Integer

Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True 'ou False (plus rapide dans le cas d'un grand
tableau)
xlApp.Calculation = xlCalculationManual ' plus rapide si encodage de
formules : elle ne seront calculées qu'à la fin
Set xlBook = xlApp.Workbooks.Add 'dans le cas d'un classeur vierge
' ou Set xlBook = xlApp.Workbooks.Open("x:cheminnom.xlt") 'dans le cas
d'un modèle
' Ecrire quelques valeurs
Set xlSheet = xlBook.Worksheets("Feuil1") 'ou son vrai nom dans un
modèle (conseillé)

With xlSheet
For L = 1 To 20
For C = 1 To 5
.Cells(L, C) = L ^ C
Next C
Next L
For C = 1 To 5
With .Cells(21, C)
.FormulaR1C1 = "=SUM(R[-20]C:R[-1]C)"
.Font.Bold = True
End With
Next
.Range(xlSheet.Cells(1, 1), xlSheet.Cells(21, 5)).NumberFormat = "$
#,##0"
End With

xlApp.Calculation = xlCalculationAutomatic ' voir plus haut
xlApp.Calculate
xlApp.Visible = True '(s'il avait été à false en début de procédure)
' Libérer les variables objet
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
End Sub

Sub Exemple_xl_2()
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
Dim L As Long
Dim C As Integer

Dim sSql As String
Dim Rst As New ADODB.Recordset

sSql = "SELECT Tbl_Poste.CP_Code, Tbl_Poste.CP_Localite" _
& " FROM Tbl_Poste;"
Rst.Open sSql, CurrentProject.Connection, adOpenStatic
If Rst.EOF Then
Beep
MsgBox "pas d'enregistrements"
Exit Sub 'pas d'enregistrements
Else
Set xlApp = CreateObject("Excel.Application")
xlApp.Visible = True 'ou False (plus rapide dans le cas d'un
grand tableau)
Set xlBook = xlApp.Workbooks.Add 'dans le cas d'un classeur
vierge
' ou Set xlBook = xlApp.Workbooks.Open("x:cheminnom.xlt") 'dans le
cas d'un modèle
' Ecrire quelques valeurs
Set xlSheet = xlBook.Worksheets("Feuil1") 'ou son vrai nom dans
un modèle (conseillé)

With xlSheet
For L = 1 To Rst.RecordCount
For C = 1 To 2
.Cells(L, C) = Rst(C - 1)
Next C
If Not Rst.EOF Then Rst.MoveNext
Next L
End With
MsgBox "fini ! "
xlApp.Visible = True '(s'il avait été à false en début de
procédure)
' Libérer les variables objet
Rst.Close
Set Rst = Nothing
Set xlSheet = Nothing
Set xlBook = Nothing
Set xlApp = Nothing
End If
End Sub


"Marc" a écrit dans le message de news:
4b6461f7$0$15329$
Bonjour à tous,

je souhaiterai exporter des données access sous excel mais pas par défaut
en cellule A1 mais à la fin de ma feuille excel qui contient deja des
données sous forme de tableau ?! ex and A56 ( la cellule est variable
c'est en fait a la fin du tableau ), j'ai vu sur le net du code qui
"réponds" à ma question mais je ne dispose pas de l'ocx pour pouvoir
l'utilisé :(

Merci Bcp Marc






ohh la la ça parait bien complexe !!! :) bon merci j'etudie tout ça

Marc