cs_philao
Messages postés5Date d'inscriptionjeudi 7 octobre 2004StatutMembreDernière intervention 8 juin 2006
-
8 juin 2006 à 00:23
dirtyjs
Messages postés1Date d'inscriptionlundi 16 octobre 2006StatutMembreDernière intervention16 octobre 2006
-
16 oct. 2006 à 17:24
Comment exporter une table Access dans Excel par l'intermédiaire de Visual Basic ?
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 8 juin 2006 à 01:41
Pas de problème, et en plus, je suis brave, je t'ai fait un bout de code :
Dim Rs As Recordset, sql As String, i As Integer
Dim Item (1 To X) As String 'remplace X par le nombre d'enregistrement
Dim Nb As Integer
NomBase = App.Path & "\nom du fichier" 'remplace nom fichier par le nom du fichier Access
Nb = 1
Set db = DBEngine.Workspaces(0).OpenDatabase(NomBase)
sql = "SELECT NomChamps FROM TableX" 'remplace NomChamps et TableX
Set Rs = db.OpenRecordset(sql)
Rs.MoveFirst
Do While Rs.EOF = False
Item (Nb) = Rs!NomChamps 'remplace NomChamps
Nb = Nb + 1
Rs.MoveNext
Loop
Set Rs = Nothing
db.Close
Dim objExcel As Object, objWorkBook As Object, objFeuille As Object
Set objExcel = CreateObject("excel.application")
Set objWorkBook = objExcel.WorkBooks.Open ("C:/Nom du chemin/nomfichier.xls")
Set objFeuille = objWorkBook.WorkSheets("Nom de la feuille") 'met le bon nom de feuille
objExcel.Application.Visible = True
For i 1 To X 'X le nombre que tu as mis dans "Dim Item (1 To X)"
objFeuille.Cells(i, 1).Value = Item (i)
Next i
Set objExcel = Nothing
Set objWorkBooks = Nothing
Voilà, je pense que ça te fait un bon début, essaie de l'adapter suivant tes besoins (quelques termes à remplacer, certainement)
Pense à cocher, dans les références, "Microsoft DAO 3.6 (ou 3.51)"
@++
--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement !
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 8 juin 2006 à 01:01
Généralement, on pose une question dans le forum en dernier recours, ou lorsque l'on a un code, et qu'une syntaxe plante quelque part.
Te concernant, tout en haut de cette page, sous les pubs, tu as
"Rechercher sur le site" avec une case.
Si tu tapes dedans "lire access" tu auras des codes pour lire des données dans des tables Access.
Puis, tape "écrire excel" et tu sauras comment faire pour replacer ces données dans un tableur Excel.
Concernant le fait que je te dise de lire le réglement, au cas où le lien ne fonctionne pas avec ton navigateur internet :
Règles pour poster un nouveau message sur le forum :
On fait une recherche sur le site avant de poster une question.
On est poli : « bonjour » et « merci » sont des mots appréciés.
On utilise un langage correct : pas de langage SMS, et on fait attention à l'orthographe.
On demande une explication sur un sujet précis, on ne l'exige pas.
On ne pose qu'une question par topic.
On pose une question aussi précise que possible.
On précise les détails du problème : contexte, langage, message d'erreur ...
On pense à donner le bout de code qui pose problème, et préciser le langage utilisé.
On ne demande pas un programme tout fait, on ne demande que de l'aide sur un problème concret.
On pense à laisser un petit message lorsqu'un problème est résolu et à cliquer sur le bouton « réponse acceptée ».
Merci de ton attention et bon courage quand même pour ton prog.
@++
--Mortalino--
Le Mystérieux Chevalier "Provençal, le Gaulois"
N'oubliez pas de lire le règlement !
cs_philao
Messages postés5Date d'inscriptionjeudi 7 octobre 2004StatutMembreDernière intervention 8 juin 2006 8 juin 2006 à 01:20
Bonsoir Mortalino
C'est bien de temps en temps de faire des rappels à l'ordre. Quant à moi, je suis sincèrement navré de ma demande quelque peu cavalière. J'accepte vos remarques et jen prend acte.
Pour revenir à ma demande, j'ai essayé un code qui est publié sur ce même site : Source N° 1097. La difficulté est que le tableau excel ne reçoit que le premier enregistrement de la table, et pas les autres. Je n'ai pas beaucoup d'expérience en la matière, j'apprend tout seul avec des livres et c'est long et fastidieux. De plus on ne trouve pas tout.
cs_philao
Messages postés5Date d'inscriptionjeudi 7 octobre 2004StatutMembreDernière intervention 8 juin 2006 8 juin 2006 à 02:09
Un grand merci pour votre gentillesse. Je vais essayer ce code et l'adapter si besoin.
En fait j'ai conçu une application avec VB6, et j'utilise une base de données Access pour stocker des informations (Je fais ça pour une association d'insertion de jeunes en détresse). On voudrait pouvoir utiliser les données que nous avons stockés dans notre application en les exportant vers Excel (que l'un d'entre nous connait bien). Donc le but est de lancer à partir de notre application l'exportation de ces données vers excel. Tous les codes que je trouve ne marchent pas car je pense qu'ils sont écrit pour Access (pour un transfert Access>Excel). Nous c'est différent nous voulons le faire à l'aide de notre application qui tourne avec VB6.
Encore merci et bon vent
cs_philao
Messages postés5Date d'inscriptionjeudi 7 octobre 2004StatutMembreDernière intervention 8 juin 2006 8 juin 2006 à 19:59
Bonjour Motalino
J'ai essayé le code il fonctionne, mais la table Excel n'affiche qu'une seule colonne.
En effet, je n'arrive pas à entrer dans le code le nom des champs ici :
Do While Rs.EOF = False
Item (Nb) = Rs!NomChamps 'remplace NomChamps
Il n'accepte qu'un seul champ. J'ai essayé plusieurs combinaisons mais aucune ne marche.
Au total, ma table contient 15 champs je suis donc loin du compte !
Je suis désolé de vous embêter, mais si vous pouviez encore m'aider
Merci par avance
dirtyjs
Messages postés1Date d'inscriptionlundi 16 octobre 2006StatutMembreDernière intervention16 octobre 2006 16 oct. 2006 à 17:24
Bonjour KanVan,
j'ai essayé ton code mais j'obtiens un message d'erreur lorsque je l'exécute. Ça me dit type défini par l'utilisateur non-défini. Voici ton code modifié:
Dim bdd As Database, req As QueryDef, enr As Recordset
Set bdd = Workspaces(0).OpenDatabase("c:\RIT 2006\bd1.mdb")