OVH Cloud OVH Cloud

Imporation données Access dans Excel

4 réponses
Avatar
elo02
Bonjour le forum,

J'aimerai savoir comment adapter mon code pour qu'au lieu d'ouvrir une
requête query (qui ne fonctionne pas comme je le voudrais), excel m'ouvre une
requête access .

Voilà mon code pour l'instant

Sub ListeB9Allee()

Dim Requete As String
Requete = "FINDER;T:\ELG\B9\B9" & Range("Allee") & ".dqy"
Range("B7") = "B9 " & Range("Allee")
Range("A14:h16000") = ""
Range("Titre_Liste") = "Liste complète"

With ActiveSheet.QueryTables.add(Connection:= _
Requete, Destination:=Range("debB9"))
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = True
.BackgroundQuery = True
.RefreshStyle = xlInPlace
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With
Worksheets("TCD").PivotTables("TCD1").RefreshTable
Worksheets("TCD").PivotTables("TCD2").RefreshTable
Worksheets("TCD").PivotTables("TCD3").RefreshTable
Worksheets("TCD").PivotTables("TCD4").RefreshTable

'Appel des macros de mise en couleur
Call plan_fixe(Target)
Call libres(Target)
Call couleur_freq(Target)
Call couleur_ecart(Target)
Call couleur_casiers_a_verifier(Target)

End Sub

Dans Allee j'ai le résultat d'une combobox. donc là pour l'instant j'ouvrais
B957.dqy (par ex) et ça me le copiait sur ma feuille (entre autres).

Est ce possible de faire la même chose directement sachant que mon fichier
access s'appelle emplB9 et que j'ai gardé les mêmes noms pour les requêtes?

Merci d'avance!

elo02 (qui doit reprendre tout son travail...)

4 réponses

Avatar
JFrancois QC
Salut,
voici un exemple de code que j'utilise :
SCon = "ODBC;DBQ=" & sMa BAse & ";Driver={Driver do Microsoft Access
(*.mdb)};DriverId(1;FIL=MS
Access;MaxBufferSize 48;MaxScanRows=8;PageTimeout=5;
UID­min;PWD=spmetf;SafeTransactions=0;Threads=3;UserCommitSync=Yes;"

sSql = "Select * FROM TCD .... "
'============================= With ActiveWorkbook.PivotCaches.Item(1)
.Connection = SCon
.CommandType = xlCmdSql
.CommandText = sSql
'============================= Bonne journée


Bonjour le forum,

J'aimerai savoir comment adapter mon code pour qu'au lieu d'ouvrir une
requête query (qui ne fonctionne pas comme je le voudrais), excel m'ouvre une
requête access .

Voilà mon code pour l'instant

Sub ListeB9Allee()

Dim Requete As String
Requete = "FINDER;T:ELGB9B9" & Range("Allee") & ".dqy"
Range("B7") = "B9 " & Range("Allee")
Range("A14:h16000") = ""
Range("Titre_Liste") = "Liste complète"

With ActiveSheet.QueryTables.add(Connection:= _
Requete, Destination:=Range("debB9"))
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = True
.BackgroundQuery = True
.RefreshStyle = xlInPlace
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:úlse
End With
Worksheets("TCD").PivotTables("TCD1").RefreshTable
Worksheets("TCD").PivotTables("TCD2").RefreshTable
Worksheets("TCD").PivotTables("TCD3").RefreshTable
Worksheets("TCD").PivotTables("TCD4").RefreshTable

'Appel des macros de mise en couleur
Call plan_fixe(Target)
Call libres(Target)
Call couleur_freq(Target)
Call couleur_ecart(Target)
Call couleur_casiers_a_verifier(Target)

End Sub

Dans Allee j'ai le résultat d'une combobox. donc là pour l'instant j'ouvrais
B957.dqy (par ex) et ça me le copiait sur ma feuille (entre autres).

Est ce possible de faire la même chose directement sachant que mon fichier
access s'appelle emplB9 et que j'ai gardé les mêmes noms pour les requêtes?

Merci d'avance!

elo02 (qui doit reprendre tout son travail...)


Avatar
elo02
Merci jean françois
mais en fait je suis novice en vba (le code que j'ai mis avt, je l'avais
juste aménager sans trop comprendre) et là je ne comprends pas du tout ce que
je dois rajouter pour adapter à mon cas...
Est ce que tu peux m'aider encore une fois?



Salut,
voici un exemple de code que j'utilise :
SCon = "ODBC;DBQ=" & sMa BAse & ";Driver={Driver do Microsoft Access
(*.mdb)};DriverId(1;FIL=MS
Access;MaxBufferSize 48;MaxScanRows=8;PageTimeout=5;
UID­min;PWD=spmetf;SafeTransactions=0;Threads=3;UserCommitSync=Yes;"

sSql = "Select * FROM TCD .... "
'============================= > With ActiveWorkbook.PivotCaches.Item(1)
.Connection = SCon
.CommandType = xlCmdSql
.CommandText = sSql
'============================= > Bonne journée


Bonjour le forum,

J'aimerai savoir comment adapter mon code pour qu'au lieu d'ouvrir une
requête query (qui ne fonctionne pas comme je le voudrais), excel m'ouvre une
requête access .

Voilà mon code pour l'instant

Sub ListeB9Allee()

Dim Requete As String
Requete = "FINDER;T:ELGB9B9" & Range("Allee") & ".dqy"
Range("B7") = "B9 " & Range("Allee")
Range("A14:h16000") = ""
Range("Titre_Liste") = "Liste complète"

With ActiveSheet.QueryTables.add(Connection:= _
Requete, Destination:=Range("debB9"))
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = True
.BackgroundQuery = True
.RefreshStyle = xlInPlace
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:úlse
End With
Worksheets("TCD").PivotTables("TCD1").RefreshTable
Worksheets("TCD").PivotTables("TCD2").RefreshTable
Worksheets("TCD").PivotTables("TCD3").RefreshTable
Worksheets("TCD").PivotTables("TCD4").RefreshTable

'Appel des macros de mise en couleur
Call plan_fixe(Target)
Call libres(Target)
Call couleur_freq(Target)
Call couleur_ecart(Target)
Call couleur_casiers_a_verifier(Target)

End Sub

Dans Allee j'ai le résultat d'une combobox. donc là pour l'instant j'ouvrais
B957.dqy (par ex) et ça me le copiait sur ma feuille (entre autres).

Est ce possible de faire la même chose directement sachant que mon fichier
access s'appelle emplB9 et que j'ai gardé les mêmes noms pour les requêtes?

Merci d'avance!

elo02 (qui doit reprendre tout son travail...)




Avatar
JFrancois QC
Bonjour Élodie,

Ma suggestion était de
-au lieu d'extraire des données d'access vers Excel et par la suite faire un
tcd basé sur l'extraction...
-faire un tcd connecté à une table ou requête Access. Pour ce, grâce à
l'assistant de tcd, choisi données externes.

truc : pour ramasser du code vba relié à ton tcd avec données externes :
faire Outilsmacronouvelle macro avant tout.
Bonne chance


Merci jean françois
mais en fait je suis novice en vba (le code que j'ai mis avt, je l'avais
juste aménager sans trop comprendre) et là je ne comprends pas du tout ce que
je dois rajouter pour adapter à mon cas...
Est ce que tu peux m'aider encore une fois?



Salut,
voici un exemple de code que j'utilise :
SCon = "ODBC;DBQ=" & sMa BAse & ";Driver={Driver do Microsoft Access
(*.mdb)};DriverId(1;FIL=MS
Access;MaxBufferSize 48;MaxScanRows=8;PageTimeout=5;
UID­min;PWD=spmetf;SafeTransactions=0;Threads=3;UserCommitSync=Yes;"

sSql = "Select * FROM TCD .... "
'============================= > > With ActiveWorkbook.PivotCaches.Item(1)
.Connection = SCon
.CommandType = xlCmdSql
.CommandText = sSql
'============================= > > Bonne journée


Bonjour le forum,

J'aimerai savoir comment adapter mon code pour qu'au lieu d'ouvrir une
requête query (qui ne fonctionne pas comme je le voudrais), excel m'ouvre une
requête access .

Voilà mon code pour l'instant

Sub ListeB9Allee()

Dim Requete As String
Requete = "FINDER;T:ELGB9B9" & Range("Allee") & ".dqy"
Range("B7") = "B9 " & Range("Allee")
Range("A14:h16000") = ""
Range("Titre_Liste") = "Liste complète"

With ActiveSheet.QueryTables.add(Connection:= _
Requete, Destination:=Range("debB9"))
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = True
.BackgroundQuery = True
.RefreshStyle = xlInPlace
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:úlse
End With
Worksheets("TCD").PivotTables("TCD1").RefreshTable
Worksheets("TCD").PivotTables("TCD2").RefreshTable
Worksheets("TCD").PivotTables("TCD3").RefreshTable
Worksheets("TCD").PivotTables("TCD4").RefreshTable

'Appel des macros de mise en couleur
Call plan_fixe(Target)
Call libres(Target)
Call couleur_freq(Target)
Call couleur_ecart(Target)
Call couleur_casiers_a_verifier(Target)

End Sub

Dans Allee j'ai le résultat d'une combobox. donc là pour l'instant j'ouvrais
B957.dqy (par ex) et ça me le copiait sur ma feuille (entre autres).

Est ce possible de faire la même chose directement sachant que mon fichier
access s'appelle emplB9 et que j'ai gardé les mêmes noms pour les requêtes?

Merci d'avance!

elo02 (qui doit reprendre tout son travail...)






Avatar
elo02
Ok! Je comprend. Je vais essayer et je t'embêtes de nouveau si j'ai un
problème.
Merci en tout cas!
Elo02

"JFrancois QC" wrote:

Bonjour Élodie,

Ma suggestion était de
-au lieu d'extraire des données d'access vers Excel et par la suite faire un
tcd basé sur l'extraction...
-faire un tcd connecté à une table ou requête Access. Pour ce, grâce à
l'assistant de tcd, choisi données externes.

truc : pour ramasser du code vba relié à ton tcd avec données externes :
faire Outilsmacronouvelle macro avant tout.
Bonne chance


Merci jean françois
mais en fait je suis novice en vba (le code que j'ai mis avt, je l'avais
juste aménager sans trop comprendre) et là je ne comprends pas du tout ce que
je dois rajouter pour adapter à mon cas...
Est ce que tu peux m'aider encore une fois?



Salut,
voici un exemple de code que j'utilise :
SCon = "ODBC;DBQ=" & sMa BAse & ";Driver={Driver do Microsoft Access
(*.mdb)};DriverId(1;FIL=MS
Access;MaxBufferSize 48;MaxScanRows=8;PageTimeout=5;
UID­min;PWD=spmetf;SafeTransactions=0;Threads=3;UserCommitSync=Yes;"

sSql = "Select * FROM TCD .... "
'============================= > > > With ActiveWorkbook.PivotCaches.Item(1)
.Connection = SCon
.CommandType = xlCmdSql
.CommandText = sSql
'============================= > > > Bonne journée


Bonjour le forum,

J'aimerai savoir comment adapter mon code pour qu'au lieu d'ouvrir une
requête query (qui ne fonctionne pas comme je le voudrais), excel m'ouvre une
requête access .

Voilà mon code pour l'instant

Sub ListeB9Allee()

Dim Requete As String
Requete = "FINDER;T:ELGB9B9" & Range("Allee") & ".dqy"
Range("B7") = "B9 " & Range("Allee")
Range("A14:h16000") = ""
Range("Titre_Liste") = "Liste complète"

With ActiveSheet.QueryTables.add(Connection:= _
Requete, Destination:=Range("debB9"))
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = True
.BackgroundQuery = True
.RefreshStyle = xlInPlace
.SavePassword = True
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:úlse
End With
Worksheets("TCD").PivotTables("TCD1").RefreshTable
Worksheets("TCD").PivotTables("TCD2").RefreshTable
Worksheets("TCD").PivotTables("TCD3").RefreshTable
Worksheets("TCD").PivotTables("TCD4").RefreshTable

'Appel des macros de mise en couleur
Call plan_fixe(Target)
Call libres(Target)
Call couleur_freq(Target)
Call couleur_ecart(Target)
Call couleur_casiers_a_verifier(Target)

End Sub

Dans Allee j'ai le résultat d'une combobox. donc là pour l'instant j'ouvrais
B957.dqy (par ex) et ça me le copiait sur ma feuille (entre autres).

Est ce possible de faire la même chose directement sachant que mon fichier
access s'appelle emplB9 et que j'ai gardé les mêmes noms pour les requêtes?

Merci d'avance!

elo02 (qui doit reprendre tout son travail...)