gros probleme d'exportation....
bonjour tout le monde,Je dois exporter des colonnes de notes sous excel en relevant d'abord le noms des colonnes de Excel puis les comparer a celles existantes sous Notes pour enfin n'exporter que les donnees correspondantes aux colonnes existantes sous excel....voila le code que j'ai fait (avec l'aide de votre forum en partie...)est ce que qqun pourrait me dire quelles modifications je dois faire pour parvenir a obtenir ce que je veux.... et puis je n'ai pas fait la partie comparaison des noms de colonnes récupérees sous Notes avec celles existantes sous Notes, je n'ai pas su le faire en fait!
Sub Initialize Dim Session As New NotesSession Dim db As NotesDatabase Dim xlsObject As Variant Dim xlsWorkBook As Variant Dim xlsSheet As Variant Dim tableau() As String Dim maxcols As Integer Dim tCol() As String Dim dataview As NotesView Dim IndLigne As Integer ' indice de parcours des lignes Dim IndCol As Integer ' indice de parcours des colonnes Dim collection As NotesDocumentCollection ' Dim Columns As notesViewColumnArray Set db = session.CurrentDatabase ' Set dataview = db.getview(view.Name) ' Set dataview = db.getview(ViewString) ' Ouvre la vue Set xlsObject = CreateObject( "Excel.Application" ) ' Ouverture du fichier. En retour, on récupère le classeur Set xlsWorkBook = OpenXlsFile ("C:\layou.xls", xlsObject) xlsObject.Visible = False ' Récupération de la feuille data Set xlsSheet = xlsWorkbook.Worksheets("data") ' Récupération du titre de mes colonnes existantes sous excel ' avec utilisation d'un boucle while' Récupération du nbre de colonnes de la vue en question maxcols = Ubound (view.Columns) + 1' Redimensionnement du tableau Redim tCol(maxcols) As String Dim i As Integer Dim sMsg As String For i = 0 To maxcols tCol(i) = xlsSheet.Cells(1,i+1).Value Next i For i = 0 To maxcols sMsg = sMsg + "Col" + Cstr(i+1) + " : " + tCol(i) + " " Next i Msgbox sMsg ' nombre total de colonnes de la vue maxcols = Ubound (view.Columns) + 1' Redimensionnement du tableau Redim tCol2(maxcols) As String Dim Indice As Integer Dim sMsg2 As String ' recupération du noms des colonnes du fichier excel For Indice = 0 To maxcols tCol2(Indice) = xlsSheet.Cells(1,Indice+1).Value Next Indice 'affichage d'un message de confirmation avec les différentes colonnes relevées. For Indice = 0 To maxcols sMsg2 = sMsg2 + "Col" + Cstr(Indice+1) + " : " + tCol2(Indice) + " " Next Indice Msgbox sMsg2'appel de la procedure permettant l'export des colonnes selectionnées précédemment! Call ExtractNotesToExcel(Lview, TabCol) ' Fermeture du classeur excel xlsWorkbook.Close False xlsObject.Quit 'appel de la procedure permettant l'export des colonnes selectionnées précédemment! Call ExtractNotesToExcel(Lview, TabCol) End SubFunction OpenXlsFile (Path As String, xlsObject As Variant) As Variant xlsObject.Workbooks.Open Path Set OpenXlsFile = xlsObject.ActiveWorkbookEnd FunctionSub ExtractNotesToExcel (Vue, TabCol As Variant) Dim Doc As notesdocument Dim Valeur As Variant Dim xlApp As Variant Dim Ligne As Integer Dim Colonne As Integer Dim IndiceTab As Integer Set Doc = Vue.getfirstdocument If Not Doc Is Nothing Then' Création de l'objet Excel Set xlApp = createObject("Excel.sheet")' Création du classeur Excel xlApp.Application.Workbooks.add' Création d'une page avec renommage xlApp.Application.Sheets.add xlApp.Application.Sheets(xlApp.Application.activesheet.name).Name = "Exportation vue Notes" End If Ligne = 1 While Not Doc Is Nothing Colonne = 1 For IndiceTab = 0 To Ubound(TabCol) Valeur = Doc.ColumnValues(Val(TabCol(IndiceTab))) xlApp.Application.activesheet.Cells(Ligne,Colonne).Value = Valeur Colonne = Colonne + 1 Next ' Passage au doc suivant Set Doc = Vue.getnextdocument(Doc) Ligne = Ligne + 1 Wend ' On rend le classeur Excel visible xlApp.application.visible= True ' Enregistrement du doc xlApp.Application.activesheet.SaveAs "C:\Temp\Classeur2.xls"End Subj'attends vos réponses... elles me sont d'une précieuse aide!Merci par avance!Lorine