Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
724to728
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
724to728
724to728
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Funktionsaufruf und -definition an versch. Orten??

Funktionsaufruf und -definition an versch. Orten?
27.01.2006 13:49:54
tobias
Hallo liebe Forumler,
ich hänge an meinem Problem mit den Funktionen fest:
Ich habe eine Funktion im Code "Tabelle1" geschrieben und als "public" gesetzt.
Public

Function PruefeGanzeZeile(zeile As Range) As Boolean
Im Code unter "MeineArbeitsmappe" habe ich in der Subfunktion "Workbook_BeforeSave()" den Funktionsaufruf eingebaut.
Private 

Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim fehler As Boolean
Dim zelle As Range
fehler = False
For Each zelle In ActiveSheet.Range("A1:J1000")
fehler = PruefeGanzeZeile(zelle)
If fehler Then
MsgBox "Aufgrund der Fehlereingaben kann die Mappe nicht gespeichert werden! Bitte korrigieren!"
zelle.Select
Cancel = True
Exit For
End If
Next
End Function

Dennoch bekomme ich eine Fehlermeldung beim Kompilieren:

Sub oder 

Function nicht definiert!
Soll das heissen, dass die Funktion nicht unter "MeineArbeitsmappe", sondern in "Modul" stehen muss, damit es dort korrekt erkannt werden kann?
Ich denke, es ist eigentlich egal, wo die Funktion definiert sein kann, oder irre ich mich?
Gruss
Tobias

		

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

Betreff
Datum
Anwender
Anzeige
AW: Funktionsaufruf und -definition an versch. Orten?
27.01.2006 13:53:46
ChrisL
Hi Tobias
Eine Ereignis-Prozedur (Sub) kannst du nicht in eine Funktion (Function) verschachteln. Entweder Sub oder Function.
Etwa so...
Function PruefeGanzeZeile(zeile As Range) As Boolean
...
End Function

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
Dim fehler As Boolean
Dim zelle As Range
fehler = False
For Each zelle In ActiveSheet.Range("A1:J1000")
fehler = PruefeGanzeZeile(zelle)
If fehler Then
MsgBox "Aufgrund der Fehlereingaben kann die Mappe nicht gespeichert werden! Bitte korrigieren!"
zelle.Select
Cancel = True
Exit For
End If
Next
End Sub

Gruss
Chris
Anzeige
AW: Funktionsaufruf und -definition an versch. Orten?
27.01.2006 14:01:45
Tobias
Hallo Chris,
Sorry, ich habe die "End Function " beim Copy&Paste nach unten verschoben.
Also nochmal:
Ich habe die Funktion "PruefeGanzeZeile()" als

Function definiert und mit End 

Function abgeschlossen.
Und die "Workbook_BeforeSave()" habe ich als 

Sub definiert und mit End 

Sub abgeschlossen.
Dennoch taucht hier die Meldung auf.
Gruss
Tobias

AW: Funktionsaufruf und -definition an versch. Orten?
27.01.2006 14:27:25
ChrisL
Hallo Tobias
OK, aber der angegebene Code alleine produziert keinen Fehler (alles in DieseArbeitsmappe kopiert).
Ich kann den Fehler somit nicht rekonstruieren.
Gruss
Chris
Anzeige
AW: Funktionsaufruf und -definition an versch. Orten?
27.01.2006 16:03:07
Tobias
Hallo Chris,
ich habe die Funktion in "MeineArbeitsmappe" hineinkopiert und dort den Fehler gefunden:
Ich hatte die For-Schleife an falscher Stelle abgebrochen und korrigiert.
Es klappt nun einwandfrei.
Jetzt komme ich zum nächsten Schritt:
Diese Funktion soll auch von der anderen Funktion in "Tabelle1" aufgerufen werden.
Soweit ich weiss, kann man diese Funktion als sog. "Add-In" verwenden. Aber ich glaube, in diesem Fall muss diese sog. Add-In sich entweder in einem "Modul1" oder in einer externen Datei befinden.
Aber ich will die Funktion entweder nur in "MeineArbeitsmappe" oder in "Tabelle1" haben.
Bis jetzt habe ich dies nicht hinbiegen können.
Hast du eine Idee dazu?
Gruss
Tobias
Anzeige
AW: Funktionsaufruf und -definition an versch. Orten?
27.01.2006 14:47:57
Heiko
Hallo Tobias,
entweder beide in DieseArbeitsmappe oder in eine Tabelle.
Oder wenn du von mehreren Tabellen und von DieseArbeitsmappe darauf zugreifen willst, dann muß die Funktion in ein allgemeines Modul !!!
Gruß Heiko
PS: Rückmeldung wäre nett !
AW: Funktionsaufruf und -definition an versch. Orten?
30.01.2006 08:24:39
Tobias
Vielen Dank!
Das ist für mich eine neue Erfahrung, die ich sehr zu schätzen weiss.
Gruss
Tobias

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige