AW: Übertragung von UserForm zu UserForm
18.11.2022 18:26:01
UserForm
Hi Silvana,
:-O :-O :-O :-O :-O :-O
(das sollen Erschreck-Smilies sein und darstellen, wie erschrocken ich war, als ich erkannte, wo überall die Fehler in der Datei sind)
Was hast du denn hier nur angestellt?
WENN all das mal funktionierte, DANN NUR, BEVOR....du weitreichende Änderungen im Code vorgenommen hast!
Fangen wir mal mit nem ähh "einfachen" Problem an:
Im Userform "Auftragsdatenblatt" steht im Button "Zeiten erfassen" (CommandButton1), der das Userform "Auftragsdatenerfassung" aufruft, dieser Code:
Private Sub CommandButton1_Click()
ActiveWorkbook.Save
Unload Me
Auftragsdatenerfassung.Show vbModeless
Auftragsdatenblatt.Hide
End Sub
Und hier gibt es gleich ZWEI Fehler, die "ineinander verwurschtelt" sind!
1. Wie sollen die Daten aus Userform "Auftragsdatenblatt" nach Userform "Auftragsdatenerfassung" übertragen werden, wenn du vor dem Show-Befehl mit Unload Me das Userform "Auftragsdatenblatt" für Excel nicht mehr zugänglich machst?
(mit Unload... sind auch die Inhalte aller Textboxen usw wieder leer!)
2. Wozu benötigst du Auftragsdatenblatt.Hide?
Zwei Befehle vorher hast du doch mit Unload... das Userform "Auftragsdatenblatt" schon gelöscht!
So, und jetzt ein weiteres Problem, bei dem ich ein paar Minuten benötigte, bis ich auf die Lösung kam.
Die eine oder andere Möglichkeit, Text- und andere Boxen (und sonstige Controls) eines Userforms mit Werten zu füllen kann das Activate- oder Initialize-Ereignis eines Userforms sein.
In deinem Userform "Auftragsdatenerfassung" habe ich das hier gefunden:
Private Sub Auftragsdatenerfassung_initialize()
ActiveSheet.Unprotect 'der Schreibschutz wird aufgehoben
TextBox1 = Auftragsdatenblatt.TextBox1 'Kunde
TextBox2 = Auftragsdatenblatt.TextBox51 'Termin Auslieferung
...usw
End Sub
"Wieso geht das nicht? Initialize-Ereignis ist doch vorhanden", hatte ich zuerst gedacht.
Aber dann, als ich genauer hinschaute fragte ich mich: "Aber wieso heißt das Private Sub Auftragsdatenerfassung_initialize() ?"
In - jedem - Excel-VBA-Code für Userforms heißen diese Ereignisse
Private Sub UserForm_Initialize()
End Sub
Private Sub UserForm_Activate()
End Sub
!!!!!!
Aber in deinem Userform "Auftragsdatenerfassung" gibt es nicht Private Sub UserForm_Activate, und Private Sub UserForm_Initialize gibt es auch nicht!
Noch mal meine anfangs gestellte Frage: WAS hast du nur gemacht? :-)
So, und hier nun die korrigierte und wieder funktionierende Datei :-)
https://www.herber.de/bbs/user/156263.xlsm
Ach so, ich habe nur das von dir beschriebene Problem...
"Die Übertragung des Inhaltes der TextBoxen aus der Userform "Auftragsdatenblatt" zur UserForm "Auftragsdatenerfassung" funktioniert nicht mehr"
...behoben.
Sollte es noch andere "Schwierigkeiten" geben, sind mir diese noch nicht bekannt.
Konnte ich denn helfen?
Ciao
Thorsten