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

UserForm

UserForm
braleta
Hallo Excel-Experten,
ich bin momentan an einem Punkt angelangt, an dem ich meine Kenntnisse in Excel und VBA am liebsten als "grottenschlecht" einordnen würde statt als gut.
Mein Problem:
was gestern noch ging, geht heute nicht mehr!, und der Witz ist der, dass ich tatsächlich seit vorgestern Nichts am Code geändert habe.
Was passiert?
Wenn ich beim Öffnen des Workbook auf der dabei automatisch geöffneten UserForm "frmSteuerungsFormular" die erste Schaltfläche drücke, will ich mit "frmPatientenFormular.Show" eine UserForm öffnen, um Patientendaten zu erfassen.
Aber statt dass das geschieht, erhalte ich im Formular "frmSteterungsFormular" ausgerechnet in der "Click"-Routine die Fehlermeldung "Fehler beim Kompilieren, Funktion oder Variable erwartet", ich kann also dieses Erfassungsformular nicht mehr anzeigen und ich habe K.E.I.N.E. Idee warum.
Ich lade eine reduzierte Version meines Workbooks auf den Server (https://www.herber.de/bbs/user/68411.xlsm) und hoffe, dass Einer von Euch mir helfen kann den Fehler zu finden bzw. zu beheben...
...bruno

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Dann kompilier doch den Code im VBE
05.03.2010 15:48:52
Renee
Hi Bruno,
Warum kompilierst du den Code deiner 2ten UF (die, die den Fehler verursacht) nicht mal im VBE, dann siehst du doch wo der Fehler auftritt. Also ich würd mal VBA auf grottenschlecht zurückstufen ;-) und auf alle Fälle, die Frage "Kennst du Option Explicit ?"
GreetZ Renée
AW: UserForm
05.03.2010 15:57:32
ChristianM
Hallo Bruno,
ein Prozedur-Name entspricht dem Namen der Userform. Das muss ja knallen!
Des Weitere:
- ist es nicht notwendig innerhalb der UF-Klasse die Userform mit deren Namen anzusprechen. Probier's mal mit "Me"
- würde "Option Explicit" dir bestimmt viel Ärger ersparen
- etc...
Gruß
Christian
Anzeige
AW: UserForm
05.03.2010 16:03:23
Chris
Servus,
wie schon von den anderen mitgeteilt, gibts da so einiges ,was nicht passt:
Private Sub cmdPatientErfassen_Click()
Worksheets("Steuerung").Range("AA3").Value = ""
Worksheets("Steuerung").Range("AA4").Value = ""
Worksheets("Patienten-DB").Activate
Range("A1").Select
Me.Hide
frmPatientenFormular.Show
End Sub
frmSteuerungsFormular durch Me ersetzen, außerdem sind etliche Variablen nicht deklariert:
in frmPateientenFormular:
Dim Plausibilität As Boolean
Dim PatientIstVorhanden As Boolean
Dim Personen As Long
Dim Details As Long
Gruß
Chris
Anzeige
AW: UserForm
05.03.2010 16:14:21
braleta
Renee, Christian, Chris,
danke für die Hinweise, ich werde meinen gedachten Kenntnis-Level reduzieren.
Option Explicit kenne ich natürlich, die fehlenden Deklarationen sind leider durch das Strippen des Workbook und der unterschiedlichsten Module und UserForm-Codeseiten verschwunden, sorry! Sehr viele Deklarationen sind als Public in vorhergehenden Modulen definiert.
Mein Problem ist, dass dieser mein Konstrukt mit wirklich vielen Modulen und UnserForms bis vorgestern funktioniert hat, ohne Einschränkungen, und heute, nach zwei Tagen Ruhe, knallt es.
Also,ich baue jetzt in jedes Modul "Option Explicit" ein und referenziere alle aktiven UserForms mit "Me".
Mal schauen, ob es dann [wieder :-)] klappt.
..bruno
Anzeige
HALT!!! alles von vorn...
05.03.2010 16:22:04
vorn...
Hi Bruno,
Lernen heisst auch verstehen!
und referenziere alle aktiven UserForms mit "Me".
Mal schauen, ob es dann [wieder :-)] klappt.

Ob die UF aktiv ist oder nicht, spielt für den Code keinen Tango und hat nix mit Me. zu tun!
Die Referenzierung mit Me. ist ein übriggeblienes Artefakt aus alten Zeiten und eigentlich überflüssig. Wichtig ist, in welcher Klasse ein Code steht. Jede Objekt/Eigenschafts Referenzierung (ohne vorangehenden Pkt.) in dieser Klasse bezieht sich auf deren Owner(also für eine Mappe auf ebendiese, für eine UF auf ebendiese, für ein Modul auf nix). Nur bei Klassen-übergreifender Adressierung muss der Klassenname vorangestellt werden!
GreetZ Renée
Anzeige
"Me" hat aber u.a. den Vorteil....
05.03.2010 16:34:46
ChristianM
dass das Coding sehr viel einfacher wird, da zB das IntelliSense hier anspricht.
Des weiteren vertrete ich die Ansicht, dass man immer vollständig und korrekt referenzieren sollte. So weiß jeder, insbesondere auch der Ersteller des Codes, auf was man sich bezieht.
Ansonsten geb ich dir Recht, Renée:
Alles von vorn!
Gruß
Christian
AW: "Me" hat aber u.a. den Vorteil....
05.03.2010 17:33:02
braleta
Renee,
danke, ja, das ist mir klar.
Und ich denke, dass ich das ab jetzt auch konsequent so machen werde, vor Allem in Hinsicht darauf, dass eventuell jemand Anders durch den Code steigen muss und dieser dann bessere Chancen hat, das, was der Code bewerkstelligen soll, auch zu verstehen.
bruno
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige