Page 3 sur 3
Re: exportation Notes-Excel

Publié:
07 Mai 2003 à 14:06
par leila
L'erreur générée a la fin n'existe plus.Elle a disparu

je ne sais par quel miracle !! tant mieux en tout cas. Mais a la fin de l'export, aucune donnée n'apparait sur la feuille excel. Pourkoi? Pourtant j'ai remplacé la ligne de code! et puis je ne sais pas pourquoi, le nombre de colonnes est limité a 4! en fait, une fois que indice2 atteint 4, la boite de dialogue affiche 3 noms de colonnes... aas plus.
Re: exportation Notes-Excel

Publié:
07 Mai 2003 à 14:26
par Raziel
Oups, je t'ai dis une bétise au dessusC'est le code suivant qu'il fallait remplacerForall Colonne In Vue.ColumnsIf Colonne.Title <> "" And Colonne.IsHidden = False ThenRedim Preserve NomCol(Indice2) As StringNomCol(indice2) = Colonne.Title + "|" + Str$(Indice)Indice2 = Indice2 + 1End IfIndice = Indice + 1End ForallparForall Colonne In Vue.ColumnsRedim Preserve NomCol(Indice2) As StringIf Colonne.Title <> "" ThenNomCol(indice2) = Colonne.Title + "|" + Str$(Indice)ElseNomCol(indice2) = "Colonne " + Trim(Str$(Indice + 1)) + "|" + Str$(Indice)End IfIndice2 = Indice2 + 1Indice = Indice + 1End ForallCe code corrige ausii un pb dans le cas ou il y a plusieurs colonnes sans titre et que tu en sélectionne une pour l'export. Dans ce cas, il exportait toutes les colonnes sans titre.Les noms de colonnes que tu obtiens dans ta boite sont ils affichés les uns en dessous des autres ? Si c'est le cas, vas dans les propriétés du champs SelectColonnes, onglet 2 et augmente le nombre de colonnes : 4 par exemple.Fais aussi attention à la taille de ta zone de présentation car cette dernière n'est pas dynamique.Pour ce qui est de l'extraction, le code ne sait pas extraire des valeurs calculé à partir de la vue. Ex : Si ta colonne 2 contient la taille du message et que tu demande de l'extraire, au final, tu obtiens des valeurs vides. Les valeurs extraitent sont celles contenu dans des champs du document.
Re: exportation Notes-Excel

Publié:
07 Mai 2003 à 14:49
par leila
Les noms de colonnes que j'obtiens ne sont pas les une sous les autres! elles présentées les unes a coté des autrs, et le probleme perciste!!!!!!!!!!! je n'obitens que le nom des 4 premieres colonnes, et pas tous les noms... pourquoi?????????? cela, n'a donc aucun rapport avec le fait que ce soit des colonnes sans trite ou pas.... non?
Re: exportation Notes-Excel

Publié:
07 Mai 2003 à 15:39
par Raziel
Peux tu m'envoyer ta base qui j'y jette un oeil.J'ai essayé le script que je t'ai envoyé sur une vue de 15 colonnes et j'ai bien mes 15 colonnes qui apparaissent (en V5).
Re: exportation Notes-Excel

Publié:
09 Mai 2003 à 08:28
par leila
c'est bon, ca a marché!!!! en fait, c'est moi qui limitait le nombre de colonnes a 4.Maintenant, j'ai une autre question

Comment peut-on faire (en script), pour ouvrir un document excel déja existant (nommé par exemple "text.xls" et récupéré le nom des colonnes existantes dans le fichier en question (celles-ci se trouvant dans la 3° feuilles du fichier) afin d'exporter que les colonnes nécessaires....Merci de bien vouloir m'aider parce que je galère la dessus depuis un bon moment....

Re: exportation Notes-Excel

Publié:
10 Mai 2003 à 10:18
par Stephane Maillard
Bonjour,Ci-dessous le code d'exportation de vue :Sub Initialize 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 '***** Vous pouvez modifier le code pour qu'il fasse appel à une autre base dedocument Set db = session.CurrentDatabase Vlist= db.views ' Récupère les vue de la base K=Ubound(Vlist) ' Récupère le nombre de vue Redim Preserve ShowView(K) N=-1 For i = 0 To K If Len(Vlist(i).Name) >0 Then FieldName=Trim(Vlist(i).Name) If Mid(Fieldname,1,1) <>"(" Then ' On n'affiche pas les vues caché N=N+1 ShowView(N) = FieldName End If End If Next i Redim Preserve ShowView(N) ' Trie les vues par ordre alphabétique For i=0 To N For K=i To N If ShowView(i) > ShowView(k) Then FieldName=ShowView(i) ShowView(i) = ShowView(k) ShowView(k)=FieldName End If Next k Next i viewstring= ws.Prompt(PROMPT_OKCANCELLIST,"Liste des vues","Choisissez unevue","",ShowView ) If Len(viewstring)=0 Then Exit Sub Set dataview = db.getview(ViewString) ' Ouvre la vue Set vwnav= dataview.createViewnav() rows = 1 cols = 1 maxcols=dataview.ColumnCount ' Récupère le nombre de colonne Set xlApp = CreateObject("Excel.Application")' Lance Excel xlApp.StatusBar = "Création du tableau. Veuillez patienter..." xlApp.Visible = True xlApp.Workbooks.Add xlApp.ReferenceStyle = 2 Set xlsheet = xlApp.Workbooks(1).Worksheets(1) ' On prend la premièrefeuille du classeur ' On met le titre de la vue xlsheet.Cells(rows,cols).Value ="Vue : " + ViewString + ", de la base : " +db.title +", extraction du : " + Format(Now,"mm/dd/yyyy HH:MM") xlApp.StatusBar = "Création des entêtes de colonnes. Veuillez patienter..." rows=2 ' On commence à la deuxième ligne For K=1 To maxcols Set c=dataview.columns(K-1) xlsheet.Cells(rows,cols).Value = c.title cols = cols + 1 Next K Set entry=vwnav.GetFirstDocument rows=3 ' On se place sur la troisième ligne 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 cols xlApp.StatusBar = "Importation des données - Document " & rows-1 '& " sur" & dc.count & "." rows=rows+1 Set entry = vwnav.getnextdocument(entry) Loop xlApp.Rows("1:1").Select xlApp.Selection.Font.Bold = True xlApp.Selection.Font.Underline = True xlApp.Range(xlsheet.Cells(2,1), xlsheet.Cells(rows,maxcols)).Select xlApp.Selection.Font.Name = "Arial" xlApp.Selection.Font.Size = 9 xlApp.Selection.Columns.AutoFit With xlApp.Worksheets(1) .PageSetup.Orientation = 2 .PageSetup.centerheader = "Rapport" .Pagesetup.RightFooter = "Page &P" & Chr$(13) & "Date : &D" .Pagesetup.CenterFooter = "" End With xlApp.ReferenceStyle = 1 xlApp.Range("A1").Select xlApp.StatusBar = "L'importation des données de Lotus Notes est terminé." '***** Vous pouvez activer la ligne ci-dessous si vous voulez enregistrerle document en automatique 'xlapp.ActiveWorkbook.saveas "C:\Vue" + Trim(Format(Now,"yyy")) ' Sauve ledocument dataview.clear Set xlapp=Nothing ' Stop l'automation excel Set db=NothingEnd Sub[%sig%]