Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1528to1532
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zellen unterhalb markierter zelle markieren

Zellen unterhalb markierter zelle markieren
13.12.2016 16:40:39
Erik
Hallo zusammen !
Habe folgenden VBA Code, der etwas erweitert werden müßte.
Vielleicht kann mir dabei jemand helfen.
Es wird die Zelle Menge gesucht und markiert.
Allerdings sollen alle Zellen unterhalb der (Zelle Menge) markiert werden die befüllt sind.
Das ist immer unterschiedlich.
Kann mir jemand helfen.
Vielen Dank
Gruß
Erik
hier der benutzte Code:
Sub test()
Dim c As Range
Dim firstAddress
Dim str
Dim Bereich As Range
Dim start As Double
str = "Menge"
With Worksheets("Page 1").Cells
Set c = .Find(str, LookIn:=xlValues)
If c Like str Then Set Bereich = c
If Not c Is Nothing Then
firstAddress = c.Address
Do
Set c = .FindNext(c)
If c Like str Then Set Bereich = Union(c, Bereich)
Loop While Not c Is Nothing And c.Address  firstAddress
End If
End With
Bereich.Select
Debug.Print Timer - start
End Sub

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zellen unterhalb markierter zelle markieren
13.12.2016 17:04:29
Michael
Hi,
zunächst mal der Timer: start wird nicht zugewiesen, ist nach dem Dim also 0.0; timer ist außerdem ein single, kein double.
Also:
Dim start As Single
start = Timer

sonst wird nur der aktuelle Timer-Wert ausgegeben, nicht die Differenz.
Die Zeile If c Like str Then Set Bereich = c ist etwas seltsam: ob .find ganze oder Teilbegriffe finden soll, läßt sich als Parameter mit einstellen, nach dem lookin dann noch: LookAt:=xlPart oder xlWhole. Von der Logik her fehlt hier noch ein "Else": was soll denn passieren, wenn das c Like str nicht zutrifft? Wenn überhaupt, dann gehört diese Zeile unter das if not c is nothing, sonst bricht das Makro ab, falls gar kein Treffer vorhanden ist.
Die eigentliche Frage ist etwas unklar, ohne die Tabelle zu kennen. Handelt es sich um mehrfach vorkommende Spaltenüberschriften?
Schöne Grüße,
Michael
P.S.: Versuch mal das hier:
Option Explicit
Sub test()
Dim c As Range, d As Range
Dim firstAddress
Dim str
Dim Bereich As Range
Dim start As Single
start = Timer
str = "Menge"
With Worksheets("Page 1").Cells
Set c = .Find(str, LookIn:=xlValues, lookat:=xlPart)
If Not c Is Nothing Then
' Set Bereich = Range(c, c.End(xlDown))
' oder ist eher das erwünscht?
Set Bereich = Range(c.Offset(1), c.End(xlDown))
firstAddress = c.Address
Do
Set c = .FindNext(c)
' Set Bereich = Union(Range(c, c.End(xlDown)), Bereich)
' oder das?
Set Bereich = Union(Range(c.Offset(1), c.End(xlDown)), Bereich)
Loop While Not c Is Nothing And c.Address  firstAddress
End If
End With
If Not Bereich Is Nothing Then Bereich.Select Else MsgBox "nicht gefunden"
Debug.Print Timer - start
End Sub

Anzeige
AW: Zellen unterhalb markierter zelle markieren
13.12.2016 17:13:38
Erik
Hallo Michael,
"P.S.: Versuch mal das hier:"
hat prima geklappt.
Vielen Dank
Du bist der Beste !
Hast mir schon öfters geholfen.
Denke das wars jetzt mit meiner Tabelle.
Müßte fertig sein ;-)
Gruß
und frohes Fest
Erik
halt, Vorsicht...
13.12.2016 21:20:47
Michael
Hallo Erik,
das Makro hat zwei Fallstricke:
a) wenn unter der Überschrift nichts steht, wird der Bereich bis zur letzten Zeile markiert (bißchen viel) und
b) es wird nur bis zur nächsten, leeren Zelle markiert, d.h. wenn "Löcher" in den Daten sind, wird's auch kritisch.
Sollte einer der beiden Fälle vorkommen können, müßte man im Detail noch was ändern - ggf. auf Zuruf; Du kennst Deine Daten besser als ich.
Melde Dich halt bei Bedarf.
Ansonsten auch die besten Wünsche & Grüße,
Michael
Anzeige

216 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige