Datenreihe anpassen per VBA

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Datenreihe anpassen per VBA
von: Marco G.
Geschrieben am: 01.10.2003 13:25:11

Hallo zusammen
also meine ersten Probeme mit meiner Tabelle hab ich soweit gelöst das was mich nun noch beschäftigt sind die Datenreihen für die Diagramme.

Ich habe ein paar daten in meine Tabelle kopiert nun ist es so das die Datenreihen immer unterschiedlich lang sind.

Drehzahl Drehmoment
1000...........50
1500...........80
2000...........96
2500..........110 das sind die Daten die ich zuerst kopiert habe damit
3000..........140 funktioniert das auch, da die Bereiche in dem Diagramm
3500..........140 angegeben sind. in dem Fall (A2:A8) für X und B2:B8 für y
4000..........130


wenn ich nun hingeh und andere Daten importiere kann es sein das der Datenbereich nur von A2:A5 oder aber von A2:A15 geht. wie kann ich das beim kopieren per VBA dem Diagramm mitteilen?
Nach der letzten Zelle kommen nur leere Zellen
Die Daten die ich kopiere haben keinen definierten Zellbereich.

Hab schon ein paar Beiträge gefunden zu dem Thema jedoch trifft keiner auf mein Problem zu und demnach konnt ich sie leider nicht anwenden.

Ich wäre sehr dankbar wenn sich jemand meinem Problem annehmen würde.

mfG

Marco

Bild


Betrifft: AW: Datenreihe anpassen per VBA
von: Beni
Geschrieben am: 01.10.2003 21:43:03

Hallo Marco,
mit dieses Makro passt sich die Datenquelle immer der Datenlänge an.
Gruss Beni


Sub Datenreihe_anpassen()
' 01.10.2003 von Bernhard Mächler
LZeile = Cells(Rows.Count, 1).End(xlUp).Row
i = LZeile
    ActiveSheet.ChartObjects("Diagramm 1").Activate
    ActiveChart.PlotArea.Select
    ActiveChart.SetSourceData Source:=Sheets("Tabelle1").Range("A1:B" & i), PlotBy _
        :=xlColumns
    Windows("Test.xls").Activate 'anpassen
 [A1].Select
End Sub



Bild


Betrifft: AW: Datenreihe anpassen per VBA
von: Marco
Geschrieben am: 02.10.2003 10:07:42

Hallo Beni danke für deine rasche Antwort. Also mit deinem Script kam ich nicht ganz hin hab mir den MakroRecorder noch mal vorgeknöpft. jetzt hab ich durch ein wenig umstellen das geschafft das der mir die letzte leere Zelle in einer Spalte rausschmeißt.
Das Problem war dann nur das die letzte scheinbar leere Zelle gar nicht leer ist da in Ihr eine Formel stand.
also mußt ich über nen kleinen Umweg mit ner Schleife das lösen das wenn in der Zell "" steht der mir die letzte Zelle wirklich leere Zelle ausspuckt.

Das was ich nun raushabe ist das hier. funzt aber leider nicht ganz und bricht immer hier ab :

ActiveChart.SeriesCollection(8).XValues = "=Tabelle2!R17C1:R" & LeereZelle & "C1"



Sub Makro4()
Dim LeereZelle As Integer
LeereZelle = Sheets(2).Range("A17").End(xlDown).Row
MsgBox LeereZelle
Do While Sheets(2).Cells(LeereZelle, 1) = ""
LeereZelle = LeereZelle - 1
Loop
    Sheets(1).ChartObjects(2).Activate
    ActiveChart.ChartArea.Select
    ActiveChart.SeriesCollection(7).XValues = "=Tabelle2!R17C1:R" & LeereZelle & "C1"
    ActiveChart.SeriesCollection(7).Values = "=Tabelle2!R17C3:R" & LeereZelle & "C3"
    ActiveChart.SeriesCollection(8).XValues = "=Tabelle2!R17C1:R" & LeereZelle & "C1"
    ActiveChart.SeriesCollection(8).Values = "=Tabelle1!R3C5:R" & LeereZelle & "C5"
    ActiveChart.SeriesCollection(9).XValues = "=Tabelle2!R17C1:R" & LeereZelle & "C1"
    ActiveChart.SeriesCollection(9).Values = "=Tabelle2!R17C6:R" & LeereZelle & "C6"
    ActiveChart.SeriesCollection(10).XValues = "=Tabelle2!R17C1:R" & LeereZelle & "C1"
    ActiveChart.SeriesCollection(10).Values = "=Tabelle2!R19C7:R" & LeereZelle & "C7"
    ActiveChart.SeriesCollection(11).XValues = "=Tabelle2!R17C1:R" & LeereZelle & "C1"
    ActiveChart.SeriesCollection(11).Values = "=Tabelle2!R19C8:R" & LeereZelle & "C8"
    ActiveChart.SeriesCollection(12).XValues = "=Tabelle2!R17C1:R" & LeereZelle & "C1"
    ActiveChart.SeriesCollection(12).Values = "=Tabelle2!R19C9:R" & LeereZelle & "C9"
    ActiveChart.SeriesCollection(13).XValues = "=Tabelle2!R17C1:R" & LeereZelle & "C1"
    ActiveChart.SeriesCollection(13).Values = "=Tabelle2!R19C10:R" & LeereZelle & "C10"
    ActiveChart.SeriesCollection(14).XValues = "=Tabelle2!R17C1:R" & LeereZelle & "C1"
    ActiveChart.SeriesCollection(14).Values = "=Tabelle2!R19C11:R" & LeereZelle & "C11"
    ActiveChart.SeriesCollection(15).XValues = "=Tabelle2!R17C1:R" & LeereZelle & "C1"
    ActiveChart.SeriesCollection(15).Values = "=Tabelle2!R19C12:R" & LeereZelle & "C12"
    ActiveChart.SeriesCollection(16).XValues = "=Tabelle2!R17C1:R" & LeereZelle & "C1"
    ActiveChart.SeriesCollection(16).Values = "=Tabelle2!R19C13:R" & LeereZelle & "C13"
    ActiveChart.SeriesCollection(17).XValues = "=Tabelle2!R17C1:R" & LeereZelle & "C1"
    ActiveChart.SeriesCollection(17).Values = "=Tabelle2!R19C14:R" & LeereZelle & "C14"
    ActiveChart.SeriesCollection(18).XValues = "=Tabelle2!R17C1:R" & LeereZelle & "C1"
    ActiveChart.SeriesCollection(18).Values = "=Tabelle2!R19C2:R" & LeereZelle & "C2"
End 

Sub 
Kannst du mir sagen warum ? 


Bild


Betrifft: AW: Datenreihe anpassen per VBA
von: Marco
Geschrieben am: 02.10.2003 10:35:24

Ich hab das Problem erkannt. es liegt daran das ich die Prozedur von Tabelle 1 aufrufe.
Das Diagramm ist in Blatt 1 die Daten aber in Blatt 2 und er springt mir dann immer nach dem ersten activesheet zum Blatt 2 und dann funzt es nimmer ...
danke trotzdem ....
mfG Marco


 Bild

Beiträge aus den Excel-Beispielen zum Thema " Datenreihe anpassen per VBA"