Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Bereich verkleinern / vergrössern mit VBA

Forumthread: Bereich verkleinern / vergrössern mit VBA

Bereich verkleinern / vergrössern mit VBA
Peter
Guten Abend
Wie kann ich den rngZielAlt verändern, indem ich beispielweise die erste oder letzte Zeile "abschneide" oder das gleiche mit Spalten mache?
Set rngBereich = wsZiel.UsedRange
Angenommen, rngBereich ist A1:Z570
verkleinern:
1. wie entsteht daraus A2:Z570 ?
2. wie entsteht daraus A1:Z569 ?
3. wie entsteht daraus B1:Z570 ?
4. wie entsteht daraus A1:Y570 ?
Ich nehme an, dass ich das Vergrössern davon ableiten kann.
Danke für eine Antwort .
Gruss, Peter
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Bereich verkleinern / vergrössern mit VBA
14.06.2011 18:52:25
ransi
Hallo Peter
Versuch mal sowas:
Public Sub test()
    Dim rngBereich As Range
    Set rngBereich = Range("A1:Z570")
    'A2:Z570
    MsgBox Intersect(rngBereich, rngBereich.Offset(1, 0)).Address
    'A1:Z569
    MsgBox rngBereich.Resize(rngBereich.Rows.Count - 1, rngBereich.Columns.Count).Address
    'B1:Z570
    MsgBox Intersect(rngBereich, rngBereich.Offset(0, 1)).Address
    'A1:Y570
    MsgBox rngBereich.Resize(rngBereich.Rows.Count, rngBereich.Columns.Count - 1).Address
End Sub


ransi
Anzeige
AW: Bereich verkleinern / vergrössern mit VBA
15.06.2011 11:20:10
Peter
Hallo Ransi
Vielen Dank.
Das hat mir sehr weitergeholfen.
Gruss, Peter
;
Anzeige
Anzeige

Infobox / Tutorial

Bereich verkleinern und vergrößern mit VBA in Excel


Schritt-für-Schritt-Anleitung

Um den Bereich in Excel mit VBA zu verkleinern oder zu vergrößern, kannst Du die Methode Resize verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke im Projektfenster mit der rechten Maustaste auf "VBAProject (DeinWorkbookName)" und wähle Einfügen > Modul.

  3. Füge den folgenden Code ein:

    Public Sub BereichVerkleinern()
       Dim rngBereich As Range
       Set rngBereich = Range("A1:Z570")
    
       ' A2:Z570
       MsgBox Intersect(rngBereich, rngBereich.Offset(1, 0)).Address
    
       ' A1:Z569
       MsgBox rngBereich.Resize(rngBereich.Rows.Count - 1, rngBereich.Columns.Count).Address
    
       ' B1:Z570
       MsgBox Intersect(rngBereich, rngBereich.Offset(0, 1)).Address
    
       ' A1:Y570
       MsgBox rngBereich.Resize(rngBereich.Rows.Count, rngBereich.Columns.Count - 1).Address
    End Sub
  4. Führe das Skript aus: Klicke auf Run oder drücke F5, um das Skript auszuführen.

Du kannst die oben genannten Beispiele anpassen, um den Bereich nach Deinen Wünschen zu vergrößern oder zu verkleinern.


Häufige Fehler und Lösungen

  • Fehler: "Objektvariable oder With-Blockvariable nicht festgelegt"

    • Lösung: Stelle sicher, dass Du den richtigen Bereich zugewiesen hast und dass das Arbeitsblatt aktiv ist.
  • Fehler: "Index außerhalb des Gültigkeitsbereichs"

    • Lösung: Überprüfe die Referenz auf das Arbeitsblatt und die verwendeten Zelladressen.

Alternative Methoden

Neben der Verwendung von Resize gibt es auch andere Methoden, um Bereiche zu verkleinern oder zu vergrößern:

  • Direkte Zellreferenzen: Du kannst spezifische Zellen direkt ansprechen, anstatt den gesamten Bereich zu definieren. Beispielsweise:

    Range("A1").Resize(10, 5).Select
  • Bedingte Formatierungen: Verwende die bedingte Formatierung, um Zellen basierend auf bestimmten Kriterien zu ändern. Dies kann ebenfalls dazu verwendet werden, um Zellen visuell hervorzuheben.


Praktische Beispiele

  1. Einzelne Zellen verkleinern: Angenommen, Du möchtest nur eine bestimmte Zelle ansprechen:

    Range("A1").Resize(1, 1).Value = "Verkleinert"
  2. Links verkleinern: Wenn Du Hyperlinks in einem Bereich hast und diese verkleinern möchtest:

    Dim cell As Range
    For Each cell In Range("A1:A10")
       If cell.Hyperlinks.Count > 0 Then
           cell.Hyperlinks(1).TextToDisplay = "Link"
       End If
    Next cell

Tipps für Profis

  • Verwende With-Anweisungen: Dies hilft, den Code leserlicher und effizienter zu gestalten.

    With rngBereich
      .Resize(.Rows.Count - 1, .Columns.Count).Select
    End With
  • Dokumentiere Deinen Code: Füge Kommentare hinzu, um zu erklären, was jeder Teil des Codes macht. Dies ist besonders nützlich, wenn Du den Code in der Zukunft wieder verwendest.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Bereiche gleichzeitig ändern?
Du kannst Schleifen verwenden, um mehrere Bereiche nacheinander zu bearbeiten. Zum Beispiel:

Dim rng As Range
For Each rng In Worksheets("Sheet1").Range("A1, B1, C1")
    rng.Resize(1, 1).Value = "Geändert"
Next rng

2. Gibt es eine Möglichkeit, Bereiche dynamisch anzupassen?
Ja, Du kannst die UsedRange-Eigenschaft verwenden, um automatisch den genutzten Bereich zu ermitteln und damit zu arbeiten:

Set rngBereich = ActiveSheet.UsedRange

Durch diese Anleitungen und Beispiele kannst Du in Excel den Bereich verkleinern oder vergrößern, ganz nach Deinen Bedürfnissen.

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