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

Funktionsaufruf in Personl.xls scheitert

Funktionsaufruf in Personl.xls scheitert
18.06.2003 22:13:40
Heinz
Hi, ich doktere schon 2 Tage an einer „Kleinigkeit“

Ich habe eine Function Myisnumeric die ich gerne in mehreren Arbeitsmappen aa.xls, bb.xls cc.xls.... verwenden würde.
Ich will also nicht jedes Mal z.B. Modul1 in irgendwelche Arbeitsmappen kopieren und hohe Datenredundanz bekommen.

Durch Büchertips wurde mir gesagt dass man diese Funktion Myisnumeric als Modul in die Personl.xls bringen kann, und auch eine Personl.xls erstellen kann.
Dies habe ich gemacht, und auch dort das Modul, die die Function Myisnumeric enthält, reinkopiert.
Ich glaube alles rechtens gemacht zu haben, habe mich streng ans Buch gehalten.

Wenn ich nun meine aa.xls aufmache, die die Function Myisnumeric enthält, geht automatisch auch Personl.xls im Hintergrund auf. Alles klar bis jetzt.

In Personl.xls steht: (Modul1)
Option Explicit

Function MyIsNumeric(strEingabe As String) As String
Dim bytkomma As Byte, i As Byte
Dim strhelp As String, char As String
For i = 1 To Len(strEingabe)
char = Mid$(strEingabe, i, 1)
If char = "." Then
MsgBox "Die Eingabe von Punkten ist nicht zulässig"
MyIsNumeric = ""
..........................usw.

In aa.xls steht u.a. eine Userforms mit Ereignissen die 2 wichtigsten hier:

Public Sub cmdfahrok_Click() -> das ist nur das Ereignis Click des OK-Button, dort wird Myisnumeric nicht gerufen

Dim ezahl As Single
If txtfahrcels.Value <> "" Then
ezahl = CSng(txtfahrcels.Value) ' wandelt einen Ausdruck in einen Singlewert um
Else
MsgBox "Bitte eine Zahl eingeben"
txtfahrcels.SetFocus
Exit Sub
End If
ezahl = Celsius(ezahl)
....................................usw

Private Sub txtfahrcels_Change() -> das ist die einzige Textbox wo ein Wert eingegeben wird (kann alles sein)
Hier wird Myisnumeric gerufen
If txtfahrcels.Value = "" Then Exit Sub ' vorsichtshalber, wird
' aber scheinbar hier nicht berührt (da keine Eingabe Change nicht auslöst)
' wenn dann der OK-Button gedrückt wird, löst das dessen Ereignis Click aus
' was über txtfahrcels.Value = "" abgefangen wird
If cmdfahrok.Enabled = False Then Exit Sub ' ganz am Ende wenn Celsius in die Textbox gebracht wird,
' hat man eben auch ein Ereignis Change für die Textbox. Das fängt man hier ab
txtfahrcels.Value = MyIsNumeric(txtfahrcels.Value)
End Sub

Hier versuche ich VBA zu sagen hole mir die Myisnumeric aus der Personl.xls.
Aber VBA kommt nicht klar, und sagt „Sub oder Function nicht definiert“

Also scheine ich mich VBA gegenüber nicht genügend genau ausgedrückt zu haben.
Aber wie heißt um alles in der Welt denn dann der Befehl der die Myisnumeric
der Personl.xls aufruft ?

Vielleicht kann mir jemand einen Tip geben.

Mit freundlichen Grüßen
Heinz

PS: Selbstverständlich läuft das VBA-Pgm wenn ich Myisnumeric in aa.xls habe, aber das ist ein
schwacher Trost für mich


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

Betreff
Datum
Anwender
Anzeige
Re: Funktionsaufruf in Personl.xls scheitert
18.06.2003 22:22:19
L.Vira

Fang doch die Eingabe von Punkten schon bei der Eingabe z.B.
mit Keypress ab, lass nur die erlaubten Zeichen zu.

Re: Funktionsaufruf in Personl.xls scheitert
19.06.2003 18:28:52
Problem gelöst

Hi

habe mein Problem nun doch gelöst, mit der Run-Methode.
Application.Run (vielleicht reicht auch Run)

txtfahrcels.Value = Application.Run("Personl.xls!MyIsnumeric", txtfahrcels.Value)

Irritierend war etwas, daß in der Hilfe von älteren Macros4.0 die Rede war.
Da könnte aber Abwärtskompabilität vorhanden sein. Anders ausgedrückt es muß die Run-Methode nach wie vor auch in neuen VBA-Versionen gelten

@l.Vira

das mit Keypress muß ich mir mal anschauen
Bin halt nicht so fit

Trotzdem Danke

mfg
Heinz

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige