Exporter un fichier.rpt vers excel urgent!

fodbe Messages postés 41 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 2 mai 2008 - 7 nov. 2007 à 09:26
fodbe Messages postés 41 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 2 mai 2008 - 7 nov. 2007 à 11:34
bonjour
est ce que quelqu'un peut me dire comment on peut exporter un fichier d'extension .rpt d'un repertoire donné vers excel avec vb6.
merci..  

12 réponses

pneau Messages postés 258 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 27 octobre 2010 5
7 nov. 2007 à 09:46
Salut,
Exporter le rpt en tant que tel vers Excel me semble difficile
quelle version de crystal utilises tu ?
Pour ma part j'utilise la V9 et voilà ce que je fais :
lors de l'apercu avant impression du report, tu as une petite enveloppe a coté de l'icone de recherche dans la barre d'icone
cette enveloppe permet d'exporter le contenu du report vers différentes appli externes (.TXT, XLS, ...)
ceci à la condition d'avoir livré avec ton appli, les dll crystal nécessaires.
c'est à dire :
crxf_pdf.dll   => Export PDF
crxf_rtf.dll   => export ritch text file
crxf_wordw.dll   => Export Word
crxf_xls.dll   => Export Excek
Attention à livrer également les fichiers de ressources (  ex : crxf_pdf_res_fr.dll)
pour plus d'info sur les dll à distribuer pour crystal avec ton appli tu peux regarder le doc runtime.chm
fourni avec crystal

cordialement
Pat
0
fodbe Messages postés 41 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 2 mai 2008
7 nov. 2007 à 10:07
la version de crystal que j'utilise est la version 8.5, le problème est que je travail sur une application ou les utilisateurs veulent faire l'exportation sans passer par la fenètre d'édition ie sans utiliser l'icône sous forme d'enveloppe. les fichiers .rpt se trouvent dans un repertoire ETAT  .
merci. 
0
pneau Messages postés 258 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 27 octobre 2010 5
7 nov. 2007 à 10:19
en v9, je ne sais pas en 8.5, l'objet CRAXDDRT.Report permet de lancer un export directement

exemple
Dim mrep As CRAXDDRT.Report

/*****************/
Ajouter le code d'aliementation de l'état
/*****************/
'puis, lancement de l'export
mrep.export

tchô

Pat
0
fodbe Messages postés 41 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 2 mai 2008
7 nov. 2007 à 10:31
excuse moi, je suis vraiment débutant, mais qu'est ce que tu veux dire par le code d'alimentation de l'etat.
merci 
0

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

Posez votre question
pneau Messages postés 258 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 27 octobre 2010 5
7 nov. 2007 à 10:45
tu dois déjà l'avoir dans ton appli, si les report sont lancés via celle ci. ensuite, il te reste qu'à changer l'instruction d'impression par l'impression d'export.
donnes ton code qui génère l'état et cela sera plus facile pour moi de t'aider.

Pat
0
fodbe Messages postés 41 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 2 mai 2008
7 nov. 2007 à 11:03
voila ce que j'utilise

'Chargement Etat dans Report
'    Set report = CR.OpenReport(RptFilePath)
'On Error GoTo Erreur
With report
 NomEtat = priv_NomEdition
  'Chargement de la liste des libéllés
 RetrieveDataInter priv_GroupEtat
 'Recherche des clefs sur le rapport

  CR.OpenReport (priv_RptFilePath)
  Set RPsects = report.Sections
' 'Recherche sur chaque section de l'etat
  nbsection = RPsects.Count
 For numsection = 1 To nbsection
   Set RPsect = RPsects.Item(numsection)
   'Recherche du nombre de libelle par section
    Set RPobjs = RPsect.ReportObjects
   nbobject = RPobjs.Count
    For compteur = 1 To nbobject
     If TypeOf RPobjs.Item(compteur) Is CRAXDRT.TextObject Then
       Set CRtxtobj = RPobjs.Item(compteur)
       Inter.getMessage CRtxtobj.Text, Data
       CRtxtobj.SetText (Data.Message)
     End If
    Next
 Next
0
fodbe Messages postés 41 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 2 mai 2008
7 nov. 2007 à 11:09
salût
j'ai trouvé ça sur internet, mais il m'affiche une erreure au niveau dim doc as document :l'erreure est la suivante
type défini par l'utilisateur non défini.
cordialement
0
pneau Messages postés 258 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 27 octobre 2010 5
7 nov. 2007 à 11:09
ok, regardes si ton objet "report " a une fonction Export.
exemple :
report.Export
ton report est visiblement alimenté, donc, au lieu de lancer l'impression, je pense que tu peux utiliser une fonction expor (si elle existe)

courage, tu y es presque

Pat
0
pneau Messages postés 258 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 27 octobre 2010 5
7 nov. 2007 à 11:12
nos msg se sont croisés,
je vois pas le rapport de ton "Dim Doc as Document"... il n'apparait pas dans ton code source

Pat
0
fodbe Messages postés 41 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 2 mai 2008
7 nov. 2007 à 11:18
salût
c'est une autre solution que j'ai trouvé sur internet
voila le code
Sub export_Excel(lparam As String)


  On Error GoTo error_handler


 Dim Doc As Document
 Dim Rep As report
 Dim i As Integer
 Dim ExcelDoc As String ' nom du fichier excel cible
 Dim Path As String ' lien pour le fichier excel cible


 ExcelDoc = ActiveDocument.Name & lparam ' nom du ficher excel
 Path = "D:\test"  ' lien pour stocker le fichier excel




 ' enregistre les rapports au format text
 Set Doc = ActiveDocument
 For i = 1 To Doc.Reports.Count
   Set Rep = Doc.Reports.Item(i)
 If Dir(Path & Rep.Name & ".txt") <> " " Then
     Kill Path & Rep.Name & ".txt"
   End If
   Rep.ExportAsText (Path & Rep.Name & ".txt")
 Next i


 Set vbExcel = CreateObject("Excel.Application")
 With vbExcel
 ' création d'un fichier excel, qui contiendra les ficher au format txt
   If Dir(Path & ExcelDoc & ".xls") <> " " Then
     Kill Path & ExcelDoc & ".xls"
   End If
   .Workbooks.Add
   .ActiveWorkbook.SaveAs Path & ExcelDoc & ".xls"
 ' ouvre les sources, enregistre au formazt excel, et immport dans la bonne destination
 For i = 1 To Doc.Reports.Count
   Set Rep = Doc.Reports.Item(i)
   .Workbooks.Open Path & Rep.Name & ".txt"
   If Dir(Path & Rep.Name & ".xls") <> " " Then
     Kill Path & Rep.Name & ".xls"
   End If
   .ActiveWorkbook.SaveAs Path & Rep.Name & ".xls"
   ' copie des feuilles dans le fichier excel
     .Workbooks(Rep.Name & ".xls").Sheets(Rep.Name).Move _
       Before:=.Workbooks(ExcelDoc & ".xls").Sheets("Sheet1")
 Next i
 ' ferme tout les workbooks
   .ActiveWorkbook.Save
   Workbooks.Close
 ' ferme l'application
   .Quit
 End With
   ' libère la mémoire
   Set vbExcel = Nothing


 Exit Sub


error_handler:
 If Err.Number = 53 Then Resume Next
  MsgBox Err.Number & " - " & Err.Description
   Workbooks.Close
   vbExcel.Quit
   Set vbExcel = Nothing
     Set OlkApp = Nothing


 End Sub
cordialement
0
pneau Messages postés 258 Date d'inscription mercredi 21 avril 2004 Statut Membre Dernière intervention 27 octobre 2010 5
7 nov. 2007 à 11:29
le message d'erreur que tu as indique qu'il te manque une référence sur une dll crystal dans ton projet.
sinon, j'ai vu qu'on pouvait ajouté une référence à la dll crystal report export.
je ne sais pas ce que cela vaut
mais peut etre que cela va t'apporter une solution

Pat
0
fodbe Messages postés 41 Date d'inscription mercredi 7 novembre 2007 Statut Membre Dernière intervention 2 mai 2008
7 nov. 2007 à 11:34
salût
merci beaucoups pour ton aide
cordialement.
0
Rejoignez-nous