Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bereich über cells auswählen

Forumthread: Bereich über cells auswählen

Bereich über cells auswählen
14.11.2008 16:29:00
Lars
Hallo,
wie kann ich in VBA einen Bereich über den Befehl cells markieren?
Range(cells(1,2):cells(4,9)) funktioniert nicht.
Gruß
Lars
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
, statt : ........(owT)
14.11.2008 16:30:00
RS


AW: , statt : ........(owT)
14.11.2008 16:53:00
Lars
Hallo,
irgendwie funktioniert das nicht:

Sub test()
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets("Tabelle2").Range(Cells(2, 2), Cells(3, 15)),  _
PlotBy _
:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Tabelle1"
ActiveChart.HasLegend = True
ActiveChart.Legend.Select
Selection.Position = xlRight
End Sub


Anzeige
Dann schreibe es einfach so!
14.11.2008 17:04:14
Backowe
Hi,
VBA-Code:
Sub DiagrammErstellen()
Charts.Add
ActiveChart.ChartType = xlColumnClustered
ActiveChart.SetSourceData Source:=Sheets("Tabelle2").Range("B2:C15"), PlotBy:=xlColumns
ActiveChart.Location Where:=xlLocationAsObject, Name:="Tabelle1"
ActiveChart.HasLegend = True
ActiveChart.Legend.Position = xlRight
End Sub
Gruß Jürgen
AW: Dann schreibe es einfach so!
Lars

Hallo,
das will ich ja eben nicht, da die Zellen nicht immer gleich sind.
Eigentlich steht bei mir ...Range(cells(StartReihe, StartSpalte), cells(EndeReihe,EndeSpalte)).
StartSpalte, StartReihe etc. gebe ich über eine inputbox an.
Daher kann ich nicht z.B. A1:C13 angeben.
Gruß
Lars
AW: Dann schreibe es einfach so!
Erich

Hi Lars,
probier mal

Sub test()
Charts.Add
ActiveChart.ChartType = xlColumnClustered
With Sheets("Tabelle2")
ActiveChart.SetSourceData Source:= _
.Range(.Cells(2, 2), .Cells(3, 15)), PlotBy:=xlColumns
End With
ActiveChart.Location Where:=xlLocationAsObject, Name:="Tabelle1"
ActiveChart.HasLegend = True
ActiveChart.Legend.Select
Selection.Position = xlRight
End Sub

Die Punkte vor Cells sorgen dafür, Zellen der Tabelle2 angesprochen werden.
Wenn da nur Cells steht, werden Zellen des akt. Blattes angesprochen.
Man könnte länglicher auch schrieben:
Sheets("Tabelle2").Range(Sheets("Tabelle2").Cells(2, 2), Sheets("Tabelle2").Cells(3, 15))
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: Dann schreibe es einfach so!
Lars

Klappt.
Danke.
Anzeige
AW: Dann schreibe es einfach so!
14.11.2008 17:09:13
Lars
Hallo,
das will ich ja eben nicht, da die Zellen nicht immer gleich sind.
Eigentlich steht bei mir ...Range(cells(StartReihe, StartSpalte), cells(EndeReihe,EndeSpalte)).
StartSpalte, StartReihe etc. gebe ich über eine inputbox an.
Daher kann ich nicht z.B. A1:C13 angeben.
Gruß
Lars
Anzeige
AW: Dann schreibe es einfach so!
14.11.2008 17:16:00
Erich
Hi Lars,
probier mal

Sub test()
Charts.Add
ActiveChart.ChartType = xlColumnClustered
With Sheets("Tabelle2")
ActiveChart.SetSourceData Source:= _
.Range(.Cells(2, 2), .Cells(3, 15)), PlotBy:=xlColumns
End With
ActiveChart.Location Where:=xlLocationAsObject, Name:="Tabelle1"
ActiveChart.HasLegend = True
ActiveChart.Legend.Select
Selection.Position = xlRight
End Sub

Die Punkte vor Cells sorgen dafür, Zellen der Tabelle2 angesprochen werden.
Wenn da nur Cells steht, werden Zellen des akt. Blattes angesprochen.
Man könnte länglicher auch schrieben:
Sheets("Tabelle2").Range(Sheets("Tabelle2").Cells(2, 2), Sheets("Tabelle2").Cells(3, 15))
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Dann schreibe es einfach so!
14.11.2008 17:25:53
Lars
Klappt.
Danke.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Bereich über Cells auswählen in VBA


Schritt-für-Schritt-Anleitung

Um in VBA einen Bereich über den Befehl Cells auszuwählen, kannst Du folgenden Code verwenden:

Sub BereichAuswaehlen()
    Dim StartReihe As Long
    Dim StartSpalte As Long
    Dim EndeReihe As Long
    Dim EndeSpalte As Long

    ' Beispielwerte
    StartReihe = 2
    StartSpalte = 2
    EndeReihe = 3
    EndeSpalte = 15

    ' Bereich auswählen
    With Sheets("Tabelle2")
        .Range(.Cells(StartReihe, StartSpalte), .Cells(EndeReihe, EndeSpalte)).Select
    End With
End Sub

In diesem Beispiel wird der Bereich von Zelle B2 bis Zelle O3 in "Tabelle2" ausgewählt. Achte darauf, dass Du die Werte für StartReihe, StartSpalte, EndeReihe und EndeSpalte anpassen kannst, um mit Inputboxen zu arbeiten.


Häufige Fehler und Lösungen

  1. Fehler: „Objekt erforderlich“

    • Ursache: Du hast vergessen, die Tabelle vor dem Cells Befehl zu spezifizieren.
    • Lösung: Stelle sicher, dass Du den Tabellenblattnamen in den With-Block einfügst, wie im obigen Beispiel gezeigt.
  2. Fehler: „Bereich nicht gefunden“

    • Ursache: Die angegebenen Zeilen- oder Spaltennummern liegen außerhalb des gültigen Bereichs.
    • Lösung: Überprüfe die Werte von StartReihe, StartSpalte, EndeReihe und EndeSpalte, um sicherzustellen, dass sie im gültigen Bereich liegen.

Alternative Methoden

Eine andere Möglichkeit ist die Verwendung des Range Befehls direkt:

Sub BereichMitRange()
    Sheets("Tabelle2").Range("B2:O3").Select
End Sub

Diese Methode ist einfacher, wenn Du die genauen Zelladressen kennst, aber weniger flexibel, wenn Du Werte dynamisch anpassen möchtest.


Praktische Beispiele

Hier ist ein Beispiel, das zeigt, wie Du mit einer Inputbox die Werte für die Auswahl abfragen kannst:

Sub BereichMitInputbox()
    Dim StartReihe As Long
    Dim StartSpalte As Long
    Dim EndeReihe As Long
    Dim EndeSpalte As Long

    StartReihe = InputBox("Gib die Startreihe ein:")
    StartSpalte = InputBox("Gib die Startspalte ein:")
    EndeReihe = InputBox("Gib die Endreihe ein:")
    EndeSpalte = InputBox("Gib die Endspalte ein:")

    With Sheets("Tabelle2")
        .Range(.Cells(StartReihe, StartSpalte), .Cells(EndeReihe, EndeSpalte)).Select
    End With
End Sub

Tipps für Profis

  • Nutze Option Explicit am Anfang Deiner Module, um sicherzustellen, dass alle Variablen deklariert sind. Dies hilft, Fehler frühzeitig zu erkennen.
  • Verwende Application.ScreenUpdating = False, um die Bildschirmaktualisierung während der Makroausführung zu deaktivieren. Setze es am Ende wieder auf True, um die Performance zu verbessern.
Sub OptimiertesMakro()
    Application.ScreenUpdating = False
    ' Dein Code hier
    Application.ScreenUpdating = True
End Sub

FAQ: Häufige Fragen

1. Wie wähle ich eine bestimmte Zelle in VBA aus?
Du kannst die Methode Cells verwenden, um eine spezifische Zelle auszuwählen:

Cells(1, 1).Select ' Wählt Zelle A1 aus

2. Was ist der Unterschied zwischen Range und Cells?
Range wird verwendet, um einen Bereich von Zellen anhand ihrer Adressen auszuwählen, während Cells auf eine spezifische Zelle in einem bestimmten Blatt verweist. Cells ist nützlich, wenn Du mit Variablen für Zeilen und Spalten arbeitest.

3. Wie kann ich mehrere Zellen gleichzeitig auswählen?
Verwende den Range Befehl:

Range("A1:C3").Select ' Wählt den Bereich A1 bis C3 aus

Mit diesen Informationen kannst Du effektiv mit dem Befehl Cells in VBA arbeiten und Bereiche dynamisch auswählen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige