Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
620to624
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
620to624
620to624
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Wer suchet, der findet ! DRINGEND !

Wer suchet, der findet ! DRINGEND !
07.06.2005 18:51:55
Stefan
Hallo Freaks.
ich glaube, für die vorliegende Herausforderung bedarf es wirklich eines Freaks. Eigentlich sollte ich mit diesem mühsam zusammengebauten Skript auch zum Erfolg kommen, jedoch hat das ganze einen kleinen Haken. Obwohl ich der Funktion alle nötigen Daten übergebe, setzt die

Sub alle Ranges auf den Wert des gerade im Workbook makierten Worksheets. Eigentlich sollte die 

Sub ja mit der "For each blatt..."-Anweisung eben alle Durchlaufen. So scheint die Variable lastR immer nur den Rang-Unterwert für das aktiiverte Sheet anzunehmen.
Ich verzweifle schon halb oder sehe den Wald vor lauter Bäumen nicht....
'Funktion : GetLastRow
'Autor    : 06.06.2005

Function GetLastRowWS(ws As Worksheet, Optional spalte As Integer = 1) As Long
With ws
GetLastRowWS = Rows.Count
If ws.Cells(GetLastRowWS, spalte).Value = "" Then GetLastRowWS = Cells(GetLastRowWS, spalte).End(xlUp).Row
End With
End Function

'Prozedur : DatenRangesBilden
'Autor : 06.06.2005

Sub DatenRangesBilden()
Dim i As Long, lastR As Long
Dim blatt As Worksheet
For Each blatt In ActiveWorkbook.Sheets
lastR = GetLastRowWS(blatt, 4)
ActiveWorkbook.Names.Add Name:=blatt.Name, RefersTo:= _
"=" & blatt.Name & "!" & _
"$28:$" & lastR
Next blatt
End Sub

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

Betreff
Datum
Anwender
Anzeige
AW: Wer suchet, der findet ! DRINGEND !
07.06.2005 20:33:56
Matthias
Hallo Stefan,

Function GetLastRowWS(ws As Worksheet, Optional spalte As Integer = 1) As Long
With ws
GetLastRowWS = Rows.Count
If ws.Cells(GetLastRowWS, spalte).Value = "" Then GetLastRowWS = ws.Cells(GetLastRowWS, spalte).End(xlUp).Row
End With
End Function

Siehst Du den Unterschied?
;-)
Gruß Matthias
AW: Wer suchet, der findet ! DRINGEND !
Stefan
... und falls das noch nicht den gewuenschten Erfolg hat, dann vielleicht noch GetLastRowWS = .Rows.Count statt nur GetLastRowWS = Rows.Count
Habs zwar ehrlich gesagt nicht getested obs funktioniert, kann mir aber schwerlich vorstellen dass es funktioniert ohne den Verweis auf Dein Arbeitsblatt (und der kommt erst durch den ".", ohne den funktioniert keine "with" Anweisung)
Schoene Gruesse
Stefan
Anzeige
Hat geklappt.
08.06.2005 08:31:36
Stefan
Besten Dank an Euch beide. War bisher echt das kniffeligste an dem ich in Excel programmiert habe. Und eines weiss ich bis hierhin garantiert: UsedRange kommt bei mir nicht mehr ins Haus. Das hatte ich auch schon mühselig zusammenklamüsert und letztenendes hat es nie richtig gefunzt.
Also, vielen Dank und Grüße aus Berlin.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige