Office: mehrere Zellbereiche per Makro auswählen

Helfe beim Thema mehrere Zellbereiche per Makro auswählen in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo, ich möchte für eine Diagrammerstellung per Makro mehrere nicht zusammenhängende Zellbereiche auswählen, wie lautet dafür die korrekte Syntax?... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von woerli, 23. November 2010.

  1. woerli Erfahrener User

    mehrere Zellbereiche per Makro auswählen


    Hallo,

    ich möchte für eine Diagrammerstellung per Makro mehrere nicht zusammenhängende Zellbereiche auswählen, wie lautet dafür die korrekte Syntax?
    Ich möchte zwei nicht zusammenhängende Spalten auswählen, wobei die Zeilenzahl variabel ist und demzufolge per Variable im Code erscheinen soll.
    ZIEL:
    Code:
    Range(Cells(34, 3), Cells(uzeile1, 3)
    Range(Cells(34, 5), Cells(uzeile1, 5)
    Beide o. g. Spalten sollen in einer Auswahl "erscheinen", um daraus das Diagramm zu bilden.

    Folgende Versionen bringen NICHT das gewünschte Ergebnis:
    1. Per Makro aufzeichnen:
    Code:
    Range("O36:O38,O44:O46,P40:P42").Select
    Leider handelt es sich um die "nicht-VBA-Schreibweise", die Buchstaben/Zahlen durch "Cells(x,y) ersetzen funktioniert nicht.


    2. Per Makro auzeichnen, wenn Zellen in anderem Arbeitsblatt ausgewählt werden:

    Code:
    ActiveCell.FormulaR1C1 = _
            "=Aufgabenliste!R[-43]C[-5],Aufgabenliste!R[-40]C[-5],Aufgabenliste!R[-36]C[-5],Aufgabenliste!R[-33]C[-5]"
    Mit dem Code kann ich nichts anfangen, wenn ich ihn für meine Zwecke ändere geht es nicht.

    3. Per "Range"
    Code:
    Range(Range(Cells(34, 3), Cells(uzeile1, 3)), Range(Cells(34, 5), Cells(uzeile1, 5))).Select
    Per "Range" wird immer ein zusammenhängender Bereich ausgewählt. Zwar lassen sich so zwei Bereiche korrekt zusammenfassen, aber es werden auch die dazwischenliegenden Zellen mit ausgewählt.
     
  2. schatzi Super-Moderator
    Hallo!

    Union(Range(Cells(34, 3), Cells(uzeile1, 3)), Range(Cells(34, 5), Cells(uzeile1, 5))).Select
     
  3. Beverly
    Beverly Erfahrener User
    Hi,

    noch eine Möglichkeit:
    Code:
        Range("D34:D" & uzeile1 & ",F34:F" & uzeile1).Select
    
    Wenn es um Diagrammerstellung geht, muss allerdings nichts Selektiert werden - das sollte auch ohne gehen, aber dazu müsste man deinen restlich Code kennen und was du mit dem Bereich machen willst.

    Bis später,
    Karin
     
  4. woerli Erfahrener User

    mehrere Zellbereiche per Makro auswählen

    Hallo Karin,

    danke für die Antwort! Selbst wenn ich nicht selektiere muss ich diesen Bereich aber irgendwie angeben?
    Im Prinzip wird hier wie beim letzten Mal das Diagramm verwendet, nur in einer anderem Arbeitsblatt. Anbei der aktuelle (noch nicht ganz fertige) Code. Hier steht jetzt auch noch die Range-Anweisung im Code, welche aber durch zwei Bereiche getrennt werden muss.
    Es soll ein einfaches Balkendiagramm mit einer Datenreihe entstehen.

    Grund für das Problem: die Spalte mit der Beschriftung besteht aus verbundenen Zellen der Spalte 3 und 4, Spalte 5 enthält den jeweiligen Wert. Bei der Diagrammerstellung wird die "nicht existierende" Spalte 4 als zweite (leere) Datenreihe eingefügt. Nachträglich löschen funktioniert aber nicht in jedem Fall, da über dem ganzen noch eine "Tab-Konstruktion" steht, sich also Werte und somit Diagramm beim umschalten ändern (siehe Bild).

    Code:
    'Diagramm zeichnen
        Range(Cells(34, 3), Cells(uzeile1, 5)).Select
        ActiveSheet.Shapes.AddChart.Select
        ActiveChart.SetSourceData Source:=Range(Cells(34, 3),Cells(uzeile1, 5))
        ActiveChart.ChartType = xlColumnClustered
        ActiveChart.ApplyLayout (5)
        ActiveChart.SetElement (msoElementPrimaryValueAxisTitleNone)
        ActiveChart.ChartTitle.Text = utitle
        ActiveChart.Axes(xlValue).MinimumScale = 0
        ' ActiveChart.SeriesCollection(1).Delete
        ActiveChart.SetElement (msoElementDataTableNone)
        'ActiveChart.SeriesCollection(1).Name = deins
        'Abmessungen festlegen anhand des Umfangs
        ActiveSheet.ChartObjects(1).Width = 580
        ActiveSheet.ChartObjects(1).Height = 230
     ' Ausrichtung
         Dim eDia As ChartObject
         Set eDia = ActiveSheet.ChartObjects(1)
         With eDia
           .Left = 40
           .Top = Cells(56 + 1, 3).Top
          End With
    Das aktuelle Problem ist nur das wählen des Datenbereichs, alles andere habe ich bereits hinbekommen. Wie man auf dernachfolgenden Grafik sieht, sind nicht nur die verbundenen Zellen das Problem, sondern falls die Liste zu lang ist kommt noch ein weiterer Datenbereich rechts daneben hinzu. Aber zunächst soll es prinzipiell funktionieren.

    mehrere Zellbereiche per Makro auswählen [​IMG]

    Verschneite Grüße
    Holger
     
  5. Beverly
    Beverly Erfahrener User
    Hi Holger,
    Code:
    Dim chrDia As Chart
    Set chrDia = ActiveSheet.ChartObjects.Add(40, Cells(56 + 1, 3).Top, 580, 230).Chart
    With chrDia
        .ChartType = xlColumnClustered
        .ApplyLayout (5)
        .SetSourceData Source:=Range("E35"), PlotBy:=xlColumns
        .SetElement (msoElementPrimaryValueAxisTitleNone)
        .SetElement (msoElementDataTableNone)
        .ChartTitle.Text = utitle
        .Axes(xlValue).MinimumScale = 0
        .SeriesCollection(1).XValues = Union(Range("C35:C" & uzeile1), Range("I35:I" & uzeile2))
        .SeriesCollection(1).Values = Union(Range("E35:E" & uzeile1), Range("K35:K" & uzeile2))
    End With
    Set chrDia = Nothing
    
    In diesem Fall muss man Union verwenden.

    Bis später,
    Karin
     
Thema:

mehrere Zellbereiche per Makro auswählen

Die Seite wird geladen...
  1. mehrere Zellbereiche per Makro auswählen - Similar Threads - Zellbereiche Makro auswählen

  2. Textblock/Zellbereich aus Tabellenblatt in Worddokument übergeben

    in Microsoft Excel Hilfe
    Textblock/Zellbereich aus Tabellenblatt in Worddokument übergeben: Hallo zusammen, mit der folgenden Codezeile ist es zumindest möglich den Inhalt einer Zelle von Excel in einem Worddokument an einer bestimmten Textmarke einzufügen....
  3. Intelligent eTabelle bestimmter Zellbereich markieren VBA

    in Microsoft Excel Hilfe
    Intelligent eTabelle bestimmter Zellbereich markieren VBA: Hallo zusammen, ich habe eine Intelligente Tabelle in der ein Zellbereich Markiert werden soll (A-I). Später soll dieser Bereich in Outlook eingefügt werden. Das bekomme ich hin. Wie und wo müsste...
  4. Excel-Zellbereich mit Formatierung aber ohne Formeln nach Visio

    in Microsoft Excel Hilfe
    Excel-Zellbereich mit Formatierung aber ohne Formeln nach Visio: Hallo, ich möchte einen Zellbereich aus Excel in eine Visio-Datei einbinden. Zur Zeit mache ich das so: Per Makro wird der gewünschte Bereich in Excel kopiert: Sub Rack_A() ' ' Rack A Makro '...
  5. Zellbereich Namen per Makro vergeben

    in Microsoft Excel Hilfe
    Zellbereich Namen per Makro vergeben: Moin zusammen, in einer Dienstplandatei gibt es einen Zellbereich "Kuerzel". In den Monatsblättern lassen sich die Kuerzel per PullDownMenue auswählen. Aktuell bezieht sich der Bereich auf...
  6. Makro Bild einfügen und an Zellbereich anpassen

    in Microsoft Excel Hilfe
    Makro Bild einfügen und an Zellbereich anpassen: Hallo Spezialistengemeinde, Mein Datenblatt dient zur Erfassung mehrerer Produkte. Mit jeder neuen Artikelnummer soll auch ein Bild in der benachbarten Zelle eingefügt werden können. Aus Gründen...
  7. Zellbereich einfärben per Makro

    in Microsoft Excel Hilfe
    Zellbereich einfärben per Makro: Hallo zusammen, ich brauche einmal Eure Unterstützung. Ich komme leider an nachfolgender Thematik nicht vorbei: Und auch leider habe ich in der Hilfe nicht wirklich etwas gefunden oder...
  8. Makro welches einem dynamischen Zellbereich einen Namen zuordnet

    in Microsoft Excel Hilfe
    Makro welches einem dynamischen Zellbereich einen Namen zuordnet: Hallo liebe Excelgemeinde, ich stehe vor folgendem Problem. Ich habe schon mehrfach versucht ein Makro zu programmieren, welches einem variablen Zellenbereich einen eindeutigen Namen zuordnet....
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden