dlilou
Messages postés4Date d'inscriptionjeudi 25 février 2010StatutMembreDernière intervention10 février 2012
-
9 févr. 2012 à 12:56
dlilou
Messages postés4Date d'inscriptionjeudi 25 février 2010StatutMembreDernière intervention10 février 2012
-
10 févr. 2012 à 14:09
bonjour
c'est mon premier post sur ce site.
voila j'ai une macro qui rafraichi des rapport sous BO et me cré ensuite les resultats sous format pdf.
Et moi je voudrais recuperer les resusltats sous format excel.
est ce que quelqu'un peut m'aider, je bloque depuis quelques jours!
J'ai teste en modifiant pdf par xls mais l'export se fait mal!
merci de votre aide
voici une partie du code, je vous envoi le reste si besoin
merci beaucoup!
'--------------------------------------------------------------------------------------------
'
' VARIABLES UTILES POUR LA SELECTION DE FICHIERS
'
'--------------------------------------------------------------------------------------------
Public Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
Public Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type
'--------------------------------------------------------------------------------------
'
' DECLARATION DES VARIABLES GLOBALES
'
'--------------------------------------------------------------------------------------
Public separateur As String
Public Type structLigne
codePays As String
zoneGeo As String
End Type
'Nombre maximum de zones géographiques : 100
'(Pour allocation de la mémoire)
Public TabEnreg(50) As structLigne
Public STR_DateChoice
Public STR_IdZoneGeoChoice
Public NbParam
Public STR_VERSION
Public STR_APPLICATION_NAME
Public TITRE_COMMDLG
'Pattern
Public DATE_PATTERN
Public TIME_PATTERN
Public ANNEE_PATTERN
Public MOIS_PATTERN
'Filtres pour l'explorateur de fichier
Public PARAM_FILE_FILTER
Public DOCBO_FILE_FILTER
'Annee minimale saisie
Public INT_anneeMin
'NB d'annees d historique
Public INT_NB_ANNEE_HISTO
'Flag de log
Public BL_FLAG_LOG_DEBUG
Public BL_FLAG_LOG_ERROR
Public BL_FLAG_LOG_INFO
Public BL_FLAG_LOG_WARNING
Public BL_FLAG_LOG_FILE
'Flag d affichage de traitement en cours pour la progress bar...)
Public BL_AFF_TRT_EN_COURS
'Type de Log
Public STR_LOG_DEBUG
Public STR_LOG_ERROR
Public STR_LOG_INFO
Public STR_LOG_WARNING
'Fichiers
'Fichier de Log de la macro
Public STR_LOG_FILENAME
Public STR_PATH_LOG_FILE
Public STR_EXT_OUTPUT_FILE
'Répertoire de travail par défaut
Public STR_STANDARD_WORKFOLDER
'Messages
Public STR_MSG_BEGIN
Public STR_MSG_END
Public STR_ANTISLASH_CAR
'----------------------------------------------------------------------------------
' MESSAGES D ERREUR
'----------------------------------------------------------------------------------
'Messages Lecture/ Ecriture Fichier
Public STR_ERR_MSG_WRITE_FILE
Public STR_ERR_MSG_READ_FILE
'Messages d'erreur suite à une mauvaise saisie de formulaire
Public STR_ERR_MSG_TXT_VIDE_PREFIXE
Public STR_ERR_MSG_TXT_VIDE_SUFFIXE
Public STR_ERR_MSG_DATE_FORMAT
'Messages d'erreur suite à un échec du rafraîchissement
Public STR_ERR_MSG_DOC_BO_NOT_FOUND
Public STR_ERR_MSG_DIR_NOT_FOUND
Public STR_ERR_MSG_ZOGEO_FILE_NOT_FOUND
Public STR_ERR_MSG_ZOGEO_FILE_FORMAT
'Message d erreur: saisie uniquement de chiffre
Public STR_ERR_MSG_NUMERIC_CAR
'----------------------------------------------------------------------------------
' VARIABLES UTILES A LA METHODE SelectFolder
'----------------------------------------------------------------------------------
Private Const BIF_RETURNONLYFSDIRS = 1
Private Const BIF_DONTGOBELOWDOMAIN = 2
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, _
ByVal lpBuffer As String) As Long
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, _
ByVal lpString2 As String) As Long
Private Type BrowseInfo
hwndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
'----------------------------------------------------------------------------------
' METHODE D OUVERTURE D UNE FENETRE DE SELECTION DE REPERTOIRE
'----------------------------------------------------------------------------------
Public Function SelectFolder(Titre As String, Handle As Long) As String
Dim lpIDList As Long
Dim strBuffer As String
Dim strTitre As String
Dim tBrowseInfo As BrowseInfo
strTitre = Titre
ChDir (STR_STANDARD_WORKFOLDER)
With tBrowseInfo
.hwndOwner = Handle
.lpszTitle = lstrcat(strTitre, "")
.ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN
End With
lpIDList = SHBrowseForFolder(tBrowseInfo)
If (lpIDList) Then
strBuffer = String(260, vbNullChar)
SHGetPathFromIDList lpIDList, strBuffer
SelectFolder = Left(strBuffer, InStr(strBuffer, vbNullChar) - 1)
End If
End Function
'----------------------------------------------------------------------------------
' METHODE D OUVERTURE D UNE FENETRE DE SELECTION DE FICHIER
'----------------------------------------------------------------------------------
Public Function OpenFile(FiltreFichier) As String
'With Statistiques_Form.CommonDialog1
'Positionnement dans le répertoire "standard" de travail
' .InitDir = STR_STANDARD_WORKFOLDER
' .Filter = FiltreFichier
'ouvre la boite ouvrir
'End With
' Statistiques_Form.CommonDialog1.ShowOpen
Dim OFName As OPENFILENAME
OFName.lStructSize = Len(OFName)
'Set the parent window
'OFName.hwndOwner = Null 'Me. hWnd
'Set the application's instance
'OFName.hInstance = Null
'Select a filter
'OFName.lpstrFilter = "Text Files (*.txt)" + Chr$(0) + "*.txt" + Chr$(0) + "All Files (*.*)" + Chr$(0) + "*.*" + Chr$(0)
OFName.lpstrFilter = FiltreFichier
'create a buffer for the file
OFName.lpstrFile = Space$(254)
'set the maximum length of a returned file
OFName.nMaxFile = 255
'Create a buffer for the file title
OFName.lpstrFileTitle = Space$(254)
'Set the maximum length of a returned file title
OFName.nMaxFileTitle = 255
'Set the initial directory
OFName.lpstrInitialDir = STR_STANDARD_WORKFOLDER
'Set the title
OFName.lpstrTitle = TITRE_COMMDLG
'No flags
OFName.flags = 0
'Show the 'Open File'-dialog
If GetOpenFileName(OFName) Then
'MsgBox "File to Open: " + Trim$(OFName.lpstrFile)
OpenFile = OFName.lpstrFile
Else
MsgBox "Cancel was pressed"
End If
End Function
Public Sub Progress(valeur)
If (BL_AFF_TRT_EN_COURS) Then
Dim a
Statistiques_Form.MyProgressBar.Visible = True
Statistiques_Form.MyProgressBar.Min = 0
' Max à 100000 : c'est pour pouvoir la voir défiler
'Statistiques_Form.MyProgressBar.Max = 100000
'For a = 0 To 100000
Statistiques_Form.MyProgressBar.Value = valeur
DoEvents
'If (a 100000) Then a 0
'Next
End If
End Sub
'----------------------------------------------------------------------------------
' METHODE INITIALISANT LES VARIABLES GLOBALES
'----------------------------------------------------------------------------------
'Le paramètre "valeur_dummy" sert uniquement à ce que la procédure
'n'apparaisse pas lors de l'execution à coté de la méthode Main()
Public Sub CommonVarInit(valeur_dummy)
'Fichiers
'Répertoire de travail par défaut ATTENTION IL N EST PAS CREER SI IL N EXISTE PAS
STR_STANDARD_WORKFOLDER = "G:"
'Fichier de Log de la macro
STR_LOG_FILENAME = "Macro.log"
STR_PATH_LOG_FILE = STR_STANDARD_WORKFOLDER & "" & STR_LOG_FILENAME
STR_EXT_OUTPUT_FILE = ".pdf"
'Messages
STR_MSG_BEGIN = "############################ Début de la macro ############################"
STR_MSG_END = "########################### FIN de la macro ###########################" & Chr(13)
NHenry
Messages postés15150Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 août 2024159 9 févr. 2012 à 13:39
Bonjour,
De quel VBA tu parles (dans lequel tu codes) ? (Excel, Word, Access, ...)
Quand tu postes un code, regardes le point 2 de ma signature.
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list ---
dlilou
Messages postés4Date d'inscriptionjeudi 25 février 2010StatutMembreDernière intervention10 février 2012 9 févr. 2012 à 14:59
bonjour
oui effectivement
c'est à partir de BO que je lance ma macro!
merci pour les remarques!
'--------------------------------------------------------------------------------------------
'
' VARIABLES UTILES POUR LA SELECTION DE FICHIERS
'
'--------------------------------------------------------------------------------------------
Public Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" (pOpenfilename As OPENFILENAME) As Long
Public Type OPENFILENAME
lStructSize As Long
hwndOwner As Long
hInstance As Long
lpstrFilter As String
lpstrCustomFilter As String
nMaxCustFilter As Long
nFilterIndex As Long
lpstrFile As String
nMaxFile As Long
lpstrFileTitle As String
nMaxFileTitle As Long
lpstrInitialDir As String
lpstrTitle As String
flags As Long
nFileOffset As Integer
nFileExtension As Integer
lpstrDefExt As String
lCustData As Long
lpfnHook As Long
lpTemplateName As String
End Type
'--------------------------------------------------------------------------------------
'
' DECLARATION DES VARIABLES GLOBALES
'
'--------------------------------------------------------------------------------------
Public separateur As String
Public Type structLigne
codePays As String
zoneGeo As String
End Type
'Nombre maximum de zones géographiques : 100
'(Pour allocation de la mémoire)
Public TabEnreg(50) As structLigne
Public STR_DateChoice
Public STR_IdZoneGeoChoice
Public NbParam
Public STR_VERSION
Public STR_APPLICATION_NAME
Public TITRE_COMMDLG
'Pattern
Public DATE_PATTERN
Public TIME_PATTERN
Public ANNEE_PATTERN
Public MOIS_PATTERN
'Filtres pour l'explorateur de fichier
Public PARAM_FILE_FILTER
Public DOCBO_FILE_FILTER
'Annee minimale saisie
Public INT_anneeMin
'NB d'annees d historique
Public INT_NB_ANNEE_HISTO
'Flag de log
Public BL_FLAG_LOG_DEBUG
Public BL_FLAG_LOG_ERROR
Public BL_FLAG_LOG_INFO
Public BL_FLAG_LOG_WARNING
Public BL_FLAG_LOG_FILE
'Flag d affichage de traitement en cours pour la progress bar...)
Public BL_AFF_TRT_EN_COURS
'Type de Log
Public STR_LOG_DEBUG
Public STR_LOG_ERROR
Public STR_LOG_INFO
Public STR_LOG_WARNING
'Fichiers
'Fichier de Log de la macro
Public STR_LOG_FILENAME
Public STR_PATH_LOG_FILE
Public STR_EXT_OUTPUT_FILE
'Répertoire de travail par défaut
Public STR_STANDARD_WORKFOLDER
'Messages
Public STR_MSG_BEGIN
Public STR_MSG_END
Public STR_ANTISLASH_CAR
'----------------------------------------------------------------------------------
' MESSAGES D ERREUR
'----------------------------------------------------------------------------------
'Messages Lecture/ Ecriture Fichier
Public STR_ERR_MSG_WRITE_FILE
Public STR_ERR_MSG_READ_FILE
'Messages d'erreur suite à une mauvaise saisie de formulaire
Public STR_ERR_MSG_TXT_VIDE_PREFIXE
Public STR_ERR_MSG_TXT_VIDE_SUFFIXE
Public STR_ERR_MSG_DATE_FORMAT
'Messages d'erreur suite à un échec du rafraîchissement
Public STR_ERR_MSG_DOC_BO_NOT_FOUND
Public STR_ERR_MSG_DIR_NOT_FOUND
Public STR_ERR_MSG_ZOGEO_FILE_NOT_FOUND
Public STR_ERR_MSG_ZOGEO_FILE_FORMAT
'Message d erreur: saisie uniquement de chiffre
Public STR_ERR_MSG_NUMERIC_CAR
'----------------------------------------------------------------------------------
' VARIABLES UTILES A LA METHODE SelectFolder
'----------------------------------------------------------------------------------
Private Const BIF_RETURNONLYFSDIRS = 1
Private Const BIF_DONTGOBELOWDOMAIN = 2
Private Declare Function SHBrowseForFolder Lib "shell32" (lpbi As BrowseInfo) As Long
Private Declare Function SHGetPathFromIDList Lib "shell32" (ByVal pidList As Long, _
ByVal lpBuffer As String) As Long
Private Declare Function lstrcat Lib "kernel32" Alias "lstrcatA" (ByVal lpString1 As String, _
ByVal lpString2 As String) As Long
Private Type BrowseInfo
hwndOwner As Long
pIDLRoot As Long
pszDisplayName As Long
lpszTitle As Long
ulFlags As Long
lpfnCallback As Long
lParam As Long
iImage As Long
End Type
'----------------------------------------------------------------------------------
' METHODE D OUVERTURE D UNE FENETRE DE SELECTION DE REPERTOIRE
'----------------------------------------------------------------------------------
Public Function SelectFolder(Titre As String, Handle As Long) As String
Dim lpIDList As Long
Dim strBuffer As String
Dim strTitre As String
Dim tBrowseInfo As BrowseInfo
strTitre = Titre
ChDir (STR_STANDARD_WORKFOLDER)
With tBrowseInfo
.hwndOwner = Handle
.lpszTitle = lstrcat(strTitre, "")
.ulFlags = BIF_RETURNONLYFSDIRS + BIF_DONTGOBELOWDOMAIN
End With
lpIDList = SHBrowseForFolder(tBrowseInfo)
If (lpIDList) Then
strBuffer = String(260, vbNullChar)
SHGetPathFromIDList lpIDList, strBuffer
SelectFolder = Left(strBuffer, InStr(strBuffer, vbNullChar) - 1)
End If
End Function
'----------------------------------------------------------------------------------
' METHODE D OUVERTURE D UNE FENETRE DE SELECTION DE FICHIER
'----------------------------------------------------------------------------------
Public Function OpenFile(FiltreFichier) As String
'With Statistiques_Form.CommonDialog1
'Positionnement dans le répertoire "standard" de travail
' .InitDir = STR_STANDARD_WORKFOLDER
' .Filter = FiltreFichier
'ouvre la boite ouvrir
'End With
' Statistiques_Form.CommonDialog1.ShowOpen
Dim OFName As OPENFILENAME
OFName.lStructSize = Len(OFName)
'Set the parent window
'OFName.hwndOwner = Null 'Me. hWnd
'Set the application's instance
'OFName.hInstance = Null
'Select a filter
'OFName.lpstrFilter = "Text Files (*.txt)" + Chr$(0) + "*.txt" + Chr$(0) + "All Files (*.*)" + Chr$(0) + "*.*" + Chr$(0)
OFName.lpstrFilter = FiltreFichier
'create a buffer for the file
OFName.lpstrFile = Space$(254)
'set the maximum length of a returned file
OFName.nMaxFile = 255
'Create a buffer for the file title
OFName.lpstrFileTitle = Space$(254)
'Set the maximum length of a returned file title
OFName.nMaxFileTitle = 255
'Set the initial directory
OFName.lpstrInitialDir = STR_STANDARD_WORKFOLDER
'Set the title
OFName.lpstrTitle = TITRE_COMMDLG
'No flags
OFName.flags = 0
'Show the 'Open File'-dialog
If GetOpenFileName(OFName) Then
'MsgBox "File to Open: " + Trim$(OFName.lpstrFile)
OpenFile = OFName.lpstrFile
Else
MsgBox "Cancel was pressed"
End If
End Function
Public Sub Progress(valeur)
If (BL_AFF_TRT_EN_COURS) Then
Dim a
Statistiques_Form.MyProgressBar.Visible = True
Statistiques_Form.MyProgressBar.Min = 0
' Max à 100000 : c'est pour pouvoir la voir défiler
'Statistiques_Form.MyProgressBar.Max = 100000
'For a = 0 To 100000
Statistiques_Form.MyProgressBar.Value = valeur
DoEvents
'If (a 100000) Then a 0
'Next
End If
End Sub
'----------------------------------------------------------------------------------
' METHODE INITIALISANT LES VARIABLES GLOBALES
'----------------------------------------------------------------------------------
'Le paramètre "valeur_dummy" sert uniquement à ce que la procédure
'n'apparaisse pas lors de l'execution à coté de la méthode Main()
Public Sub CommonVarInit(valeur_dummy)
'Fichiers
'Répertoire de travail par défaut ATTENTION IL N EST PAS CREER SI IL N EXISTE PAS
STR_STANDARD_WORKFOLDER = "G:"
'Fichier de Log de la macro
STR_LOG_FILENAME = "Macro.log"
STR_PATH_LOG_FILE = STR_STANDARD_WORKFOLDER & "" & STR_LOG_FILENAME
STR_EXT_OUTPUT_FILE = ".pdf"
'Messages
STR_MSG_BEGIN = "############################ Début de la macro ############################"
STR_MSG_END = "########################### FIN de la macro ###########################" & Chr(13)
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018209 9 févr. 2012 à 19:01
Bonjour,
Quand j'ai vu BO, j'ai cru un instant que tu étais rugbyman et tout près de chez moi. J'ai été déçu à la lecture de ta discussion
Pour parler plus sérieusement : tu trouveras peu de gens ici travaillant avec BusinessObjects .
Regardes si tu n"a pas plus de chances de trouver ton bonheur par là :
Tapez le texte de l'url ici.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
NHenry
Messages postés15150Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 août 2024159 9 févr. 2012 à 19:03
Bonjour,
Toujours pas de coloration syntaxique. Relis le point 2.
BO, c'est quoi ?
Regardes les sources sur l'automatisation d'Excel.
---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list ---
Vous n’avez pas trouvé la réponse que vous recherchez ?
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018209 9 févr. 2012 à 19:20
Je crois avoir compris que, depuis ton "BO", il t'est possible d'enregistrer sous format Excel, mais sans les en-têtes et pieds de page
et sans les résultats des calculs éventuels (à refaire sous Excel)
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018209 9 févr. 2012 à 19:26
Et un copain me dit que tu peux également exporter
ActiveDocument.Reports.Item("nom-de-ton-item").ExportAsExcel ("chemin complet du classeur d'accueil")
Mais il me dit lui aussi que cet export réservant quelquefois des surprise, il préfère quant à lui la solution d'un enregistrement au format Excel dont je t'ai parlé.
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
dlilou
Messages postés4Date d'inscriptionjeudi 25 février 2010StatutMembreDernière intervention10 février 2012 9 févr. 2012 à 21:33
bonsoir et merci pour cette solution que je vais essayer!
l'objectif de la macro est d'exporter sous excel un rapport bussiness object rafraichi et mis en page!
et la macro est executée depuis BO!
en tout cas j'essaye et je vous dis si c ok