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

Bereichsnamen mit lastRow, last column

Bereichsnamen mit lastRow, last column
09.10.2016 16:01:54
Gerhard
Hallo,
mit diesen Funktionen (von Christian, 2009) soll der Bereichsname "gelb_1" in der Schreibweise
With wks... .Range(.Cells.....).Name = "gelb_1"erzeugt werden.
Wie muss die VBA-Zeile dazu geschrieben werden?
Die Umsetzung der Funktionen in VBA gelingt mir nicht.
Danke für die Hilfe
Gerhard
Meine Beispiel-Datei: https://www.herber.de/bbs/user/108679.xlsm
Function LastRow(wks As Worksheet) As Long
Dim lngFirst As Long, lngLast As Long, lngTmp As Long
With Application
If .CountA(wks.Cells) = 0 Then Exit Function
If .CountA(wks.Rows(wks.Rows.Count)) Then
LastRow = wks.Rows.Count: Exit Function
End If
lngLast = wks.Rows.Count
Do While lngLast > lngFirst + 1
lngTmp = (lngFirst + lngLast) \ 2
If .CountA(wks.Rows(lngTmp).Resize(lngLast - lngTmp)) Then _
lngFirst = lngTmp Else lngLast = lngTmp
Loop
If .CountA(wks.Rows(lngLast)) Then LastRow = lngLast Else LastRow = lngFirst
End With
End Function
Function LastCol(wks As Worksheet) As Long
Dim lngFirst As Long, lngLast As Long, lngTmp As Long
With Application
If .CountA(wks.Cells) = 0 Then Exit Function
If .CountA(wks.Columns(wks.Columns.Count)) Then
LastCol = wks.Columns.Count: Exit Function
End If
lngLast = wks.Columns.Count
Do While lngLast > lngFirst + 1
lngTmp = (lngFirst + lngLast) \ 2
If .CountA(wks.Columns(lngTmp).Resize(, lngLast - lngTmp)) Then _
lngFirst = lngTmp Else lngLast = lngTmp
Loop
If .CountA(wks.Columns(lngLast)) Then LastCol = lngLast Else LastCol = lngFirst
End With
End Function

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bereichsnamen mit lastRow, last column
09.10.2016 17:06:31
Uduuh
Hallo,
Sub aaa()
Dim lngZeile As Long, lngSpalte As Long
Dim wks As Worksheet
Set wks = Sheets(1)
lngZeile = LastRow(wks)
lngSpalte = LastCol(wks)
With wks
.Range(.Cells(10, 4), .Cells(lngZeile, lngSpalte)).Name = "gelb"
End With
End Sub
In beiden Functions musst du den \ gegen / austauschen.
Gruß aus’m Pott
Udo

AW: Danke Udo!
09.10.2016 19:38:06
Gerhard
Hallo Udo,
vielen Dank für die Lösung!
Gruß
Gerhard
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige