Précédent   Forum des professionnels en informatique > Logiciels > Solutions d'entreprise > Business Intelligence > Business Objects > SDK
SDK Forum d'entraide pour la programmation des outils BO par des API (VBA, ASP, Java)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/09/2007, 14h01   #1
Nouveau Membre du Club
 
Inscription : février 2006
Messages : 107
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2006
Messages : 107
Points : 39
Points : 39
Par défaut [BO 5][VBA] Macros et boutons

Bonjour,

Eh non ce n'est pas une discussion sur la sardine... ok je sors pardon

Je souhaiterai permettre à mon utilisateur de faire un export excel via le rapport qu'il vient d'ouvrir.
Pour ceci je n'utilise pas la commande exporter des données intégrée (parait que c'est trop compliqué...) mais une macro vba.
La macro fonctionne (à peu pres ) mais je me retrouve dans l'impossibilité de rajouter un bouton à mon rapport pour permettre à l'utilisateur d'activer la macro( comme dans excel ou n'importe quel langage de programmation).
Quelqu'un a t il deja fait ca? Si oui je veux bien un piti coup de main s'il vous plait...
Sinon j'ai vu qu'il y avait possibiliter de creer des user form en vba, mais comment integrer ces user form au rapport?

Avant toute chose dites moi si c'est possible Ou s'il faut que je le convaincque que l'export intégré est vachement bien...

Merci d'avance
n.roussaly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2007, 14h55   #2
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 181
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 181
Points : 2 717
Points : 2 717
Le problème avec BO V5 c'est que les exports possibles en VB sont :
Code :
1
2
3
4
5
6
7
8
9
10
 
DataProvider.ExportToRDBMS
 
Document.ExportAsPDF
Document.ExportSheetsAsHtml
 
Report.ExportAsHtml
Report.ExportAsPDF
Report.ExportAsRtf
Report.ExportAsText
Alors que Dans le Gestionnaire de données
Exporter propose Excel97 ....

Il a fallu attendre la version 6 pour avoir : en plus de ceux de la V5
Code :
1
2
3
Document.ExportAsXML
Report.ExportAsExcel
Report.ExportAsHtmlPage
Je pense que tu as la réponse ....
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2007, 15h02   #3
Nouveau Membre du Club
 
Inscription : février 2006
Messages : 107
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2006
Messages : 107
Points : 39
Points : 39
Merci pour ta réponse, mais a priori j'ai encore une fois pas été clair
J'utilise ce code VBA qui fait ce que je veux:

Citation:
Avis aux amateur
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
 
Sub ExportExcel()
 
 
 
'Macro BO créée le 25 janvier 2005 par Gerfaut
 
'Cette commande vise à automatiser l'exportation du résultat d'une requête BO
 
'vers un fichier Excel. Celui-ci pourra ensuite être employé comme table liée
 
'dans un gestionnaire de base de données type Access.
 
 
 
 
 
'Déclaration des commandes et contrôles BO
 
Dim BOCmdBar As CmdBar
 
Dim BOCmdBarControls As CmdBarControls
 
Dim BOControlButton As Control
 
Dim BOCmdBarPopup As CmdBarPopup
 
Dim BOCmdBarButton As CmdBarButton
 
 
 
'Déclaration des documents standard utilisés
 
Dim affectation AS Document
 
 
 
'Déclaration de l'objet à créer (fichier Excel)
 
SET xcl = CreateObject("Excel.Application")
 
 
 
'0/ Déclaration des fichiers BO d'origine et Excel de destination
 
'   Remarque : pour copier cette macro sur une autre requête, il faut
 
'   modifier le nom du fichier de destination ci-dessous
 
strFileName = "C:\Absences.xls"
 
SET affectation = Application.Documents.Open("C:\Absences.rep")
 
 
 
'1/ Rafraichissement des données de la requête
 
affectation.Refresh
 
 
 
'2/ Copie des éléments calculées par la requête
 
'   Remarque : il s'agit du 2° menu et de la 20° commande
 
SET BOCmdBar = Application.CmdBars.Item(2)
 
SET BOCmdBarControls = BOCmdBar.Controls
 
SET BOCmdBarPopup = BOCmdBarControls.Item(2)
 
SET BOCmdBarButton = BOCmdBarPopup.CmdBar.Controls.Item(20)
 
BOCmdBarButton.Execute
 
 
 
'3/ Ouverture du fichier Excel destinataire
 
xcl.Workbooks.Open Filename:=strFileName
 
xcl.Visible = True
 
 
 
'4/ Réinitialisation des données (remise à zéro)
 
'   Remarque : il faut veiller à ne pas renommer l'onglet "feuil1"
 
'   dans le fichier de destination
 
xcl.Sheets("feuil1").Select
 
xcl.Cells.Select
 
xcl.Selection.ClearContents
 
xcl.Range("A1").Select
 
 
 
'5/ Collage des éléments dans Excel
 
xcl.Application.DisplayAlerts = False
 
xcl.Sheets("feuil1").SELECT
 
xcl.Range("A1").SELECT
 
xcl.ActiveSheet.Paste
 
 
 
'6/ Sauvegarde du fichier Excel puis on quitte Excel
 
xcl.ActiveWorkbook.SaveAs Filename:=strFileName
 
xcl.Quit
 
Set xcl = Nothing
 
 
 
End Sub
Le soucis c'est que je dois executer la macro soit:
- via le bouton macro, executer
- en la lancant au refresh ou à l'ouverture

Mais la solution ne me satisfait pas.
Ce que j'aimerai c'est poser un bouton sur le rapport et que l'utilisateur clique dessus...

C'est possible ca?
n.roussaly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2007, 16h49   #4
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 181
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 181
Points : 2 717
Points : 2 717
Désolé j'avais pas bien compris
Sur le rapport même je n'ai jamais réussi mais j'utilise un Objet Form
qui peut contenir des boutons ou des images dotés d'événements :
Click, DblClick, Enter ...

Le formulaire peut très bien s'afficher après chaque rafraichissement
Code :
1
2
Sub Document_AfterRefresh()
NomDuForm.SHOW
Show en minuscule suffit la balise code me le met en majuscule ...le refresh pouvant se déclancher aussi sur
Code :
1
2
Sub Document_Open()
Application.ActiveDocument.Refresh
Ca répond mieux cette fois ci ?
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2007, 17h01   #5
Nouveau Membre du Club
 
Inscription : février 2006
Messages : 107
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2006
Messages : 107
Points : 39
Points : 39
Effectivement c'était plus le sens de la question
Du coup je me permets de juste poser la question suivante:
est il possible de créer un fichier excel qui n'existe pas via vba? si oui, à quoi ressemble le code?
Merci pour tout, je ferme le poste des qu'on me dit ici c'est pas vba
n.roussaly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2007, 17h25   #6
Nouveau Membre du Club
 
Inscription : février 2006
Messages : 107
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2006
Messages : 107
Points : 39
Points : 39
Bon allez je ferme en sortant
Voici le code qui permet de créer un fichier ou de l'écraser selon qu'il existe ou non:
Code :
1
2
3
4
 
Dim ExcelSheet AS Object
SET ExcelSheet = CreateObject("Excel.Sheet")
ExcelSheet.SaveAs pathExport
n.roussaly est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/09/2007, 17h41   #7
Rédacteur
 
Avatar de Bruno2r
 
Bruno ROMAN-RUIZ
Inscription : décembre 2006
Messages : 2 181
Détails du profil
Informations personnelles :
Nom : Bruno ROMAN-RUIZ
Âge : 57

Informations professionnelles :
Secteur : Santé

Informations forums :
Inscription : décembre 2006
Messages : 2 181
Points : 2 717
Points : 2 717
ou bien
Code :
Shell ("C:\Program Files\Microsoft Office\Office10\Excel.exe")
Bruno2r est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h49.


 
 
 
 
Partenaires

Hébergement Web