Har gjort som nedan: Om jag lägger diagrammen i ett diagram-sheet så visas hela diagrammen alltid men då kan man inte bestämma formatet lika fritt (höjd o bredd), så frågan kvarstår... Konsten att visa ett Excel-blad med OLE (kan inte jag…)
Global goExcel As Excel.Application ' Definerar goExcel som ett Excelobjekt
Global ws1 As Excel.Worksheet 'bladet jag vill visa i mallen (mall.xls)
Sub openExcel ()
Dim sökväg As String
Dim mallen As String
'en OLE-ruta är redan inlagd i frmMain med namnet oleDiagram, SizeMode= 3–Zoom
sökväg = CurDir & "\" 'aktuell sökväg (här ligger "mall.xls")
mallen = sökväg + "mall.xls"
Set goExcel = CreateObject("Excel.Application") 'öppnar excel
If goExcel Is Nothing Then
MsgBox "Allvarligt fel! Excel kunde inte startas. Är Office 97 eller senare inst?"
MSExcelOpen = False
Else
MSExcelOpen = True
End If
DoEvents
goExcel.Workbooks.Open (mallen) 'öppnar mall.xls
goExcel.Visible = False 'Excel körs dolt
'(WorkSheets i mallen)
Set ws1 = goExcel.Sheets(1) 'Kalkylbladet med diagrammen
ws1.Select
'--- Ingen vacker lösning… ----------
frmMain.oleDiagram.CreateLink (mallen) 'Länkar OLE till mall.xls
frmMain.oleDiagram.DoVerb 'detta hoppar till excel
'Om man inte gör detta visas inte önskad yta
goExcel.Visible = False 'dölj excel igen...
frmMain.oleDiagram.Update
end sub
Vad som alltid visas i OLE-fönstret var de celler mellan A1 och den cell som markeras om man trycker ”Ctrl”+”End”. Så jag anpassade mina diagram så att de låg inom dessa celler vilket fungerade bra...
Ända tills jag provade på en annan dator. Då kapades plötsligt diagrammen…
Har försökt att låsa visningen till de celler som diagrammen ligger över men inte lyckats…
Ett desperat försök såg ut så här: (DataField ? lät bra...)
frmMain.oleDiagram.DataField = ws1.Range(Cells(1, 1), Cells(40, 15))
vilket inte fungerade, men kanske tydliggör vad jag är ute efter…
Tacksam för hjälp, gärna en kod-snutt som ovan (fast fungerande…)Sv: Konsten att visa ett Excel-blad med OLE (kan inte jag…)
Finns det ingen som vet??