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

Bereich Markieren mit VBA

Forumthread: Bereich Markieren mit VBA

Bereich Markieren mit VBA
12.06.2003 13:15:56
Petra Berns
Ich möchte per VBA einen Bereich markieren, in dem sich Werte befinden. Dieser Bereich kann unterschiedlich sein.
Gefüllt sind immer die Spalten F bis H, die Zeilenanzahl ist allerdings unterschiedlich.
Ich habe schon verschiedenes ausprobiert, bin aber zu keiner Lösung gekommen.


Es geht mir um die analoge Verfahrensweise wie Shift, Ende Pfeil rechts und Ende Pfeil herunter, mit der man einen Bereich markieren kann.

vielen Dank

Petra
danke

Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Bereich Markieren mit VBA
12.06.2003 13:27:58
xxx

Hallo,
das geht mit .end(xldown/xlup/xltoright/xltoleft)

Range(cells(1,6),cells(1,8).end(xldown)).select

Gruß aus'm Pott
Udo

Re: Bereich Markieren mit VBA
12.06.2003 13:31:36
Nepumuk

Hallo Petra,
so geht's:

Gruß
Nepumuk

Re: Bereich Markieren mit VBA
12.06.2003 13:34:15
Nepumuk

Hallo Udo,
und was passiert, wenn in der Spalte H eine leere Zelle ist?
Gruß
Nepumuk

Anzeige
Re: Bereich Markieren mit VBA
12.06.2003 13:40:38
xxx

Hallo,
prinzipiell hast du Recht. Petra hat aber geschrieben, dass immer F bis H gefüllt sind. Du bist jedoch mit xlUp auf der sicheren Seite.

Gruß aus'm Pott
Udo

Udo

Re: Bereich Markieren mit VBA
12.06.2003 17:30:19
Willie

wenn die Spalten unterschiedlich befüllt sind kannst du es auch
so machen!
Sub Makro1()
wert1 = 1
For i = 6 To 8
wert = Cells(65536, i).End(xlUp).Row
If wert > wert1 Then
wert1 = wert
End If
Next
Range(Cells(1, 1), Cells(wert1, i - 1)).Select
End Sub

Gruß

Willie

Anzeige
Re: Bereich Markieren mit VBA
13.06.2003 12:05:19
Petra

Danke, ich habe jetzt folgende Lösung genommen:
Range("h1", Range("j65536").End(xlUp)).Select

Das hat auch funktioniert. Allerdings habe ich gesehen, dass sich mein eigentliches Problem, eine dynamische Tabelle nicht gelöst hat. Daher habe ich eine andere Anfrage dazu gestellt.

viele Grüße

Petra

Anzeige
Re: Bereich Markieren mit VBA
13.06.2003 12:06:23
Petra

Hallo Nepumuk,

ich habe jetzt folgende Lösung genommen:
Range("h1", Range("j65536").End(xlUp)).Select

Das hat auch funktioniert. Allerdings habe ich gesehen, dass sich mein eigentliches Problem, eine dynamische Tabelle nicht gelöst hat. Daher habe ich eine andere Anfrage dazu gestellt.

viele Grüße

Petra

Anzeige
Re: Bereich Markieren mit VBA
13.06.2003 12:07:25
Petra

Hallo Udo,

vielen Dank für deinen Lösungsvorschlag.

ich habe jetzt folgende Lösung genommen:
Range("h1", Range("j65536").End(xlUp)).Select

Das hat auch funktioniert. Allerdings habe ich gesehen, dass sich mein eigentliches Problem, eine dynamische Tabelle nicht gelöst hat. Daher habe ich eine andere Anfrage dazu gestellt.

viele Grüße

Petra

Anzeige
Re: Bereich Markieren mit VBA
17.06.2003 19:08:14
Petra

danke dir auch dafür.

viele Grüße

Petra

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige

Infobox / Tutorial

Bereich Markieren mit VBA in Excel


Schritt-für-Schritt-Anleitung

Um einen Bereich in Excel per VBA zu markieren, kannst du die Range- und Cells-Objekte verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den VBA-Editor: Drücke ALT + F11, um den VBA-Editor zu öffnen.

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

  3. Füge den folgenden Code ein:

    Sub BereichMarkieren()
       ' Markiere den Bereich von F1 bis zum letzten gefüllten Wert in Spalte H
       Range(Cells(1, 6), Cells(1, 8).End(xlDown)).Select
    End Sub
  4. Führe das Makro aus: Schließe den VBA-Editor und kehre zu Excel zurück. Drücke ALT + F8, wähle BereichMarkieren und klicke auf Ausführen.

Dieser Code markiert den Bereich von Spalte F bis H, basierend auf den gefüllten Zellen.


Häufige Fehler und Lösungen

  • Problem: Der Bereich wird nicht korrekt markiert.

    • Lösung: Überprüfe, ob in der letzten Zelle der Spalte H Daten vorhanden sind. Wenn nicht, kann das End-Kommando nicht korrekt funktionieren. Verwende stattdessen xlUp, um nach oben zu suchen.
  • Problem: Es wird eine Fehlermeldung angezeigt.

    • Lösung: Achte darauf, dass du die richtigen Zellreferenzen und Objekte verwendest, z.B. Cells(1, 6) für die erste Zelle in Spalte F.

Alternative Methoden

Eine alternative Methode, um einen Bereich in Excel zu markieren, könnte die Verwendung einer Schleife sein, falls die Anzahl der gefüllten Zellen variiert:

Sub DynamischerBereichMarkieren()
    Dim wert1 As Long
    Dim i As Integer
    wert1 = 1
    For i = 6 To 8
        wert = Cells(65536, i).End(xlUp).Row
        If wert > wert1 Then
            wert1 = wert
        End If
    Next
    Range(Cells(1, 6), Cells(wert1, 8)).Select
End Sub

Diese Methode sucht den letzten gefüllten Wert in den Spalten und markiert den Bereich entsprechend.


Praktische Beispiele

Hier sind einige praktische Beispiele, wie du einen Bereich in Excel mit VBA markieren kannst:

  1. Einen festen Bereich markieren:

    Range("A1:C10").Select
  2. Einen dynamischen Bereich basierend auf einer Bedingung:

    Range(Cells(1, 1), Cells(Rows.Count, 1).End(xlUp)).Select
  3. Bereich von F bis H mit einer dynamischen Zeilenauswahl:

    Range(Cells(1, 6), Cells(1, 8).End(xlDown)).Select

Diese Beispiele zeigen, wie du unterschiedliche Bereiche auswählen oder markieren kannst, je nach Bedarf.


Tipps für Profis

  • Verwende With-Anweisungen: Wenn du mehrere Aktionen auf dasselbe Objekt ausführst, kann das deinen Code sauberer und effizienter machen.

    With Worksheets("Sheet1")
      .Range(.Cells(1, 6), .Cells(1, 8).End(xlDown)).Select
    End With
  • Fehlerbehandlung einfügen: Um deine Makros robuster zu machen, füge Fehlerbehandlungsroutinen hinzu, um unerwartete Abbrüche zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich einen bestimmten Zellbereich auswählen?
Du kannst die Range-Funktion verwenden, um spezifische Zellen zu markieren, z.B. Range("A1:B2").Select.

2. Was ist der Unterschied zwischen End(xlDown) und End(xlUp)?
End(xlDown) sucht nach dem letzten gefüllten Wert nach unten, während End(xlUp) nach dem letzten gefüllten Wert nach oben sucht.

3. Kann ich auch mehrere Bereiche gleichzeitig auswählen?
Ja, du kannst mehrere Bereiche wie folgt auswählen: Union(Range("A1:A10"), Range("C1:C10")).Select.

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