Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Datenreihe anpassen per VBA

    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

      


    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
    



      


    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 ? 
    
    

      


    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


     

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