OVH Cloud OVH Cloud

EXCEL et ACCESS 2000

4 réponses
Avatar
lou
bonjour
j'ai reçu de la société pour qui je travaille
un fichier modele en EXCEL (FicheDeTravail)
je voudrais exporter une table ACCESS (avec 10 champs)
vers ce fichier
le probleme est que je dois commencer a inserer les données a partir de la
cellule D:5
premier enregistrement D:5 (1er champ) E:5 (2eme champ)etc etc

deuxieme enregistrement D:6 (1er champ) E:6 (2eme champ)etc etc

en fait chaque enregistrement de la table access doit commencer dans la
colonne D
de ce fichier EXCEL

MERCI DE VOTRE AIDE

4 réponses

Avatar
MichDenis
Bonjour Lou,


Je te propose une façon de faire qui devrait faire disparaître tes difficultés :

Dans cette procédure, modifie la chaîne pour ta requête des données à exporter !
Modifie le chemin et le nom de ta base de données Access
Modifie le nom de la feuille et la cellule de départ devrant recevoir le recordset.

'----------------------------------------------
Sub ExecuterRequeteAccess()

'Charger la référence suivante dans ton classeur excel :
'Microsoft Activex Data objects 2.0 librairy

Dim Con As New ADODB.Connection
Dim Rst As New ADODB.Recordset
Dim Requete As String
Dim BaseAccess As String

BaseAccess = "C:excelAccessComptoir.mdb" à déterminer
Requete = "Select * From Toto" ' à déterminer

'ouvre la connextion
Con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & BaseAccess & ";"

'ouvre le recordset
Rst.Open Requete, Con, adOpenKeyset, adLockOptimistic

If Rst.BOF = True And Rst.EOF = True Then
MsgBox "Aucun enregistrement trouvé."
Else
'copie le recordset
With Worksheets("Feuil1") 'à déterminer
.Range("D5").CopyFromRecordset Rst
End With
End If

'Libère la mémoire
Rst.Close: Con.Close
Set Rst = Nothing: Set Con = Nothing

End Sub
'-----------------------------------


Salutations!





"lou" a écrit dans le message de news: 420cec11$0$322$
bonjour
j'ai reçu de la société pour qui je travaille
un fichier modele en EXCEL (FicheDeTravail)
je voudrais exporter une table ACCESS (avec 10 champs)
vers ce fichier
le probleme est que je dois commencer a inserer les données a partir de la
cellule D:5
premier enregistrement D:5 (1er champ) E:5 (2eme champ)etc etc

deuxieme enregistrement D:6 (1er champ) E:6 (2eme champ)etc etc

en fait chaque enregistrement de la table access doit commencer dans la
colonne D
de ce fichier EXCEL

MERCI DE VOTRE AIDE
Avatar
lou
merci
je signale que je suis dans access D:SA SQUITIERICopie de FRONT
EVOLUTION corrigé.mdb
pour executer ce code

mais j'ai un bug qui dit la "methode workssheet de l object global a echoué"
je ne sais pas d ou ça proviens idée?????


Dim Con As New ADODB.Connection
Dim Rst As New ADODB.Recordset
Dim Requete As String
Dim BaseAccess As String
BaseAccess = "D:SA SQUITIERICopie de FRONT EVOLUTION corrigé.mdb" 'à
déterminer
Requete = "Select * From FICHE" ' à déterminer

'ouvre la connextion
Con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & BaseAccess & ";"

'ouvre le recordset
Rst.Open Requete, Con, adOpenKeyset, adLockOptimistic

If Rst.BOF = True And Rst.EOF = True Then
MsgBox "Aucun enregistrement trouvé."
Else
'copie le recordset
""""""""""""""""""""""""""""""""""""""""""""""""""""
With Worksheets("TS") 'à déterminer bug içi
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.Range("D5").CopyFromRecordset Rst
End With
End If

'Libère la mémoire
Rst.Close: Con.Close
Set Rst = Nothing: Set Con = Nothing

"MichDenis" a écrit dans le message de news:
#0j#
Bonjour Lou,


Je te propose une façon de faire qui devrait faire disparaître tes
difficultés :


Dans cette procédure, modifie la chaîne pour ta requête des données à
exporter !

Modifie le chemin et le nom de ta base de données Access
Modifie le nom de la feuille et la cellule de départ devrant recevoir le
recordset.


'----------------------------------------------
Sub ExecuterRequeteAccess()

'Charger la référence suivante dans ton classeur excel :
'Microsoft Activex Data objects 2.0 librairy

Dim Con As New ADODB.Connection
Dim Rst As New ADODB.Recordset
Dim Requete As String
Dim BaseAccess As String

BaseAccess = "C:excelAccessComptoir.mdb" à déterminer
Requete = "Select * From Toto" ' à déterminer

'ouvre la connextion
Con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & BaseAccess & ";"

'ouvre le recordset
Rst.Open Requete, Con, adOpenKeyset, adLockOptimistic

If Rst.BOF = True And Rst.EOF = True Then
MsgBox "Aucun enregistrement trouvé."
Else
'copie le recordset
With Worksheets("Feuil1") 'à déterminer
.Range("D5").CopyFromRecordset Rst
End With
End If

'Libère la mémoire
Rst.Close: Con.Close
Set Rst = Nothing: Set Con = Nothing

End Sub
'-----------------------------------


Salutations!





"lou" a écrit dans le message de news:
420cec11$0$322$

bonjour
j'ai reçu de la société pour qui je travaille
un fichier modele en EXCEL (FicheDeTravail)
je voudrais exporter une table ACCESS (avec 10 champs)
vers ce fichier
le probleme est que je dois commencer a inserer les données a partir de la
cellule D:5
premier enregistrement D:5 (1er champ) E:5 (2eme champ)etc etc

deuxieme enregistrement D:6 (1er champ) E:6 (2eme champ)etc etc

en fait chaque enregistrement de la table access doit commencer dans la
colonne D
de ce fichier EXCEL

MERCI DE VOTRE AIDE






Avatar
MichDenis
Bonsoir Lou,

Est-ce possible que tu sois avec la version office 97 ?

La méthode CopyFromRecorset fonctionne un peu différemment sur cette version d'excel comparativement aux versions excel
subséquentes ....Si tu as effectivement cette version, tu vas devoir regarder dans l'aide... je n'ai pas ces
informations de disponible !

Si l'erreur est limité à cette ligne de code :

" With Worksheets("TS") "

A ) Est-ce que tu as une feuille dans ton classeur qui porte ce nom ?

B ) à cause de la syntaxe, cette feuille doit appartenir au classeur où tu as mis la macro. Assure-toi, que c'est le
classeur actif (qu'au moins une de ses feuilles du classeur est affichée à l'écran.

C ) Est-ce possible que dans ta feuille de module, il y a des "espaces indésirables" devant le mot "Worksheets()". Fais
disparaître toute l'indentation. Est-ce que cela corrige la situation ?

D) En dernier lieu, et si tu modifies le nom de la feuille dans la procédure et dans ton classeur, cela fonctionne-t-il
?


Salutations!


"lou" a écrit dans le message de news: 420d406d$0$1266$
merci
je signale que je suis dans access D:SA SQUITIERICopie de FRONT
EVOLUTION corrigé.mdb
pour executer ce code

mais j'ai un bug qui dit la "methode workssheet de l object global a echoué"
je ne sais pas d ou ça proviens idée?????


Dim Con As New ADODB.Connection
Dim Rst As New ADODB.Recordset
Dim Requete As String
Dim BaseAccess As String
BaseAccess = "D:SA SQUITIERICopie de FRONT EVOLUTION corrigé.mdb" 'à
déterminer
Requete = "Select * From FICHE" ' à déterminer

'ouvre la connextion
Con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & BaseAccess & ";"

'ouvre le recordset
Rst.Open Requete, Con, adOpenKeyset, adLockOptimistic

If Rst.BOF = True And Rst.EOF = True Then
MsgBox "Aucun enregistrement trouvé."
Else
'copie le recordset
""""""""""""""""""""""""""""""""""""""""""""""""""""
With Worksheets("TS") 'à déterminer bug içi
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.Range("D5").CopyFromRecordset Rst
End With
End If

'Libère la mémoire
Rst.Close: Con.Close
Set Rst = Nothing: Set Con = Nothing

"MichDenis" a écrit dans le message de news:
#0j#
Bonjour Lou,


Je te propose une façon de faire qui devrait faire disparaître tes
difficultés :


Dans cette procédure, modifie la chaîne pour ta requête des données à
exporter !

Modifie le chemin et le nom de ta base de données Access
Modifie le nom de la feuille et la cellule de départ devrant recevoir le
recordset.


'----------------------------------------------
Sub ExecuterRequeteAccess()

'Charger la référence suivante dans ton classeur excel :
'Microsoft Activex Data objects 2.0 librairy

Dim Con As New ADODB.Connection
Dim Rst As New ADODB.Recordset
Dim Requete As String
Dim BaseAccess As String

BaseAccess = "C:excelAccessComptoir.mdb" à déterminer
Requete = "Select * From Toto" ' à déterminer

'ouvre la connextion
Con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & BaseAccess & ";"

'ouvre le recordset
Rst.Open Requete, Con, adOpenKeyset, adLockOptimistic

If Rst.BOF = True And Rst.EOF = True Then
MsgBox "Aucun enregistrement trouvé."
Else
'copie le recordset
With Worksheets("Feuil1") 'à déterminer
.Range("D5").CopyFromRecordset Rst
End With
End If

'Libère la mémoire
Rst.Close: Con.Close
Set Rst = Nothing: Set Con = Nothing

End Sub
'-----------------------------------


Salutations!





"lou" a écrit dans le message de news:
420cec11$0$322$

bonjour
j'ai reçu de la société pour qui je travaille
un fichier modele en EXCEL (FicheDeTravail)
je voudrais exporter une table ACCESS (avec 10 champs)
vers ce fichier
le probleme est que je dois commencer a inserer les données a partir de la
cellule D:5
premier enregistrement D:5 (1er champ) E:5 (2eme champ)etc etc

deuxieme enregistrement D:6 (1er champ) E:6 (2eme champ)etc etc

en fait chaque enregistrement de la table access doit commencer dans la
colonne D
de ce fichier EXCEL

MERCI DE VOTRE AIDE






Avatar
lou
salut

je crois avoir compris que je faisais une boulette

en fait le code que tu as fourni dois se trouver sur le classeur excel
(macro) et non pas dans access

en fait ce que je veux faire doit se faire a partir d'un formulaire access
sur click
et envoyer ma table vers ce classeur

mais le tout doit commencer a partir de la cellule d5

si tu a une idée ???

UN GRAND MERCI POUR TON AIDE

"MichDenis" a écrit dans le message de news:

Bonsoir Lou,

Est-ce possible que tu sois avec la version office 97 ?

La méthode CopyFromRecorset fonctionne un peu différemment sur cette
version d'excel comparativement aux versions excel

subséquentes ....Si tu as effectivement cette version, tu vas devoir
regarder dans l'aide... je n'ai pas ces

informations de disponible !

Si l'erreur est limité à cette ligne de code :

" With Worksheets("TS") "

A ) Est-ce que tu as une feuille dans ton classeur qui porte ce nom ?

B ) à cause de la syntaxe, cette feuille doit appartenir au classeur où tu
as mis la macro. Assure-toi, que c'est le

classeur actif (qu'au moins une de ses feuilles du classeur est affichée à
l'écran.


C ) Est-ce possible que dans ta feuille de module, il y a des "espaces
indésirables" devant le mot "Worksheets()". Fais

disparaître toute l'indentation. Est-ce que cela corrige la situation ?

D) En dernier lieu, et si tu modifies le nom de la feuille dans la
procédure et dans ton classeur, cela fonctionne-t-il

?


Salutations!


"lou" a écrit dans le message de news:
420d406d$0$1266$

merci
je signale que je suis dans access D:SA SQUITIERICopie de FRONT
EVOLUTION corrigé.mdb
pour executer ce code

mais j'ai un bug qui dit la "methode workssheet de l object global a
echoué"

je ne sais pas d ou ça proviens idée?????


Dim Con As New ADODB.Connection
Dim Rst As New ADODB.Recordset
Dim Requete As String
Dim BaseAccess As String
BaseAccess = "D:SA SQUITIERICopie de FRONT EVOLUTION corrigé.mdb" 'à
déterminer
Requete = "Select * From FICHE" ' à déterminer

'ouvre la connextion
Con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & BaseAccess & ";"

'ouvre le recordset
Rst.Open Requete, Con, adOpenKeyset, adLockOptimistic

If Rst.BOF = True And Rst.EOF = True Then
MsgBox "Aucun enregistrement trouvé."
Else
'copie le recordset
""""""""""""""""""""""""""""""""""""""""""""""""""""
With Worksheets("TS") 'à déterminer bug içi
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
.Range("D5").CopyFromRecordset Rst
End With
End If

'Libère la mémoire
Rst.Close: Con.Close
Set Rst = Nothing: Set Con = Nothing

"MichDenis" a écrit dans le message de news:
#0j#
Bonjour Lou,


Je te propose une façon de faire qui devrait faire disparaître tes
difficultés :


Dans cette procédure, modifie la chaîne pour ta requête des données à
exporter !

Modifie le chemin et le nom de ta base de données Access
Modifie le nom de la feuille et la cellule de départ devrant recevoir le
recordset.


'----------------------------------------------
Sub ExecuterRequeteAccess()

'Charger la référence suivante dans ton classeur excel :
'Microsoft Activex Data objects 2.0 librairy

Dim Con As New ADODB.Connection
Dim Rst As New ADODB.Recordset
Dim Requete As String
Dim BaseAccess As String

BaseAccess = "C:excelAccessComptoir.mdb" à déterminer
Requete = "Select * From Toto" ' à déterminer

'ouvre la connextion
Con.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & BaseAccess & ";"

'ouvre le recordset
Rst.Open Requete, Con, adOpenKeyset, adLockOptimistic

If Rst.BOF = True And Rst.EOF = True Then
MsgBox "Aucun enregistrement trouvé."
Else
'copie le recordset
With Worksheets("Feuil1") 'à déterminer
.Range("D5").CopyFromRecordset Rst
End With
End If

'Libère la mémoire
Rst.Close: Con.Close
Set Rst = Nothing: Set Con = Nothing

End Sub
'-----------------------------------


Salutations!





"lou" a écrit dans le message de news:
420cec11$0$322$

bonjour
j'ai reçu de la société pour qui je travaille
un fichier modele en EXCEL (FicheDeTravail)
je voudrais exporter une table ACCESS (avec 10 champs)
vers ce fichier
le probleme est que je dois commencer a inserer les données a partir de
la


cellule D:5
premier enregistrement D:5 (1er champ) E:5 (2eme champ)etc etc

deuxieme enregistrement D:6 (1er champ) E:6 (2eme champ)etc etc

en fait chaque enregistrement de la table access doit commencer dans la
colonne D
de ce fichier EXCEL

MERCI DE VOTRE AIDE