Avatar billede rvm Nybegynder
24. november 2004 - 11:13 Der er 22 kommentarer og
1 løsning

Embeded Excel i VB - tilføje dataserie i graf

Hvordan tilføjer jeg en dataserie i en graf i et indlejret Excelobjekt? Har forsøgt med nedenstående kode, men det virker ikke :-(

Option Explicit

Public Book As Excel.Workbook

Private Sub Form_Load()
    Set Book = Sheet1.Object
   
    Dim oChtObj As ChartObject
    Set oChtObj = Book.ActiveSheet.ChartObjects("Diagram 1")
    oChtObj.Chart.SeriesCollection.Add _
    Source:=Book.ActiveSheet.Range("A14:E14")
End Sub

Den fejler på sidste linie
Avatar billede martin_moth Mester
24. november 2004 - 11:47 #1
Uden at jeg forventer at kunne hjælpe, er det nok en god ide at skrive HVAD fejlbeskedden er... :o)
Avatar billede rvm Nybegynder
24. november 2004 - 11:49 #2
Automatiseringsfejl...
Avatar billede overchord Nybegynder
24. november 2004 - 12:26 #3
Proev at fjernes dit kolon

Source = istedet

hvis det stadig ikke virker saa proev med
OChtObj.Rowsource =
Avatar billede rvm Nybegynder
24. november 2004 - 12:31 #4
Første forslag gav en fejlen: "Type mismath"
Andet forslag gave fejlen: "Object doesn't support this property or method"
Avatar billede martin_moth Mester
24. november 2004 - 12:38 #5
Og du er sikker på at det er den rigtige range, og at der står noget fornuftigt i den - f.eks. værdier og ikke bogstaver?

Har du prøvet at tilføje dataserien manuelt via excel, og se om det er problemfrit?
Avatar billede rvm Nybegynder
24. november 2004 - 12:41 #6
Ja - til begge :-)

Jeg kan sende dig VB projektet, der lige nu bare er en Form med et regneark
Avatar billede rvm Nybegynder
24. november 2004 - 12:42 #7
bruger forøvrigt denne kode til at tilføje testdata i arket:

    Book.ActiveSheet.Range("B12").Value = 2
    Book.ActiveSheet.Range("C12").Value = 2
    Book.ActiveSheet.Range("D12").Value = 2
    Book.ActiveSheet.Range("E12").Value = 2
Avatar billede rvm Nybegynder
24. november 2004 - 12:43 #8
har også tilføjet data i række 14 :-)
Avatar billede bak Forsker
24. november 2004 - 13:02 #9
prøv lige at test den sådan her

Public Book As Excel.Workbook

Private Sub Form_Load()
    Set Book = ActiveWorkbook
    Dim oChtObj As Excel.ChartObject
    Set oChtObj = Book.ActiveSheet.ChartObjects("Chart 1")
    oChtObj.Chart.SeriesCollection.Add _
        Source:=Book.ActiveSheet.Range("A14:E14")
End Sub
Avatar billede rvm Nybegynder
24. november 2004 - 13:07 #10
Hej Bak

Husk lige på at jeg er inde i en Form i VB - ikke i en Form i Excel - så jeg har ikke en ActiveWorkbook - derfor bruer jeg "Set Book = Sheet1.Object"
Avatar billede rvm Nybegynder
24. november 2004 - 13:12 #11
Med denne kode:

    Set Book = Sheet1.object
    Dim oChtObj As Excel.ChartObject
   
    Application.DisplayAlerts = False
   
    Set oChtObj = Book.ActiveSheet.ChartObjects("Diagram 1")
    oChtObj.Chart.SeriesCollection.Add _
        Source:=Book.ActiveSheet.Range("A14:E14")

får jeg også automatiseringsfejlen, men hvis jeg trykker debug og bagefter F5 så bliver data faktisk tilføjet i grafen - hmmm
Avatar billede rvm Nybegynder
24. november 2004 - 13:13 #12
"Application.DisplayAlerts = False" har ingen betydning for fejlen.
Avatar billede bak Forsker
24. november 2004 - 13:28 #13
du må da have åbnet excel, enten skjult eller vist..
Avatar billede bak Forsker
24. november 2004 - 13:38 #14
Set Book = Excel.Workbooks.Open("C:\tester.xls")
    Dim oChtObj As Excel.ChartObject
    Set oChtObj = Book.Sheets(1).ChartObjects("Chart 1")
    oChtObj.Chart.SeriesCollection.Add _
    Source:=Book.Sheets(1).Range("A14:E14")
    Book.Close savechanges:=True
    Set Book = Nothing
Avatar billede rvm Nybegynder
24. november 2004 - 13:43 #15
Nej - jeg har et Excelobjekt i VB hentet ind via ToolBox Højrklik og Components,hvor jeg valgte fanen "Insertabel objects" og objektet "Microsoft Excel regneark"
Avatar billede bak Forsker
24. november 2004 - 13:55 #16
ok, så står jeg lige af .... har kun VB hjemme, men ovenstående virker fra word
Avatar billede rvm Nybegynder
24. november 2004 - 13:56 #17
Det er jeg med på :-)
Avatar billede overchord Nybegynder
24. november 2004 - 15:55 #18
Jeg forstaar ikke helt hvorfor du ikke bibeholder graf og data som separate objekter naar du arbejder i VB. Du kan tilfoeje hhv en excel tabel med data og et msgrpah object istedet.
Avatar billede rvm Nybegynder
24. november 2004 - 17:24 #19
Kan jeg så tilføje flere dataserier i Excel tabellen og derefter få dem vist i graf objektet også ? Har du eventuelt et eksempel?
Avatar billede overchord Nybegynder
25. november 2004 - 12:02 #20
Ja du kan altid arbejde med mere end en graf i objektet uanset om det staar for sig selv eller er embedded i et excel ark.

Du bruger blot Grafobjekt.SeriesCollection(x)
Avatar billede rvm Nybegynder
25. november 2004 - 12:04 #21
Men når nu serien først skal tilføjes så virker det ikke...
Avatar billede rvm Nybegynder
25. november 2004 - 12:05 #22
Grafobjekt.SeriesCollection.add virker simpelthen ikke...
Avatar billede rvm Nybegynder
25. november 2004 - 13:58 #23
Fandt selv løsningen - tak for forsøgene :-)

Public Book As Excel.Workbook
Private Sub Form_Load()
    Set Book = Sheet1.object
   
    Dim oChtObj As ChartObject
    Set oChtObj = Book.ActiveSheet.ChartObjects("Diagram 1")
   
    Set ns = oChtObj.Chart.SeriesCollection.NewSeries
    Antal = oChtObj.Chart.SeriesCollection.Count
    oChtObj.Chart.SeriesCollection(Antal).Values = Book.ActiveSheet.Range("A14:E14")
End Sub
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester