Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Range verkleinern?

Forumthread: Range verkleinern?

Range verkleinern?
08.11.2006 14:35:23
Markus
Hallo Experten.
gibt es eine Möglichkeit einen Range zu verkleinern. Ich möchte vom Range die ersten x Zeilen und die ersten x Spalten abnziehen.
Z.B. Ich habe einen Range der geht von a1:z40 nun möchte ich den Range auf F6:Z40 verringern.
Der Range wird von einer Funktion ermittelt und als Range Deklaration übergeben.
Danke.
Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Range verkleinern?
08.11.2006 14:44:46
Dr.
Hi,
ich vermute mal, dass die Funktion einen Spalten- und Zeilenindex errechnet. Von dem brauchst Du doch nur noch die gewünschte Anzahl Spalten- bzw. Zeilen abziehen.
AW: Range verkleinern?
08.11.2006 14:54:22
fcs
Hallo Markus,
Hier ein Beispiel wie man aus einem Range eine Ecke "rausschneiden kann:

Sub RangeVerkleinern()
Dim BereichGross As Range, BereichKlein As Range
Set BereichGross = Range("A1:Z40")
MsgBox BereichGross .Address
With BereichGross
Set BereichKlein = .Range(.Cells(6, "F"), .Cells(.Rows.Count, .Columns.Count))
End With
MsgBox BereichKlein.Address
End Sub

Die Cells für den Teil-Range zählen dabei von der linken oberen Zelle des großen Bereiches.
Gruß
Franz
Anzeige
AW: Range verkleinern?
08.11.2006 15:03:57
Rudi
Hallo,

Sub tt()
Dim rng As Range
Set rng = Range("A1:Z40")
Set rng = Range(rng.Cells(1).Offset(6, 6), Cells(rng.Row + rng.Rows.Count - 1, rng.Column + rng.Columns.Count - 1))
End Sub

Gruß
Rudi
AW: Range verkleinern?
08.11.2006 15:42:59
MArkus
Vielen Dank, für Eure Hilfe.
;
Anzeige

Infobox / Tutorial

Range in Excel verkleinern: So geht's


Schritt-für-Schritt-Anleitung

Um einen bestehenden Range in Excel zu verkleinern, kannst Du VBA (Visual Basic for Applications) verwenden. Hier ist eine Schritt-für-Schritt-Anleitung:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Klicke auf Einfügen und wähle Modul, um ein neues Modul zu erstellen.

  3. Kopiere den folgenden Code in das Modul:

    Sub RangeVerkleinern()
        Dim BereichGross As Range, BereichKlein As Range
        Set BereichGross = Range("A1:Z40")
        MsgBox BereichGross.Address
        With BereichGross
            Set BereichKlein = .Range(.Cells(6, "F"), .Cells(.Rows.Count, .Columns.Count))
        End With
        MsgBox BereichKlein.Address
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Drücke ALT + F8, wähle RangeVerkleinern aus und klicke auf Ausführen.

Dieser Code verkleinert den Range von A1:Z40 auf F6:Z40.


Häufige Fehler und Lösungen

  • Fehler: "Laufzeitfehler 1004: Anwendung oder Objekt definiert."

    • Lösung: Überprüfe die Zellreferenzen im Code. Stelle sicher, dass die Zellen existieren.
  • Fehler: "Der angegebene Range ist ungültig."

    • Lösung: Achte darauf, dass die Startzelle des neuen Ranges nicht außerhalb des ursprünglichen Ranges liegt.

Alternative Methoden

Du kannst auch die Offset-Methode verwenden, um den Range zu verkleinern. Hier ist ein Beispiel:

Sub AlternativeRangeVerkleinern()
    Dim rng As Range
    Set rng = Range("A1:Z40")
    Set rng = Range(rng.Cells(1).Offset(6, 6), Cells(rng.Row + rng.Rows.Count - 1, rng.Column + rng.Columns.Count - 1))
End Sub

Diese Methode verwendet die Offset-Funktion, um die Position des neuen Ranges zu bestimmen.


Praktische Beispiele

Angenommen, Du hast einen Range von A1:Z40 und möchtest diesen auf F6:Z40 verkleinern. Der folgende Code zeigt, wie Du das erreichen kannst:

Sub BeispielRangeVerkleinern()
    Dim Bereich As Range
    Set Bereich = Range("A1:Z40")
    Set Bereich = Bereich.Offset(5, 5) ' Verschieben um 5 Zeilen und 5 Spalten
    MsgBox Bereich.Address ' Gibt F6:Z40 aus
End Sub

Tipps für Profis

  • Verwende die Intersect-Funktion, um sicherzustellen, dass der neue Range innerhalb des alten Ranges bleibt.
  • Kommentiere Deinen Code, um die Nachvollziehbarkeit zu erhöhen.
  • Teste Deinen Code mit verschiedenen Ranges, um sicherzustellen, dass er robust ist.

FAQ: Häufige Fragen

1. Wie kann ich die Anzahl der Zeilen oder Spalten dynamisch anpassen?
Du kannst Variablen verwenden, um die Anzahl der Zeilen oder Spalten zu bestimmen, die Du abziehen möchtest.

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der Code sollte in allen Versionen ab Excel 2010 funktionieren, die VBA unterstützen.

3. Gibt es eine Möglichkeit, dies ohne VBA zu tun?
Ja, Du kannst die Filter- oder Pivot-Tabellen-Funktion in Excel verwenden, um Daten zu analysieren, aber für das Verkleinern eines Ranges ist VBA die effizienteste Methode.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige