Zum Inhalt springen

Laufzeitfehler nach dem hinzufügen von Code


Darth Sidious

Empfohlene Beiträge

Wie ich mir schon gedacht habe ... alles halb so wild ;)

es läuft wie folgt:


Private Sub Workbook_Open()


'#####################################

'#####################################

'### If the cell B9 is not filled, ###

'### the UserForm1 will be shown.  ###

'#####################################

'#####################################

UserForm1.Show


'If Sheets("Tabell1").Cells(9, 2) = "" Then

'        UserForm1.Show

'    Else

'        End

'End If


End Sub
und in

Private Sub UserForm_initialize()


If Sheets("Tabelle1").Cells(9, 2) = "" Then

        UserForm1.Show

    Else

        Unload UserForm1


End If


'##########################

'##########################

'### Filling the fields ###

'##########################

'##########################

nach diesen Änderungen ging es bei mir sofort, und es ist genau wie ich beschrieben habe.

im Woorkbook_open NUR das show ohne Bedingungen

erst dann im Form weiter abfragen ...

mit dem unload kannst dann auch wieder das Form beenden (cmdEnd)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Um das reine Anzeigen geht es mir nicht.

Ich möchte dass die Daten aus dem Arbeitsblatt in das Formular geladen werden sobald das Formular geöffnet wird (egal ob das Formular über ein Button aufgerufen wird, oder über einen Command Button).

Wenn ich den gewünschten Code nach dem UserForm1.Show bringe z.B. im Workbook Open, dann lädt er mir trotzdem nicht die Daten in das Formular ;).

Link zu diesem Kommentar
Auf anderen Seiten teilen

also nochmal ;)

im workbook_open wird das Formular in den Speicher geladen und die ablaufsteuerung an dieses übergeben PUNKT hier wird nix gefüllt entschieden oder sonst was ... sondern nur der aufruf !

nun sind wir beim Formular

das beginnt mit dem initialize (da sind wir uns ja auch einig)

also lege ich dann doch hier fest, ob das formular gezeigt wird

- wenn es gezeigt wird, welche schalter müssen sichtbar sein

- welche textboxen müssen wie vorgefüllt werden

- ....

- ....

und die voraussetzungen wie das formular reagieren soll schaffe ich ebenfalls hier.

so kann ich nun hier sagen: schau in zelle b9, steht da was, dann übertrage die tabelle hier ins form

steht da nix, dann belege alles mit default

aber wenn ich das hier grad alles so lese, denke ich eher, du hast nen allgemeines problem mit dem verständnis bei der programmierung und VBA.

in VBA (VB) nimmt man teils andere wege, als man es in zB in C++ lösen würde

Link zu diesem Kommentar
Auf anderen Seiten teilen

uff,

Ich hab den Code jetzt mal genau so wie oben Beschrieben eingefügt.

Und jetzt bekomme ich ein Laufzeitfehler 9 bei "UserForm1.Show" :rolleyes:

Und im Initialize Event kann man keine Controll funktion auf die noch nicht fertig geladene UserForm1 ausüben da diese noch nicht geladen ist.

Und woanders kann ich den Code eigentlich nicht reinpacken da sonst nicht das Befüllen nicht stattfindet.

Link zu diesem Kommentar
Auf anderen Seiten teilen

ne sorry ... aber das ist mir alles was zu schwammig :/

in dem was ich bekomme hab steht drin, das form soll auftauchen wenn in B9 nix drin ist ..

dafür habe ich eine lauffähige version geschickt (also den grundcode)

und ich möchte wetten, dass ich dein problem gelöst bekomme, aber mit diesen angaben ist es nicht möglich

und wie in einem beitrag schon vorher gesagt, ich glaube schon dass du programmieren kannst, jedoch hast du scheinbar noch nicht viel mit VB bzw VBA gearbeitet.

sämtliche anpassungen an ein einem formular können nur zur laufzeit des formulars durchgeführt werden

man kann jedoch ein formular zur laufzeit als object erstellen, und dieses dann zur laufzeit erst gestalten (also auch label, schalter und boxen hinzufügen), hierzu empfehle ich dir jedoch entsprechende dokumentionen

Wie ich mir schon gedacht habe ... alles halb so wild

es läuft wie folgt:

Code:

Private Sub Workbook_Open()

'#####################################

'#####################################

'### If the cell B9 is not filled, ###

'### the UserForm1 will be shown. ###

'#####################################

'#####################################

UserForm1.Show

'If Sheets("Tabell1").Cells(9, 2) = "" Then

' UserForm1.Show

' Else

' End

'End If

End Sub

und in

Code:

Private Sub UserForm_initialize()

If Sheets("Tabelle1").Cells(9, 2) = "" Then

UserForm1.Show

Else

Unload UserForm1

End If

'##########################

'##########################

'### Filling the fields ###

'##########################

'##########################

nach diesen Änderungen ging es bei mir sofort, und es ist genau wie ich beschrieben habe.

und hier war nicht viel zu schreiben ...

im open hab ich lediglich ' für REM gesetzt, und das geremte habe ich in das initialize verschoben und leicht angepasst ... also wenig wirklich neu zu schreiben lediglich "Tabelle1" habe ich statt des orignaltabellenblatts genommen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...