Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1016to1020
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

wie kann man dieses kürzer machen!

wie kann man dieses kürzer machen!
14.10.2008 19:04:00
Swen
HI @ all,
ich habe mit dem Makro recorder und dem was ich schon kenne mir folgendes zusammen gebastelt!
Dim rngRangeTable As Range
Cells.Find(What:="Ch", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True _
, SearchFormat:=False).Activate
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Set rngRangeTable = Selection
gibt es hier eine bessere kürzere methode?
gruß
swen

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: wie kann man dieses kürzer machen!
14.10.2008 19:14:47
Uduuh
Hallo,

Cells.Find(What:="Ch", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True _
, SearchFormat:=False).Activate
Set  rngRangeTable=Range(selection.end(xldown),selection.end(xltoright))


Gruß aus’m Pott
Udo

AW: wie kann man dieses kürzer machen!
14.10.2008 19:20:56
Swen
vielen dank!
AW: wie kann man dieses kürzer machen!
14.10.2008 22:16:56
Daniel
Hi
eine bessere Methode sollte ohne SELECT und ACTIVATE auskommen.
probier mal das hier:

Sub test()
Dim rngRangeTable As Range
With Cells.Find(What:="Ch", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=True _
, SearchFormat:=False)
Set rngRangeTable = Range(.Cells, .CurrentRegion.SpecialCells(xlCellTypeLastCell))
End With
End Sub


Gruß, Daniel

Anzeige
das versteh' ich ja kaum ;-) owT
14.10.2008 23:04:28
Rudi
Noch ein Detail
15.10.2008 01:16:00
Jürgen
Hallo Daniel, Hallo Swen,
für eine korrekte Lösung wäre es wichtig zu wissen, ob der zu ermittelnde Bereich bis zur rechten unteren Ecke des die Fundstelle umgebenden Bereichs gehen soll oder bis zur letzten Zelle des Tabellenblatts, was das selbe sein kann, aber nicht muss.
Die Lösung mit .SpecialCells(xlCellTypeLastCell) wird den Bereich bis zur letzten genutzten Zelle des Tabellenblatts bestimmen, denn anders als vielleicht zu erwarten wäre, liefert .SpecialCells(xlCellTypeLastCell) auf einen Bereich angewendet nicht dessen letzte Zelle zurück, sondern die letzte Zelle des Tabellenblatts, auf dem der angesprochene Bereich liegt (bzw. das, was Excel für die letzte genutzte Zelle hält).
Wenn es um die letzte Zelle des umgebenden Bereichs geht, könnte die entsprechende Codezeile (ausgehend von Daniels Lösung) so aussehen:
Set rngRangeTable = Range(.Cells, .CurrentRegion.Cells(.CurrentRegion.Cells.count))
Gruß, Jürgen
Anzeige
AW: wie kann man dieses kürzer machen!
15.10.2008 09:27:12
Erich
Hallo Swen,
ist eigentlich sicher, dass "Ch" gefunden wird? Wenn nicht, führen einige der Vorschläge zum Fehlerabbruch.
Mal ausgehend davon, dass der Bereich ab der Fundstelle so richtig bestimmt wird:

Sub tst()
Dim rngRangeTable As Range
Set rngRangeTable = Cells.Find(What:="Ch", LookIn:=xlValues, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=True, SearchFormat:=False)
If Not rngRangeTable Is Nothing Then Set rngRangeTable = _
Range(rngRangeTable.End(xlDown), rngRangeTable.End(xlToRight))
'   rngRangeTable.Select
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige