Voilà le script en entier :
Sub exportPhase1
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim view_profile As NotesView
Dim collection As NotesDocumentCollection
Dim doccollection As NotesDocument
Dim docprofile As NotesDocument
Dim doc1 As NotesDocument
Dim docSave As NotesDocument
Dim keys (1 To 2 )
Dim ExcelObj As Variant
Dim ExcelBook As Variant
Dim ExcelSheet As Variant
Dim ExcelRange As Variant
Dim cpt As Single
cpt=0
Set db = session.GetDatabase("Falcon/Eur/Raychem","FASTTEDDSELL2001RI.nsf" )
'Log file creation
Set agentLog = New NotesLog ("LoadFast/Productional compare" )
Call agentLog.OpenNotesLog ("","logresearch.nsf" )
Call agentLog.LogAction("Beginning of comparison at " & Format(Now(),"Long Time" ))
'View selection
Set view = db.GetView("$researchview" )
Set view_profile = db.GetView("dbprofile" )
Set doc1 = view.GetFirstDocument
Set docprofile = view_profile.GetFirstDocument
Set ExcelObj = CreateObject("Excel.Application" )
Set ExcelBook = ExcelObj.Workbooks.Add
Set ExcelSheet = ExcelBook.Worksheets (1)
pathXL$ = ExcelObj.path
path$="d:\Test\"
file$="exportPhase1.xls"
pathfile$=path$+file$
i& = 1
lineXL% = 1
ExcelObj.visible = True
ExcelObj.Columns.Select
ExcelObj.Selection.NumberFormat = "@"
columnSalesNumXL% = 1
columnCustnumXL% = 2
columnOrgidXL% = 3
columnPCNXL% = 4
columnForecast2002Q1XL% = 5
columnForecast2002Q2XL% = 6
columnForecast2002Q3XL% = 7
columnForecast2002Q4XL% = 8
columnForecast2003Q1XL% = 9
columnForecast2003Q2XL% = 10
columnForecast2003Q3XL% = 11
columnForecast2003Q4XL% = 12
columnPlan2002Q1XL%= 13
columnPlan2002Q2XL%= 14
columnPlan2002Q3XL%= 15
columnPlan2002Q4XL%= 16
columnActual2002Q1XL% = 17
columnActual2002Q2XL% = 18
columnActual2002Q3XL% = 19
columnActual2002Q4XL% = 20
ExcelSheet.cells(lineXL%,columnSalesNumXL%).value = "Salesman Number "
ExcelSheet.cells(lineXL%,columnCustnumXL%).value = "Custnum "
ExcelSheet.cells(lineXL%,columnOrgidXL%).value = "Orgid "
ExcelSheet.cells(lineXL%,columnPCNXL%).value = "PCN "
ExcelSheet.cells(lineXL%,columnForecast2002Q1XL%).value = "Forecast 2002 Q1"
ExcelSheet.cells(lineXL%,columnForecast2002Q2XL%).value = "Forecast 2002 Q2"
ExcelSheet.cells(lineXL%,columnForecast2002Q3XL%).value = "Forecast 2002 Q3"
ExcelSheet.cells(lineXL%,columnForecast2002Q4XL%).value = "Forecast 2002 Q4"
ExcelSheet.cells(lineXL%,columnForecast2003Q1XL%).value = "Forecast 2003 Q1"
ExcelSheet.cells(lineXL%,columnForecast2003Q2XL%).value = "Forecast 2003 Q2"
ExcelSheet.cells(lineXL%,columnForecast2003Q3XL%).value = "Forecast 2003 Q3"
ExcelSheet.cells(lineXL%,columnForecast2003Q4XL%).value = "Forecast 2003 Q4"
ExcelSheet.cells(lineXL%,columnPlan2002Q1XL%).value = "Plan 2002 Q1"
ExcelSheet.cells(lineXL%,columnPlan2002Q2XL%).value = "Plan 2002 Q2"
ExcelSheet.cells(lineXL%,columnPlan2002Q3XL%).value = "Plan 2002 Q3"
ExcelSheet.cells(lineXL%,columnPlan2002Q4XL%).value = "Plan 2002 Q4"
ExcelSheet.cells(lineXL%,columnActual2002Q1XL%).value = "Actual 2002 Q1"
ExcelSheet.cells(lineXL%,columnActual2002Q2XL%).value = "Actual 2002 Q2"
ExcelSheet.cells(lineXL%,columnActual2002Q3XL%).value = "Actual 2002 Q3"
ExcelSheet.cells(lineXL%,columnActual2002Q4XL%).value = "Actual 2002 Q4"
lineXL% = 3
If Not(doc1 Is Nothing) Then
' While Not(doc1 Is Nothing)
' Save the current document
Set docSave = doc1
keys(1) = doc1.salesmannum(0)
keys(2) = doc1.custnum(0)
' Get the collection from the productional database by salesmannum and custnum
Set collection = view.GetAllDocumentsByKey(keys,True)
Set doccollection = collection.GetFirstDocument
' Messagebox("Nb doc : " & collection.count)
' While Not(doccollection Is Nothing)
While Not( cpt = 5)
ExcelSheet.cells(lineXL%,columnSalesNumXL%).value = doccollection.salesmannum(0)
ExcelSheet.cells(lineXL%,columnCustnumXL%).value = doccollection.custnum(0)
ExcelSheet.cells(lineXL%,columnOrgidXL%).value = doccollection.acctorgid(0)
ExcelSheet.cells(lineXL%,columnPCNXL%).value = doccollection.PCN(0)
ExcelSheet.cells(lineXL%,columnForecast2002Q1XL%).value = doccollection.runfcs_q1_sh(0)
ExcelSheet.cells(lineXL%,columnForecast2002Q2XL%).value = doccollection.runfcs_q2_sh(0)
ExcelSheet.cells(lineXL%,columnForecast2002Q3XL%).value = doccollection.runfcs_q3_sh(0)
ExcelSheet.cells(lineXL%,columnForecast2002Q4XL%).value = doccollection.runfcs_q4_sh(0)
ExcelSheet.cells(lineXL%,columnForecast2003Q1XL%).value = doccollection.runfcsnextfy_q1_sh(0)
ExcelSheet.cells(lineXL%,columnForecast2003Q2XL%).value = doccollection.runfcsnextfy_q2_sh(0)
ExcelSheet.cells(lineXL%,columnForecast2003Q3XL%).value = doccollection.runfcsnextfy_q3_sh(0)
ExcelSheet.cells(lineXL%,columnForecast2003Q4XL%).value = doccollection.runfcsnextfy_q4_sh(0)
ExcelSheet.cells(lineXL%,columnPlan2002Q1XL%).value = doccollection.plan_q1_sh(0)
ExcelSheet.cells(lineXL%,columnPlan2002Q2XL%).value = doccollection.plan_q2_sh(0)
ExcelSheet.cells(lineXL%,columnPlan2002Q3XL%).value = doccollection.plan_q3_sh(0)
ExcelSheet.cells(lineXL%,columnPlan2002Q4XL%).value = doccollection.plan_q4_sh(0)
ExcelSheet.cells(lineXL%,columnActual2002Q1XL%).value = doccollection.act_q1_sh(0)
ExcelSheet.cells(lineXL%,columnActual2002Q2XL%).value = doccollection.act_q2_sh(0)
ExcelSheet.cells(lineXL%,columnActual2002Q3XL%).value = doccollection.act_q3_sh(0)
ExcelSheet.cells(lineXL%,columnActual2002Q4XL%).value = doccollection.act_q4_sh(0)
lineXL%=lineXL%+1
cpt=cpt+1
Set doccollection = collection.GetNextDocument(doccollection)
Wend
' While (doc1.salesman(0) = docSave.salesman(0) And doc1.custnum(0) = docSave.custnum(0))
' Set doc1 = view.GetNextDocument(doc1)
' Wend
' Wend
End If
ExcelSheet.cells.select
Call ExcelSheet.Selection.Sort("Range(" & Chr$(34) & "A1" & Chr$(34) & " )", "xlAscending", "xlGuess", 1, "False", "xlTopToBottom" )
With ExcelObj
.cells
.Selection.Columns.AutoFit
End With
Call ExcelBook.SaveAs(pathfile$,True)
Msgbox "File save on " + pathfile$
Call ExcelObj.Quit
End Sub
---------------
Q.G Tutoriaux ici