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

Hilfe! Komische Fehlermeldung!

Hilfe! Komische Fehlermeldung!
01.09.2003 22:40:42
Franz W.
Hallo Fachleute,

bin gleich mit dem nächsten da und zwar mit einer merkwürdigen Fehlermeldung:

in dem Block

dlgKdAendern.txtKdNr = KdNr
dlgKdAendern.txtTitel = KdTitel
dlgKdAendern.txtNName = KdNName
dlgKdAendern.txtVName = KdVName
dlgKdAendern.txtco = Kdco
dlgKdAendern.txtStrasse = KdStr
dlgKdAendern.txtPLZ = KdPLZ
dlgKdAendern.txtOrt = KdOrt
dlgKdAendern.txtObjekt = Objekt
dlgKdAendern.txtKtoNr = KtoNr
dlgKdAendern.txtBLZ = BLZ
dlgKdAendern.txtBank = Bank
dlgKdAendern.txtNotiz = KdComm

markiert er in der letzten Zeile den Teil .txtNotiz = (also inklusive Punkt bis incl. Gleichheitszeichen) mit der Meldung: "Fehler beim Kompilieren. Methode oder Datenobjekt nicht gefunden."

txtNotiz ist ganz sicher ein Textfeld einer UF, auch sicher richtig geschrieben, genau wie alle übrigen auch. Und bei denen hauts hin. Das Textfeld txtNotiz hab ich grad nachträglich in die UF eingefügt. Sitz ich da auf der Leitung? Hab ich was übersehen? Oder warum macht er das? Ich bitte noch mal um Eure Hilfe.

Vielen Dank im Voraus und Grüße
Franz

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe! Komische Fehlermeldung!
01.09.2003 22:48:14
RainerW
Hallo Franz,

speicher mal deine Mappe, schließe sie und öffne sie dann wieder.
Fehler weg?
Excel erkennt manchmal nicht seine Objekte.
Das merkst du auch daran, dass die die TextBox nicht im Codefenster
unter ALLGEMEIN aufgefüht wird.

Gruß
Rainer
AW: Hilfe! Komische Fehlermeldung!
01.09.2003 22:57:44
Franz W.
Hallo Rainer,

danke, das hat geholfen, jetzt nimmt er's klaglos.

Und wenn Du möglicherweise so fit bist mit Excel-Rätseln hätte ich da noch eine weitere Frage, wenn ich darf: beim Aufruf dieser UF setze ich den Cursor in das zweite Textfeld:

dlgKdAendern.Show
dlgKdAendern.txtTitel.SetFocus

Wie gesagt: txtTitel ist das zweite Textfeld. Beim ersten Aufruf der UF nach dem Start der Mappe sitzt der Cursor aber immer im ersten Textfeld. Jedesmal nach Start der Mappe. Bei jedem weiterem Aufruf der UF sitzt der Cursor dann immer richtig in txtTitel, so wie ich es will.

Gibt es dafür auch noch eine Erklärung? Oder gar Lösung? Oder ist das ein Bug, mit dem man leben muss?

Vielen Dank schon mal im Voraus

Grüße
Franz
Anzeige
AW: Hilfe! Komische Fehlermeldung!
01.09.2003 23:09:01
RainerW
Hallo Franz,

im VBA-Menü |Datei|Aktievierungsreihenfolge kannst du die Reihenfole
der Steuerelemente festlegen, in der sie den Focus erhalten sollen.

Das funktioniert aber nicht immer, Excel weiß warum - aber nur Excel.

Dann setze den Fokus auf den Abbrechen- oder Ok-Button und verändere solange
den Parameter (Ziffer) in dem Befehl:
Application.SendKeys ("{TAB 5}")
bis dein gewünschtes Steuerelement den Fokus hat.

Gruß
Rainer
AW: Hilfe! Komische Fehlermeldung!
01.09.2003 23:14:36
Franz W.
Hallo Rainer,

die Aktivierreihenfolge habe ich festgelegt. Und die funktioniert bei mir sogar (dieses Excelmanko hab ich mir wohl gottseidank nicht reingezogen :-))). Aber die Positionierung des Cursors im txtTitel, in der Reihenfolge das zweite Textfeld, klappt trotz explizierter Anweisung im Code nicht beim ersten Aufruf der UF, erst bei den weiteren. Ich denke ich kann damit leben.

Vielen Dank für Deine Mühe und Grüße
Franz
Anzeige
AW: Hilfe! Komische Fehlermeldung!
01.09.2003 23:29:10
RainerW
Hallo Franz,
du mußt damit nicht leben!
Probier es aus,
lege deinen Startfocus auf den cmdAbbrechen
darunter die Sendkeys-Methode mit der entsprechenden Tabzahl.
Die ermittelst du, wenn du die UserForm aufrufst und die Tabtaste drückst
bis der Focus auf dem cmdAbbrechen liegt.
Dann drückst du wieder die Tabtaste, und zwar so oft, bis deine Textbox
den Fokus hat.
Diese Zahl fügst du als Parameter in die Sendkeys-Methode ein.

Nun klappt's auch beim ersten Aufruf.

Gruß
Rainer
AW: Hilfe! Komische Fehlermeldung!
02.09.2003 00:21:33
Franz W.
Hallo Rainer,

hab's lange versucht, und er hat gemacht was er wollte. Eine Erklärung gab's jetzt von KLaus. Wenn ich die Befehle falsch anordne kann es eigentlich nicht hinhauen.

Vielen Dank für Deine Hilfe und Grüße
Franz
Anzeige
AW: Hilfe! Komische Fehlermeldung!
01.09.2003 23:50:32
Klaus Schubert
Hallo Franz,

eigentlich solltest du solche (SetFocus-)Einstellungen direkt in der UserForm mit dem Ereignis


Private Sub UserForm_Initialize()
txtTitel.SetFocus
End Sub


machen. Dieses Ereignis wird beim Aufrufen einer UserForm abgearbeitet, so dass du dadurch gewisse Grundeinstellungen deiner UserForm festlegen kannst, welches der Zweck dieses Ereignisses ist.

Allerdings funktioniert es auch, wenn du die beiden Zeilen beim Aufruf miteinander vertauscht.

dlgKdAendern.txtTitel.SetFocus
dlgKdAendern.Show

Der Grund,warum das so herum funktioniert, ist folgendermaßen:

Bei deiner Reihenfolge wird zuerst

dlgKdAendern.Show

aufgerufen, also deine UserForm. Dein weiterer Code

dlgKdAendern.txtTitel.SetFocus

wird aber erst ausgeführt, nachdem du deine UserForm wieder schließt, vorher nicht. Dieses gilt immer dann, wenn die UserForm-Eigenschaft ShowModal = True ist, was frei übersetzt ungefähr bedeutet: Solange ich "UserForm" angezeigt werde, habe ich das Sagen und alles andere stoppt.
Ist ShowModal = False , so wird der Code im Hintergrund ausgeführt, obwohl die UserForm angezeigt wird. Zu empfehlen ist allerdings ShowModal = True, um verschiedenen Problemen aus den Weg zu gehen.

Schließt du also deine UserForm, wird der Code ausgeführt und txtTitel bekommt den Fokus, auch wenn die UserForm nicht angezeigt wird. Rufst du nun wieder deine UserForm auf, so ist der Fokus richtig.

Ich hoffe, es war einigermaßen verständlich.

Gruß Klaus
Anzeige
AW: Hilfe! Komische Fehlermeldung!
02.09.2003 00:18:31
Franz W.
Hallo Klaus,

vielen Dank für die Erklärungen. Zumindest bei mir klappt aber leider nur die zweite:

vertauschen der Reihenfolge von .SetFocus und .Show. Das funktioniert bestens.

Der Vorschlag mit


Private Sub UserForm_Initialize()
txtTitel.SetFocus
End Sub


haut nicht ganz hin: beim ersten Aufruf der UF geht er jetzt tatsächlich in txtTitel, bei jedem weiteren Aufruf landet er allerdings jedesmal auf dem Abbrechen-Button. Hab's auch schon mit Excel-Neustart (und sogar mit PC-Neustart) versucht, ändert aber nix, er will nicht.

Aber mit dem anderen Tipp hast Du mir ja schon sehr geholfen.

Vielen Dank dafür und Grüße
Franz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige