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

UDF funktioniert in xls-Tabelle aber nicht in VBA

UDF funktioniert in xls-Tabelle aber nicht in VBA
Peter
Guten Tag
Untenstehende Funktionen berechnen mir die erste, resp. die letzte Zeile eines Ranges.
So ist ergibt die in einem Worksheet eingetragene Formeln
=rErsteZeile(Beispiel) den Wert 2 und
=rLetzteZeile(Beispiel den Wert 222
Nun möchte ich diese Funktion auch im VBA benützen, wenn ich jedoch im Direktbereich
?rErsteZeile(Beispiel) oder ?rLetzteZeile(Beispiel) eingeben
Als Ergebnis erhalte ich jedoch folgende Fehlermeldung:
"Microsoft Visual Basic Fehler beim Kompilieren: Argumenttyp ByRef unverträglich"
Was muss ich ändern, dass das auch im VBA klappt?
Danke für eine Antwort.
Gruss, Peter
Function rErsteZeile(Rng As Range) As Long
rErsteZeile = Rng.Row
End Function
Function rLetzteZeile(Rng As Range) As Long
rLetzteZeile = Rng.Cells(Rng.Cells.Count).Row
End Function

Versuche "'PUBLIC Functtion rErsteZelle()' _oT
16.11.2010 11:11:47
NoNet
_oT = "ohne Text"
Uuuups : 'Function' natürlich mit einem 'T' !! _oT
16.11.2010 11:12:43
NoNet
_oT
AW: Uuuups : 'Function' natürlich mit einem 'T' !! _oT
16.11.2010 11:13:45
Peter
Hallo NoNet
Habe das angepasst, doch im Direktbereich lässt sich die Codezeile immer noch nicht auswerten.
Danke und Gruss, Peter
Function(Function(Function...... ?
16.11.2010 11:28:15
Renee
Hallo Peter,
Das sind doch etwas 'blödsinnige' Funktionen oder nicht ? Beide kannst du direkt mit dem Befehl in der Function erreichen, also warum nochmal eine Function darum herum ?
Im Direktfenster musst du nur die richtig Notation verwenden, z.B.
?rLetzteZeile(Tabelle1.[C17:G43])
GreetZ Renée
AW: Function(Function(Function...... ?
16.11.2010 15:11:24
Peter
Hallo Renée
Danke für deine Antwort.
In meiner konkreten Situation ist es halt so, dass ich mit benannten Bereichen arbeite, da die Bereichsnamen immer aktuell sind, wenn ich innerhalb des Bereiches Spalten oder Zellen einfüge oder lösche. Daher kam auch die Idee, im Direktbereich von einem benannten Bereich, die letzte Zeile abzufragen. Bei der Beurteilung, ob diese Idee blödsinnig ist oder nicht, wird es sicher zulässig sein, unterschiedlicher Meinung zu sein.
Gruss, Peter
Anzeige
AW: UDF funktioniert in xls-Tabelle aber nicht in VBA
16.11.2010 11:23:22
Rudi
Hallo,
das klappt doch.
Sub ttt()
Dim Beispiel As Range
Set Beispiel = Range("C2:G222")
Debug.Print rErsteZeile(Beispiel), rLetzteZeile(Beispiel)
End Sub

AW: UDF funktioniert in xls-Tabelle aber nicht in VBA
16.11.2010 15:06:05
Peter
Hallo Rudi
Vielen Dank.
Dein Beitrag hat mir bei der Umsetzung geholfen. Vielen Dank. Und ich habe zur Kenntnis genommen, dass ich mit dieser Funktion nicht direkt eine Abfrage im Direktbereich machen kann (wahrscheinlich müsste ich die Funktion so aufbauen, dass ich den Bereichsname als String übergebe).
Danke und Gruss, Peter
Set Rng = Range("Beispiel")
lngBpsEnde = rLetzteZeile(Rng)
Function rLetzteZeile(Rng As Range) As Long
rLetzteZeile = Rng.Cells(Rng.Cells.Count).Row
End Function

Anzeige
Direktfenster:nix umbauen. Richtig eingeben!
16.11.2010 15:12:12
Renee
Hi Peter,
Da muss nix umgebaut werden, nur richtig referenziert werden!
Im Direktfenster:
?rLetzteZeile(ActiveSheet.Range("Beispiel"))

funktioniert tadellos, so der Bereich dort definiert ist!
GreetZ Renée
AW: Direktfenster:nix umbauen. Richtig eingeben!
16.11.2010 15:25:45
Peter
Hallo Renée
Das hat Klarheit gebracht, vielen Dank.
Bei meinem ursprünglichen Versuch mit
?rLetzteZeile(Beispiel)
hat die Info gefehlt, dass es sich um einen Range handelt,
was nun so funktioniert:
?rLetzteZeile(Range("Beispiel")) oder
?rLetzteZeile([Beispiel])
Das ActiveSheet wäre nach meinem Verständnis nur notwendig, wenn der Name nicht für die ganze Datei gültig wäre.
Gruss, Peter
Anzeige

305 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige