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

Forumthread: Bereich markieren

Bereich markieren
max
Hallo Excel-Kollegen,
möchte den Bereich ActiveCell.Offset(0, -3):ActiveCell.Offset(0, 7) markieren.
Range(ActiveCell.Offset(0, -3):ActiveCell.Offset(0, 7)).select
fkt. nicht; ist wahrscheinlich auch Blödsinn.
Wer kann mir den richtigen Code sagen?
Dank im voraus
Gruß max
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Bereich markieren
08.08.2011 12:05:14
Matthias
Hallo Max,
so:

Range(ActiveCell.Offset(0, -3), ActiveCell.Offset(0, 7)).Select 
Gruß Matthias
AW: Bereich markieren
08.08.2011 12:30:29
max
Danke Matthias,
funktioniert. War ich ja gar nicht soweit entfernt ;-)
gruß max
AW: Bereich markieren
08.08.2011 12:06:23
Tino
Hallo,
müsste so gehen
If ActiveCell.Column > 3 Then
ActiveCell.Offset(0, -3).Resize(, 10).Select
End If
oder so
If ActiveCell.Column > 3 Then
Range(ActiveCell.Offset(0, -3), ActiveCell.Offset(0, 7)).Select
End If
Für was brauchst Du dieses selektieren?
Gruß Tino
Anzeige
AW: Bereich markieren
08.08.2011 12:28:29
max
Hallo Tino,
habe eine Tabelle, in den Spalten Q bis W. Spalte T wird Zeilenweise durchleuchtet. Bei bestimmten Kriterien soll der Datensatz der aktiven Zelle - also: activecell.offset(0,-3) bis activecell.offset(0,3) - gelöscht werden.
Gruß max
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Bereich markieren in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um in Excel einen Bereich zu markieren, der sich relativ zur aktiven Zelle befindet, kannst du VBA nutzen. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den Visual Basic for Applications (VBA) Editor mit Alt + F11.

  2. Füge ein neues Modul ein, indem du mit der rechten Maustaste auf „VBAProject (dein Dokument)“ klickst und „Einfügen“ > „Modul“ auswählst.

  3. Kopiere und füge den folgenden Code ein, um den gewünschten Bereich zu markieren:

    Sub BereichMarkieren()
       Range(ActiveCell.Offset(0, -3), ActiveCell.Offset(0, 7)).Select
    End Sub
  4. Schließe den VBA-Editor und kehre zu Excel zurück.

  5. Führe das Makro aus: Alt + F8, wähle „BereichMarkieren“ und klicke auf „Ausführen“.

Mit diesem Code wird der Bereich von der aktiven Zelle (ActiveCell) bis zu einer Zelle drei Spalten links und sieben Spalten rechts markiert.


Häufige Fehler und Lösungen

  • Fehler: Der Code funktioniert nicht, weil die Zellen außerhalb des gültigen Bereichs liegen.

    • Lösung: Überprüfe, ob die aktive Zelle weit genug rechts ist, um drei Spalten links zu markieren. Verwende eine If-Bedingung, um sicherzustellen, dass dies der Fall ist:
    If ActiveCell.Column > 3 Then
        Range(ActiveCell.Offset(0, -3), ActiveCell.Offset(0, 7)).Select
    End If
  • Fehler: Es wird angezeigt, dass „Select“ nicht erforderlich ist.

    • Lösung: Du kannst die Select-Anweisung vermeiden und direkt mit dem Bereich arbeiten, z.B.:
    ActiveCell.Offset(0, -3).Resize(1, 10).Interior.Color = RGB(255, 255, 0) 'Färbt den Bereich gelb

Alternative Methoden

Anstelle von Range und Select kannst du auch die Cells-Methode verwenden:

Dim ws As Worksheet
Set ws = ActiveSheet
ws.Cells(ActiveCell.Row, ActiveCell.Column - 3).Resize(1, 10).Select

Diese Methode ist besonders nützlich, wenn du einen bestimmten Zellbereich markieren möchtest, ohne die Select-Anweisung zu verwenden.


Praktische Beispiele

  1. Zellbereich farblich hervorheben:

    Sub BereichHervorheben()
       If ActiveCell.Column > 3 Then
           Range(ActiveCell.Offset(0, -3), ActiveCell.Offset(0, 7)).Interior.Color = RGB(0, 255, 0) 'Grün
       End If
    End Sub
  2. Werte in einem Bereich löschen:

    Sub BereichLoeschen()
       If ActiveCell.Column > 3 Then
           Range(ActiveCell.Offset(0, -3), ActiveCell.Offset(0, 7)).ClearContents
       End If
    End Sub

Tipps für Profis

  • Nutze With-Anweisungen, um die Lesbarkeit deines Codes zu erhöhen:

    With ActiveCell.Offset(0, -3).Resize(1, 10)
       .Interior.Color = RGB(255, 0, 0) 'Rot
       .Value = "Beispiel"
    End With
  • Experimentiere mit Resize und Offset, um dynamische Bereiche zu erstellen.


FAQ: Häufige Fragen

1. Warum sollte ich Select vermeiden?
Select kann die Performance deines VBA-Codes beeinträchtigen und ist in vielen Fällen nicht notwendig. Du kannst direkt mit Objekten arbeiten, was den Code effizienter macht.

2. Wie kann ich überprüfen, ob mein Code funktioniert?
Nutze die MsgBox-Funktion, um Debugging-Informationen während der Ausführung anzuzeigen.

3. Was ist der Unterschied zwischen ActiveCell.Offset und ActiveCell.Cells?
ActiveCell.Offset verschiebt die Referenz um eine bestimmte Anzahl von Zeilen und Spalten, während ActiveCell.Cells auf die Zelle innerhalb eines Bereichs verweist.

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