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

Forumthread: VBA mehrere Zeilen markieren ab Zelle

VBA mehrere Zeilen markieren ab Zelle
27.09.2016 11:53:18
Markus
Hallo,
irgendwie bekomme ich das nicht in.
Ich versuche ein Makro zu schreiben, dass mir die bereits markierten Zellen bis zum Ende der letzten eingetragenen Zeile markiert.
Also wenn ich z.B. B4:D4 markiert habe, soll er einfach diese Spalten bis zum Ende der letzten Zeile markieren. Dabei sollen leere Zellen übersprungen werden.
ze_last = ActiveCell.SpecialCells(xlLastCell).Row
Range(Selection : & ze_last).Select
Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA mehrere Zeilen markieren ab Zelle
27.09.2016 11:59:22
Rudi
Hallo,
Dabei sollen leere Zellen übersprungen werden.
1. gibt es zwischendrin leere Zellen?
2. sind die Zeilen gleich weit gefüllt?
Gruß
Rudi
AW: VBA mehrere Zeilen markieren ab Zelle
27.09.2016 12:05:53
Markus
Hallo Rudi,
das Makro soll ähnlich der Funktion Strg + Umschalten + Ende sein.
Nur ich möchte nicht alle Spalten dabei markiert haben. Nur die ich bereits markiert habe.
Also entweder eine oder gleich mehrere Spalten, keinesfalls alle Spalten wie das Shortcut.
zu 1. ja es gibt leere Zellen
zu 2. Nein, es kann sein Spalte B4 ist bis B2226 gefüllt, Spalte C4 bis C1908
Anzeige
AW: VBA mehrere Zeilen markieren ab Zelle
27.09.2016 12:17:03
Rudi
Hallo,
so?
Sub aa()
Dim rngSel As Range, rng As Range, rngTmp As Range
For Each rng In Selection
Set rngTmp = Range(rng, Cells(Rows.Count, rng.Column).End(xlUp))
If rngSel Is Nothing Then
Set rngSel = rngTmp
Else
Set rngSel = Union(rngSel, rngTmp)
End If
Next
rngSel.Select
End Sub
Gruß
Rudi
Anzeige
AW: VBA mehrere Zeilen markieren ab Zelle
27.09.2016 12:35:00
Markus
Funktioniert gut, findet sogar Zellen mit Formeln am Ende.
Dennoch wäre es mir lieber, wenn die letzte maximale Zeile aus jeder X beliebigen Spalte genommen werden würde. In meinem Fall also bis Zeile 2226.
Nun wird B4 bis B2226 und C4 bis C1908 markiert
Soll B4 bis B2226 und C4 bis C2226
Ist die letzte Zeile in Spalte A3400, dann Analog
Nun soll B4 bis B3400 und C4 bis C3400 markiert werden.
Anzeige
AW: VBA mehrere Zeilen markieren ab Zelle
27.09.2016 12:23:02
Daniel
Hi
probiere mal:
Intersect(Range(Rows(Selection.row), Rows(Cells.SpecialCells(xlcelltypelastcell).Row)), Selection.EntireColumn).SpecialCells(xlcelltypeconstants).Select
ist jetzt für den Fall, dass FIX-Werte im Bereich stehen.
wenn Formeln im Bereich stehen, müsste man das xlcelltypeconstants durch xlcelltypeformulas austauschen.
Wenn Formeln und Konstanten gemischt vorkommen, wird's komplizierter.
wenn es das jetzt noch nicht triff, solltest du mal eine aussagekräftige Beispieldatei hochladen, in welcher du mit Farbe1 die von dir selektieren Zellen markierst und mit Farbe2 die Zellen, die das Makro daraufhin selektieren soll.
Gruß Daniel
Anzeige
AW: VBA mehrere Zeilen markieren ab Zelle
27.09.2016 12:42:04
Markus
Hallo Rudi,
ich nehme doch deine Lösung gefällt mir nach kurzen Tests doch sehr gut.
Vielen Dank
Grüße
Markus
AW: VBA mehrere Zeilen markieren ab Zelle
27.09.2016 15:02:58
Markus
Hallo Rudi,
leider gibt es Fehler die ich mir nicht so richtig erklären kann.
Ich habe deshalb mal ein Testfile zusammen gestellt.
Sobald ich die Zelle B5 und C5 markiere und ich das Makro von dir starte, wird auch das entsprechend markiert. Nur leider kann ich dann die Inhalte der Zellen nicht rauskopieren. Es kommt eine Fehlermeldung "Diese Aktion funktioniert nicht bei einer Mehrfachauswahl".
Vielleicht muss ich noch einmal darauf eingehen was ich genau will.
Ich markiere eine Tabelle an einer beliebigen Stelle. Dies sind in der Regel zwei oder mehr nebeneinander liegende Zellen. Dann möchte ich, dass alle Zellen unter dieser Makierung in der Spalte mittels Makro markiert werden.
Anschließend möchte ich deren Inhalte kopieren und wieder einfügen können.
Also ähnlich dem Shortcut Strg+Umsch.+Ende
Nur leider markiert dieser Shortcut alle Spalten, also nicht nur die die ich gerade bearbeite.
Anzeige
AW: VBA mehrere Zeilen markieren ab Zelle
27.09.2016 16:14:47
Markus
Hat jemand eine Lösung ?
AW: VBA mehrere Zeilen markieren ab Zelle
27.09.2016 16:51:15
Daniel
Hi
da fehlen noch wichtige Angaben:
was sind die Zellen, die du von Hand selektiert hast?
welche Zellen sollen das Makro dann selektieren?
am bestem mit zwei unterschiedlichen Farben markieren.
Gruß Daniel
Anzeige
AW: VBA mehrere Zeilen markieren ab Zelle
27.09.2016 16:57:27
Markus
https://www.herber.de/bbs/user/108456.xlsx
Die Zellen in Gelb habe ich als Beispiel markiert.
Nun soll alles wie in Grün angegeben markiert werden, einschließlich der Gelb markierten.
Die gesamte Auswahl soll also mit Grün erweitert werden. Und zwar so, dass ich die Daten später rauskopieren kann.
Anzeige
AW: VBA mehrere Zeilen markieren ab Zelle
27.09.2016 21:43:51
Daniel
Hi
probier mal das, getestet mit deiner Beispieldatei:
Intersect(Range(Selection(1), Cells.Find(what:="?*", searchdirection:=xlPrevious, searchorder:=xlByRows)).EntireRow, Selection.EntireColumn).Select
Gruß Daniel
AW: VBA mehrere Zeilen markieren ab Zelle
28.09.2016 07:54:48
Markus
Hallo Daniel,
funktioniert genauso wie ich es mir vorgestellt habe.
Vielen Dank
Grüße
Markus
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

VBA: Mehrere Zeilen ab einer Zelle markieren


Schritt-für-Schritt-Anleitung

  1. Makro erstellen: Öffne Excel und drücke Alt + F11, um den VBA-Editor zu öffnen.
  2. Neues Modul einfügen: Klicke im Menü auf Einfügen und wähle Modul.
  3. Code eingeben: Füge den folgenden VBA-Code in das Modul ein:

    Sub MehrereZeilenMarkieren()
       Dim rngSel As Range, rng As Range, rngTmp As Range
       For Each rng In Selection
           Set rngTmp = Range(rng, Cells(Rows.Count, rng.Column).End(xlUp))
           If rngSel Is Nothing Then
               Set rngSel = rngTmp
           Else
               Set rngSel = Union(rngSel, rngTmp)
           End If
       Next
       rngSel.Select
    End Sub
  4. Makro ausführen: Markiere die Zellen, von denen aus du mehrere Zeilen markieren möchtest, und führe das Makro aus.

Häufige Fehler und Lösungen

  • Fehler: "Diese Aktion funktioniert nicht bei einer Mehrfachauswahl"
    Lösung: Stelle sicher, dass du nur die Zellen in einer einzelnen Spalte markierst, bevor du das Makro ausführst.

  • Leere Zellen werden nicht übersprungen
    Achte darauf, dass der Code korrekt implementiert ist. Der Code von Rudi kann in solchen Fällen hilfreich sein.


Alternative Methoden

Eine alternative Methode ist die Verwendung des Excel-Shortcuts Strg + Umschalt + Ende. Damit kannst du alle Zeilen bis zum Ende der Daten in einer Spalte markieren. Beachte, dass dies alle Spalten markiert und nicht nur die, die du ausgewählt hast.

Für das Markieren von mehreren Zellen kannst du auch den folgenden VBA-Code verwenden:

Intersect(Range(Selection(1), Cells.Find(what:="?*", searchdirection:=xlPrevious, searchorder:=xlByRows)).EntireRow, Selection.EntireColumn).Select

Praktische Beispiele

  • Beispiel 1: Wenn du die Zellen B4:D4 markierst und das Makro ausführst, werden die Zellen B4 bis zum Ende der letzten eingetragenen Zeile in Spalte B, C und D markiert.

  • Beispiel 2: Wenn die letzte Zeile in Spalte A beispielsweise 3400 ist, wird das Makro die Zellen B4 bis B3400 und C4 bis C3400 markieren.


Tipps für Profis

  • Nutze SpecialCells(xlCellTypeConstants) oder SpecialCells(xlCellTypeFormulas), um nur bestimmte Zelltypen zu markieren.

  • Um die Leistung zu steigern, kannst du das Makro so anpassen, dass es nur die tatsächlich verwendeten Zellen in einer Spalte auswählt.

  • Verwende Application.ScreenUpdating = False, um das Flackern des Bildschirms zu vermeiden, während das Makro ausgeführt wird.


FAQ: Häufige Fragen

1. Wie markiere ich mehrere Zeilen in Excel?
Verwende das oben beschriebene Makro, um mehrere Zeilen ab einer bestimmten Zelle zu markieren.

2. Kann ich das Makro anpassen, um nur bestimmte Spalten zu markieren?
Ja, du kannst den Code so anpassen, dass nur die gewünschten Spalten in der Auswahl berücksichtigt werden.

3. Funktioniert dieses Makro in allen Excel-Versionen?
Das Makro sollte in den meisten modernen Excel-Versionen (ab Excel 2007) funktionieren. Achte darauf, dass du die Makros aktiviert hast.

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