Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1164to1168
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
Laufzeitfehler 1004
Peter
Warum bekomme ich hier einen Laufzeitfehler?
Public Function Letzte(ByVal TabBlatt As Worksheet, Optional ByVal Spalte As Integer = 1,  _
Optional ByVal StartZeile As Integer = 1) As Long
Dim Zeile As Long
On Error GoTo Fehler
Zeile = StartZeile
With TabBlatt
Do While (.Cells(Zeile, Spalte).Value  "")
Zeile = Zeile + 1
Loop
End With
Letzte = Zeile - 1
Exit Function
Fehler:
MsgBox "Laufzeitsfehler " & Err.Number & ". " & Err.Description
End Function

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Laufzeitfehler 1004
12.07.2010 18:35:57
Holger
Hallo,
do ... loop schleifen habe ich immer noch niht kapiert.
Zu testzwecken würde ich mal das ausprobieren:
Do UNTIL .Cells(Zeile, Spalte).Value = ""
AW: Laufzeitfehler 1004
12.07.2010 22:05:27
Peter
Kann ich erst morgen wieder probieren....mach ich mal....aber wo soll da der Unterschied sein?....mal sehen
AW: Laufzeitfehler 1004
12.07.2010 18:43:16
Christian
Hallo Peter,
keine Ahnung, wie du die Funktion aufrufst.
Das passiert wenn du z.B. als Spalte 0 einsetzt.
Aber abgesehen davon, du willst doch hoffentlich so'ne Bremse nicht wirklich einsetzen?
Gruß
Christian
AW: Laufzeitfehler 1004
12.07.2010 22:06:11
Peter
Also, 0 habe ich nicht eingesetzt.
Wie würdest du es denn machen?
AW: Laufzeitfehler 1004
12.07.2010 19:31:20
Gerd
Hallo Peter,
in welchem Modul steht diese Funktion?
Wie rufst Du sie beispielsweise auf?
Gruß Gerd
Anzeige
AW: Laufzeitfehler 1004
12.07.2010 22:04:43
Peter
Der Aufruf erfolgt mit
LetzteZeile = Letzte(Worksheets("Tabelle1"), 3, 13)
AW: Laufzeitfehler 1004
12.07.2010 22:44:20
Gerd
Hallo Peter,
meine erste Frage hast Du nicht beantwortet.
Die Funktion läuft bei mir durch. Ich vermute, dass es in der aktiven Datei keine Tabelle mit dem angegebenen Namen gab.
Die Funktion gibt bei einer leeren ersten Zelle, z.B. bei C13 zwölf zurück.
Ist das gewollt?
Natürlich ginge das Ganze auch ohne Schleife.
Gruß Gerd
AW: Laufzeitfehler 1004
13.07.2010 09:03:49
Peter
Hm....hab das eben gerade nochmal probiert....
Interessanterweise gibt es heute keinen Laufzeitfehler!!! Das spricht nun wieder für deine Theorie, dass das Tabellenblatt nicht existent war gestern.... Ich schwöre, ich habe mindestens 10x rumgemacht und mich versichert!
Zu deiner anderen Frage: Ich rufe das innerhalb eines Moduls auf. Also, auf die Funktion will ich öfter zurückgreifen aus verschiedenen Subs.
Und: Wie geht das ohne Schleife?
Bedenke bitte, dass ich bei einer beliebigen, aber auswählbaren Zelle in einer Spalte nach unten hin nach der ersten freien Zelle suchen will.....bzw. nach der letzten ausgefüllten vor einer freien, daher steht bei dir 12, wenn die Zelle C13 leer ist!
Anzeige
AW: Laufzeitfehler 1004
13.07.2010 10:26:48
Gerd
Hallo Peter!
Eine Möglichkeit.
Sub Start()
MsgBox Nächste_Leere(Thisworkbook.Worksheets("Tabelle1"), 3, 13)
End Sub
Public Function Nächste_Leere(ByVal TabBlatt As Worksheet, Optional ByVal Spalte As Integer = 1, _
_
Optional ByVal StartZeile As Integer = 1) As Long
Dim Zeile As Long
Nächste_Leere = IIf(IsEmpty(TabBlatt.Cells(StartZeile, Spalte)), StartZeile, IIf(IsEmpty( _
TabBlatt.Cells(StartZeile + 1, Spalte)), StartZeile + 1, TabBlatt.Cells(StartZeile, Spalte).End(xlDown).Row + 1))
End Function
Restriktion: Keine ausgeblendeten Zeilen.
Gruß Gerd
Anzeige
AW: Laufzeitfehler 1004
13.07.2010 10:59:36
Peter
Ok, funktioniert auch! Werde ich dann auch bevorzugen. Danke!

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige