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

UserForm Initialize

UserForm Initialize
04.06.2002 13:26:00
Daniele
Hallo

brauche mal wieder hilfe

Ich habe mehrere UserForm die ich entsprechend inizialisieren möchte. nun hat sich herausgestellt, dass beim 2. und folgende UF die mit UserForm_Initialize() überhaupt nicht starten ("Laufzeitfehler 424: Objekt erforderlich"), und wenn ich ändere zu: UserForm4_Initialize(), dann erscheint die UF ohne Fehlermeldungen, jedoch rein gar nicht initialisiert.

was ist mein fehler?
(habe auch versucht dem UF ein eigener Name zu geben, nützt nichts).

Danke, Daniele

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

Betreff
Datum
Anwender
Anzeige
Re: UserForm Initialize
04.06.2002 13:36:05
guenter
hallo
starten must die userform mit

als beispiel initialze wird dann beim start automatisch ausgeführt
mfg guenter
Re: UserForm Initialize
04.06.2002 13:40:37
Michael Scheffler
Hallo,

besser ist - wenn auch "veraltet" - wenn Du etwas intialisieren möchtest, erst:

Load UserForm1
Load UserForm2

etc.

und dann

UserForm1.Show
UserForm2.Show
etc.

Gruß

Micha


Re: UserForm Initialize
04.06.2002 14:23:50
Daniele
Hallo Michael und Guenter

Sub Start()
Userform1.Show
End Sub

mache ich bereits und

mit Load klappt es auch nicht.

Erklährung: Private Sub UserForm_Initialize() steht im Code der UserFormX
Ich wiederhohle: bei der ersten UserForm klappt es, bei den anderen nicht. könnte es sein dass der Grund dafür ist das ich die Elemente (und Codes, natürlich angepasst) von einer UF in die andere kopiert habe (einige Elemente und Formate sollen gleich bleiben). Wenn ich eine grundlegend neue UF erstelle wiederholen sich die Bezeichnungen der Elemente ja auch immer wieder, zb. TextBox1 usw.

Anzeige
Re: UserForm Initialize
04.06.2002 14:33:45
Michael Scheffler
Hallo,

das ist schietegal, wie die Controls heißen. Da sie nicht öffentlich deklariert sind, werden ihre Bezeichnungen und Daten in der jeweiligen Form "gekapselt" .

Kann es sein, dass die Form1 stehen beleint und damit auch der Code? Und Du letzten Endes nichts anderse lädst?

Poste doch mal den Code!

Gruß

Micha

Re: UserForm Initialize
04.06.2002 15:03:31
Daniele
Hi Micha

hier der Code, hoffe du siehst durch. dieser Gleiche code mit anderen Datenbankverweise funktioniert einwandfrei in der ersten UF.
Wie kann es sein dass die andere Form stehen bleibt, sie ist gar nicht geladen!

'abbrechen
Private Sub CommandButton3_Click()
Unload Me
Tabelle3.Select
End Sub
'neuerfassung lieferant
Private Sub CommandButton1_Click()
Unload Me
UserForm4.Show
End Sub
'zurück
Private Sub CommandButton2_Click()
Unload Me
SortReag
Tabelle3.ListBox1.ListFillRange = Intersect(Sheets("DB_Reag").[A1:C1].CurrentRegion, Sheets("DB_Reag").[a2:c1000]).Address(external:=True)
Tabelle3.Select
End Sub
'Produkt auswählen & Textboxen füllen
Private Sub ComboBox2_Change()
Dim r%
r = ComboBox2.ListIndex + 2
Me.TextBox1.Text = Sheets("DB_Reag").Cells(r, 2)
Me.TextBox2.Text = Sheets("DB_Reag").Cells(r, 3)
Me.TextBox4.Text = Sheets("DB_Reag").Cells(r, 5)
Me.TextBox5.Text = Sheets("DB_Reag").Cells(r, 6)
Me.TextBox6.Text = Sheets("DB_Reag").Cells(r, 7)
Me.ComboBox3.Text = Sheets("DB_Reag").Cells(r, 4)
If Range("sel_4") = Sheets("DB_Reag").Cells(r, 8) Then CheckBox1.Value = True
If Range("sel_20") = Sheets("DB_Reag").Cells(r, 8) Then CheckBox2.Value = True
If Range("sel_RT") = Sheets("DB_Reag").Cells(r, 8) Then CheckBox3.Value = True

End Sub
'Firma auswählen
Private Sub ComboBox3_Change()
End Sub
'änderungen speichern
Private Sub CommandButton4_Click()
Dim mldg, stil, titel, grc
Dim r&
If ComboBox2.Value = "" Then
MsgBox "Dies ist keine Änderung, sie haben kein Produkt ausgewählt"
Call UserForm_Initialize
Exit Sub
Else:
mldg = "Sollen die Änderungen angenommen werden ?"
stil = vbYesNo
titel = "Frage"
grc = MsgBox(mldg, stil, titel)
If grc = vbYes Then
Else
Exit Sub
End If
r = ComboBox2.ListIndex + 2
Sheets("DB_Reag").Cells(r, 2) = TextBox1.Text
Sheets("DB_Reag").Cells(r, 3) = TextBox2.Text
Sheets("DB_Reag").Cells(r, 5) = TextBox4.Text
Sheets("DB_Reag").Cells(r, 6) = TextBox5.Text
Sheets("DB_Reag").Cells(r, 7) = TextBox6.Text
Sheets("DB_Reag").Cells(r, 8) = TextBox8.Text
Sheets("DB_Reag").Cells(r, 4) = ComboBox3.Text
If CheckBox1.Value = True Then Sheets("DB_Reag").Cells(r, 8) = Range("sel_4")
If CheckBox2.Value = True Then Sheets("DB_Reag").Cells(r, 8) = Range("sel_20")
If CheckBox1.Value = True Then Sheets("DB_Reag").Cells(r, 8) = Range("sel_RT")
End If
Call UserForm_Initialize
End Sub
'Neuerfassung speichern
Private Sub CommandButton6_Click()
If ComboBox2.Value <> "" Then
MsgBox "Dies ist keine Neuerfassung, sie haben ein Produkt ausgewählt"
Call UserForm_Initialize
Exit Sub
Else:
Call Eintrag
Call UserForm_Initialize
End If
End Sub
'eintrag vornehmen
Sub Eintrag()
Set anchor_cell = Range("R_neu").End(xlDown).Offset(1, 0)
anchor_cell.Offset(0, 1).Value = TextBox1.Text
anchor_cell.Offset(0, 2).Value = TextBox2.Text
anchor_cell.Offset(0, 3).Value = ComboBox3.Text
anchor_cell.Offset(0, 4).Value = TextBox4.Text
anchor_cell.Offset(0, 5).Value = TextBox5.Text
anchor_cell.Offset(0, 6).Value = TextBox6.Text
anchor_cell.Offset(0, 7).Value = TextBox8.Text
If CheckBox1.Value = True Then anchor_cell.Offset(0, 8).Value = Range("sel_4")
If CheckBox2.Value = True Then anchor_cell.Offset(0, 8).Value = Range("sel_20")
If CheckBox1.Value = True Then anchor_cell.Offset(0, 8).Value = Range("sel_RT")

' ID-Nummer eintragen
Ro = 5000
Co = 30
Erg = Sheets("DB_Reag").Cells(Ro, Co).Value
LZe = Sheets("DB_Reag").Range("A:A").End(xlDown).Row
NEintrag = Sheets("DB_Reag").Cells(LZe + 1, 2).Value
If NEintrag <> "" Then
With Sheets("DB_Reag").Cells(LZe + 1, 1)
.Value = Erg + 1
.NumberFormat = """V""0000"
End With
End If
Sheets("DB_Reag").Cells(Ro, Co).Value = Erg + 1

End Sub
'Löschen
Private Sub CommandButton5_Click()
Dim mldg, stil, titel, grc
mldg = "soll dieser Artikel wirklich gelöscht werden ?"
stil = vbYesNo
titel = "Obligate Frage:"
grc = MsgBox(mldg, stil, titel)
If grc = vbYes Then
Else
Exit Sub
End If
Dim r%
r = ComboBox2.ListIndex + 2
Sheets("DB_Reag").Cells(r, 1).EntireRow.Delete
Call UserForm_Initialize
End Sub
'initalisieren
Private Sub UserForm_Initialize()

CommandButton5.Caption = "Ausgewählten Datensatz" & vbNewLine & "Löschen"
CheckBox1.Value = False
CheckBox2.Value = False
CheckBox3.Value = False

ComboBox2.Clear
ComboBox3.Clear

TextBox1.Value = ""
TextBox2.Value = ""
TextBox4.Value = ""
TextBox5.Value = ""
TextBox6.Value = ""
TextBox8.Value = ""
ComboBox3.Value = ""
ComboBox2.Value = ""

Dim i%
i = 2
Do Until IsEmpty(Sheets("DB_Reag").Cells(i, 1))
ComboBox2.AddItem Sheets("DB_Reag").Cells(i, 2) & " " & Sheets("DB_Reag").Cells(i, 3)
i = i + 1
Loop
i = 2
Do Until IsEmpty(Sheets("DB_Namen").Cells(i, 1))
ComboBox3.AddItem Sheets("DB_Namen").Cells(i, 2)
i = i + 1
Loop

End Sub


Anzeige
Re: UserForm Initialize
04.06.2002 15:20:29
Daniele
Stopp!

Problem hat sich gelöst. Die TextBox8 existiert nicht in diesem UF.

... das hat jetzt lange gedauert. dachte auch nicht das das etwas ausmachen würde beim laden.

trotzdem vielen dank für deine Hilfe. ohne dich hätte ich es nicht nochmals so genau angeschaut.

vielleicht hast du mir aber noch ein tipp für ein wirklich ungelöstes problem:

suche ein methode (code) um bei jedem neueintrag eine einmalige! Zufallszahl in der ersten spalte zu generieren. das verfahren wie im code das ich gesendet habe ist nicht allzu verlässlich da es vorkommt dass aus irgenwelchem grund auch immer eine zahl generiert wird die schon in der spalte existiert. (es muss nicht zufallszahl sein (auch fortlaufend) jedenfalls einmalig.

danke, daniele

Anzeige

41 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige