Création de graphiques

Forum destiné aux questions sur le développement : Formules, LotusScript, Java ...

Création de graphiques

Messagepar Bonoboo » 26 Mai 2003 à 15:11

Je souhaiterai créer un graphique sous excel à partir de valeurs contenues dan sdes vues Lotus Notes.J'ai fait quelques essais mais je n'arrive pas à trouver le bon script.Est-ce que quelqu'un pourrait m'indiquer comment y parvenir ?
Bonoboo
 

Re: Création de graphiques

Messagepar Raziel » 26 Mai 2003 à 15:53

Petite infos...Tu lance l'enregistreur de macro, tu exécute les différentes commandes que doivent faire ton script et tu regardes le code généré. Il te suffit allors d'apporter quelques modif pourque cela fonctionne sous notes.
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Re: Création de graphiques

Messagepar Bonoboo » 26 Mai 2003 à 16:11

J'ai déja lancé l'éditeur de Macro. Aprés quelques modif, j'ai généré le code lotusscript suivant.Pour que ce soit plus simple, j'ai choisi d'ouvrir un fichier excel déjà existant.Après cela je souhaite donc créer le graphique.Ca me fait un script comme ca :Sub Click(Source As Button) Dim Session As New NotesSession Dim db As NotesDatabase Dim sourceview As NotesView Dim sourcedoc As NotesDocument Dim dataview As NotesView Dim dc As NotesDocumentCollection Dim datadoc As NotesDocument Dim maxcols As Integer Dim WS As New Notesuiworkspace Dim ViewString As String Dim Scope As String Dim GetField As Variant Dim C As NotesViewColumn Dim FieldName As String Dim K As Integer Dim N As Integer Dim xlApp As Variant Dim xlsheet As Variant Dim rows As Integer Dim cols As Integer Dim nitem As NotesItem Dim entry As NotesViewEntry Dim vwNav As NotesViewNavigator Dim ShowView() As Variant Dim i As Integer Dim VList As Variant Dim ColVals As Variant %REMvariables pour le nom d'export%END REM Dim nomFichier As String Dim repertoire As String Dim file As Variant Dim nomComplet As String Dim xlsWorkBook As Variant Dim graph As Variant nomComplet="c:\Documents and Settings\frsk840\My Documents\Enquete Satisfaction\Classeur1.xls" Set xlApp = CreateObject("Excel.Application") xlApp.StatusBar = "Ouverture du fichier en cours. Veuillez patienter..." Set xlsWorkBook = OpenXlsFile (nomComplet, xlApp) xlApp.StatusBar = "Création du tableau. Veuillez patienter..." xlApp.Visible = True xlApp.ReferenceStyle = 1 Set xlsheet = xlsWorkbook.ActiveSheet %REMdébut script pour la création des graphiques%END REM xlApp.Range("B2:H2,B6:H6").Select xlApp.Range("B6").Activate Set graph=xlsheet.ChartObjects(1).Add() graph.ChartType=xlColumnClustered graph.SetSourceData(xlsheet.Range("B1:I1,B6:I6")) graph.SeriesCollection(1).Name="Résultat Global" graph.Location(xlLocationAsObject) With graph .HasTitle=False .ChartTitle.Characters.Text="Moyenne Globale" .Axes(xlCategory,xlPrimary).HasTitle=False .Axes(xlValue,xlPrimary).HasTitle=False End With xlApp.Range("A1").Select xlApp.StatusBar = "L'importation des données de Lotus Notes est terminée" dataview.clear Set xlapp=Nothing Set db=Nothing End SubFunction OpenXlsFile(Path As String, xlsObject As Variant) As Variant xlsObject.Workbooks.Open Path Set OpenXlsFile = xlsObject.ActiveWorkbookEnd Functionsi quelqu'un peut me dire les modifs a apporter... je suis preneur. Mon erreur est générée à la ligne set graph=...Merci beaucoup
Bonoboo
 

Re: Création de graphiques

Messagepar Raziel » 26 Mai 2003 à 17:04

Tiens, essaie ce petit bout de code.J'ai un fichier excel contenant plusieurs onglets. J'active la feuille nommé "Feuil1" et fait une sélection de cellule. Ensuite je génère le graphnomComplet="c:\temp\Tarifs2003.xls"Set xlApp = CreateObject("Excel.Application") xlApp.StatusBar = "Ouverture du fichier en cours. Veuillez patienter..." Set xlsWorkBook = OpenXlsFile (nomComplet, xlApp)xlApp.StatusBar = "Création du tableau. Veuillez patienter..."xlApp.Visible = TruexlApp.ReferenceStyle = 1 Set xlsheet = xlApp.Application.Sheets("Feuil1")xlsheet.Range("B2:H6").Select Set Graph = xlsWorkBook.Charts.AddSet Graph = xlsWorkBook.ActiveChartGraph.ChartType = 51 Graph.SetSourceData xlApp.Application.Sheets("Feuil1").Range("B2:H6") Graph.Location 2, "Feuil1" xlApp.StatusBar = "L'importation des données de Lotus Notes est terminée" Set xlapp=NothingSet db=Nothing
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Re: Création de graphiques

Messagepar Bonoboo » 27 Mai 2003 à 08:18

Merci beaucoup !J'ai essayé le code en le modifiant pour réaliser un graph par rapport à mes données et c'est nickel.Maintenant, j'ai juste un autre petit problème. Quand je veux prendre des valeurs depuis une vue lotus vers un fichier excel pour pouvoir ensuite générer un graphe, ca me met des cotes devant les chiffres dans les cellules. Cad au lieu de mettre 5, ca met '5.Aurais-tu une idée de code pour éviter ces choses la ?
Bonoboo
 

Re: Création de graphiques

Messagepar Raziel » 27 Mai 2003 à 08:37

Je ne comprends pas d'ou peuvent venir les ''Je fais ce genre de traitement et je n'ai pas ce pbEx :xlApp.Application.Sheets("Feuil1").Cells(2,1).Value = "1"xlApp.Application.Sheets("Feuil1").Cells(2,2).Value = 1me donne une entrée de type texte du coté d'excel (ce qui ne bloque pas la génération du graph).Pourrais tu nous en dire plus sur ton code d'extraction et notamment la ligne qui te génère des '' pour les données numériques ?
Raziel

L'administration est un lieu ou les gens qui arrivent en retard croisent dans l'escalier ceux qui partent en avance. [Georges Courteline]
Avatar de l’utilisateur
Raziel
Modérateur
Modérateur
 
Message(s) : 1795
Inscrit(e) le : 21 Déc 2004 à 11:06
Localisation : Roubaix

Re: Création de graphiques

Messagepar Bonoboo » 27 Mai 2003 à 09:43

En fait j'ai trouvé une erreur dans mon code.Il y avait un problème lorsque je recopiais les données. Au début j'avais réalisé deux cas en fonction du type de la valeur : String ou autre.Après avoir changé le code et sans les différencier, ca marche.Merci beaucoup pour tes conseils éclairés !AmicalementAnnexe:pour les gens qui auraient le meme problemeAncien code :Set entry=vwnav.GetFirstDocument rows=3 Do While Not (entry Is Nothing) For cols=1 To maxcols colvals=entry.ColumnValues(cols-1) scope=Typename(colvals) Select Case scope Case "STRING" xlsheet.Cells(rows,cols).Value ="'" + colvals Case Else xlsheet.Cells(rows,cols).Value = colvals End Select Next colsrows=rows+1Set entry = vwnav.getnextdocument(entry)LoopNouveau Code :Set entry=vwnav.GetFirstDocumentrows=3Do While Not (entry Is Nothing)For cols=1 To maxcols colvals=entry.ColumnValues(cols-1)xlsheet.Cells(rows,cols).Value =colvals End SelectNext colsrows=rows+1Set entry = vwnav.getnextdocument(entry)Loop
Bonoboo
 


Retour vers Développement

cron