Demande d'aide concernant un export et de la gestion de fichiers

Résolu
geogeo62118 Messages postés 20 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 1 juin 2009 - 8 déc. 2008 à 17:30
geogeo62118 Messages postés 20 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 1 juin 2009 - 11 déc. 2008 à 17:36
Bonjour à vous tous, voilà je débute en programmation sous VB et je me retourne vers vous pour vous demander un peu d'aide si cela et possible.

Voici mon cas:
j'ai créer une petite appli pour gérer une entreprise ( création d'une base de données accès et de l'appli vb pour tout ce qui est insertion,modification, suppression, listing ). ce que je souhaite développer, c'est le fait de pouvoir exporter mes données vers un fichier excel (  qui aura une présentation définie ), puis d'enregistrer ce fichier dans un répertoire/sous-répertoire ( des test seront effectuer pour savoir si les répertoires ou sous répertoires existes ) mais en utilisant un formatage prédéfini ( ex: Nomclient_date.xls ).
Enfin dans un dernier temps, je souhaiterai que l'utilisateur de ce programme puisse avoir la liste de tout les fichiers pour les imprimer ensuite.

Je cherche simplement à savoir comment faire l'export vers un fichier excel défini,  puis de l'enregistrer dans un répertoir défini également.
En ce qui concerne l'impression des fichiers, je n'ai pas totalement trouvé mais j'ai vu , me semble t-il, un code permettant de faire ceci.

merci d'avance!

6 réponses

Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
9 déc. 2008 à 15:56
Bonjour,

   Attaque ta base Access par ADO, sélectionne la 1ère cellule devant contenir les données et exécute le code suivant:

ActiveCell.CopyFromRecordset(monRecordSet)

PS: Je reconnais que l'explication est un peu succincte, si tu n'y arrives pas, dis-le, je m'expliquerais plus longuement demain.

PPS: N'oublie pas d'ajouter les noms de colonne par ton code, la liogne ci-dessous ne le fais pas automatiquement.

Calade
3
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
10 déc. 2008 à 13:45
Bonjour,

' rstRecordset étant ton recordset contenant les données à transférer sur ta feuille Excel
' Le transfert des données ne copiant pas le nom des colonnes, il faut d'abord récupérer celui-ci


 dim X as integer
 dim lngNewRows as long


        For X = 0 To rstRecordset.Fields.Count - 1
'Le nom de celles-ci seraont en A1 sur ta feuille
         ActiveSheet.Range(Chr$(65 + X) & "1").Select
           ActiveCell = rstRecordset.Fields(X).Name
        Next


' On se positionne en A2 juste sous la ligne des noms de colonnes et on copie le Recordset d'un seul coup
       ActiveSheet.Range("A2").Select
' On se positionne sur le 1er enregistrement du recordset par précaution                     
 rstRecordset.MoveFirst
' et on peuple ta feuille Excel
       lngNewRows = ActiveCell.CopyFromRecordset(rstRecordset)
' Ici lngNewRows contiendra le nombre d'enregistrements copiés
' c'est identique à rstRecordset.Recordcount

Evidemment la copie sera brute de décoffrage, il te faudra donc esthétiser tout ça sous Excel et définir aussi le format éventuel des cellules. Tu n'auras besoin de le faire qu'une seule fois, si tu réexécutes le ActiveCell.CopyFromRecordset(rstRecordset)
la mise en forme sera préservée.

   N'hésites pas à revenir si tu as d'autres questions.


Calade
3
Calade Messages postés 1207 Date d'inscription dimanche 20 avril 2003 Statut Membre Dernière intervention 4 juin 2016 10
11 déc. 2008 à 15:23
Bonjour,

   En prenant pour exemple que tu veux mettre le nom en A7, il faut d'abord que tu saches le n° de colonne du nom (admettons que c'est la 3ème colonne de ton recordset)

      ActiveSheet.Range("A7").Select
      ActiveCell.CopyFromRecordset(rstRecordset.Fields(3).value)    

Attention, je n'ai pas eu le temps de tester ce dernier code, je mettais le recordset entier à partir d'une cellule sélectionnée comme dans l'exemple donné. A toi de tester.

A+

Calade
3
geogeo62118 Messages postés 20 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 1 juin 2009
10 déc. 2008 à 10:29
salut Calade!
peux tu m'expliquer un peu plus longuement la procédure à suivre car je suis perdu.
je sais comment attaquer ma base avec ADO mais après je ne sais pas pour le reste.

merci d'avance!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
geogeo62118 Messages postés 20 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 1 juin 2009
11 déc. 2008 à 08:57
Salut Calade! merci ces explications très détaillées!
En ce qui concerne la récupération des noms de colonnes, je n'en ai pas vraiment besoin
car je ne vais pas m'en servir.
En revanche en ce qui concerne mon recordset, je souhaiterai pour un enregistrement donnée ( que je récupererais par l'intermédiaire d'une réquête sql ) le découpé afin de placer les informations dans des cellules que je choisirais ( par exemple en A7 pour le nom, A8 pour le prénom et etc...)

merci d'avance!
0
geogeo62118 Messages postés 20 Date d'inscription mardi 5 juin 2007 Statut Membre Dernière intervention 1 juin 2009
11 déc. 2008 à 17:36
ok . Encore merci à toi Calade.
Je vais effectuer quelque tests ce week-end.
Si j'ai encore des problèmes, je les posterai ici.
0
Rejoignez-nous