Langes Laden, wenn in Textbox mehrere Zeilen sind

Guten Tag,

Ich habe folgendes Problem mit Excel:

ich habe eine Userform erstellt, die vier Texboxen enthält, wovon bei zweien die Eigenschaft Multiline eingeschaltet ist. Diese Textboxen sind alle mit einer Zelle auf dem Excelsheet verlinkt.
Das Problem ist, wenn ich nun in einer der Boxen mit Multiline einen Text mit Absatz schreibe (also wenn ich einmal oder mehrmals Enter gedrückt habe), dann fängt Excel an, wenn ich in die nächste Box oder Enter klicke, ewig lange zu laden (also CPU dreht hoch, aber ohne dass das Programm abschmiert!).

Zu Anfang war das mit den Boxen kein Problem, aber mit der Zeit sind jetzt zu dieser Userform einige Formeln hinzugekommen (nur für Buttons, die Textboxen enthalten keine Formeln!). Ich habe aber alles nochmal zurückgesetzt und auch die alte Version, die funktioniert hatte, ausprobiert und das ganze auch an einem zweiten PC ausprobiert, aber überall das gleiche Problem…
Ich hoffe einer euer schlauen Köpfe weis mir zu helfen.

Schonmal vielen Dank

Hallo Jedda,

ich habe eine Userform erstellt, die vier Texboxen enthält,
wovon bei zweien die Eigenschaft Multiline eingeschaltet ist.
Diese Textboxen sind alle mit einer Zelle auf dem Excelsheet
verlinkt.

kannst du mal eine Beispielmappe wo das alles auftritt hochladen mit FAQ:2606

Welche Excelversion hast du?

Das Problem ist, wenn ich nun in einer der Boxen mit Multiline
einen Text mit Absatz schreibe (also wenn ich einmal oder
mehrmals Enter gedrückt habe), dann fängt Excel an, wenn ich
in die nächste Box oder Enter klicke, ewig lange zu laden
(also CPU dreht hoch, aber ohne dass das Programm
abschmiert!).

Exportiere mal den Code der Userform. Dann importiere ihn in eine neue Mappe.

Ich habe aber alles nochmal zurückgesetzt und auch
die alte Version, die funktioniert hatte, ausprobiert und das
ganze auch an einem zweiten PC ausprobiert, aber überall das
gleiche Problem…

Heißt das im Klartext, du hattest mal eine Mappe die funktionierte und dies nun nicht mehr tut bzw. viel länger braucht?

Gibt es einen ungefähren Zeitpunkt seitdem dies geschieht?
Welches BS hast du, wie wäre es mit einem Wiederherstellungspunkt deines BS vor diesem Zeitpunkt.

Gruß
Reinhard

Ich hoffe einer euer schlauen Köpfe weis mir zu helfen.

Schonmal vielen Dank

Sooo,

kannst du mal eine Beispielmappe wo das alles auftritt
hochladen mit FAQ:2606

hier wie gewünscht, die Datei:
http://rapidshare.com/files/236380512/KB_10_TV_.xls…

Welche Excelversion hast du?

ich habe Excel 2007 mit dem ganz normalen VBA

Exportiere mal den Code der Userform. Dann importiere ihn in
eine neue Mappe.

Der Aktuelle Code lautet wie folgt:

Private Sub CommandButton1_Click()

'Speichern-Button

If Bezeichnung = „“ Then
MsgBox „Bitte geben sie eine Bezeichnung für ihr Rezept ein,“ & Chr(13) _
& „da es sonst in der Auswahl nicht aufgeführt werden kann!“, _
vbOKOnly & vbExclamation, „Bezeichnung vergessen!“
Else

If Range(„H1“).Value = „nicht doppelt“ Then

Range(„A3“).Select
ActiveCell.Rows(„1:1“).EntireRow.Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
ActiveCell.Offset(-2, 0).Range(„A1:smiley:1“).Select
Selection.Cut
ActiveCell.Offset(2, 0).Range(„A1“).Select
ActiveSheet.Paste
Range(„A2:smiley:65536“).Select
ActiveWorkbook.Worksheets(" „).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(“ „).Sort.SortFields.Add Key:=Range(„A3“), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(“ ").Sort
.SetRange Range(„A3:smiley:65536“)
.Header = xlGuess
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With

Bezeichnung = ("")
Zutat = ("")
Zubereitung = ("")
bild = ("")
Image1.Picture = LoadPicture(bild)

Aufnahme.Width = 325
Image1.Visible = False
Aufnahme.Move (350)

ActiveSheet.Range(„e1“).Formula = „=IF(OR(A1=“„Nichts ausgewählt!“",A1=""""),"""",VLOOKUP($A$1,$A$3:blush:D$65536,2,FALSE))"
ActiveSheet.Range(„f1“).Formula = „=IF(OR(A1=“„Nichts ausgewählt!“",A1=""""),"""",VLOOKUP($A$1,$A$3:blush:D$65536,3,FALSE))"
ActiveSheet.Range(„g1“).Formula = „=IF(OR(A1=“„Nichts ausgewählt!“",A1=""""),"""",VLOOKUP($A$1,$A$3:blush:D$65536,4,FALSE))"
ActiveSheet.Range(„h1“).Formula = „=IFERROR(e1,“„nicht doppelt“")"

Else

MsgBox "Die Bezeichnung ist bereits in der Liste vorhanden. " & Chr(13) _
& „Bitte eine adere wählen!“, vbOKOnly, „Bezeichnung schon vorhanden!“

Bezeichnung.SetFocus
Bezeichnung.SelStart = 0
Bezeichnung.SelLength = Len(Bezeichnung.Text)

End If
End If
End Sub

Private Sub CommandButton2_Click()

'Schließen-Button

If Range(„A1“) = „“ Then
Range(„A1:smiley:1“).Clear
Unload Me
Schaltfläche6_KlickenSieAuf
Else

If MsgBox(„Alle Eingaben gehen verloren,“ & Chr(13) & „trotzdem Schließen?“, vbYesNo, „Schließen?“) = vbYes Then
Range(„A1:smiley:1“).Clear
Unload Me
MsgBox „Eingaben wurden nicht gespeichert!“, vbOKOnly, „nicht gespeichert“
Schaltfläche6_KlickenSieAuf

End If
End If

End Sub

Private Sub CommandButton3_Click()

'Alles Neu-Button

Range(„A1:smiley:1“).Clear
Bezeichnung = ("")
Zutat = ("")
Zubereitung = ("")
bild = ("")
Image1.Picture = LoadPicture(bild)

Aufnahme.Width = 325
Image1.Visible = False
Aufnahme.Move (350)

End Sub

Private Sub CommandButton4_Click()

'Durchsuchen-Button

fileToOpen = Application _
.GetOpenFilename(„Bild Dateien (*.jpg; *.bmp), *.jpg; *.bmp“)
If fileToOpen False Then
bild.Text = fileToOpen
Aufnahme.Width = 618
Image1.Visible = True
Image1.Picture = LoadPicture(bild)

Aufnahme.Move (250)

End If

End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)

'Standart Schließen-Button sperren

If CloseMode = 0 Then
Cancel = 1
End If
End Sub

Ich habe aber alles nochmal zurückgesetzt und auch
die alte Version, die funktioniert hatte, ausprobiert und das
ganze auch an einem zweiten PC ausprobiert, aber überall das
gleiche Problem…

Heißt das im Klartext, du hattest mal eine Mappe die
funktionierte und dies nun nicht mehr tut bzw. viel länger
braucht?

das heißt ich habe noch eine alte Datei mit der ich mal angefangen hatte, die formelmäßig nicht so umfangreich ist wie die aktuelle version. Und bei der hat die Userform heute anfangs noch funktioniert. Daraufhin habe ich die neue Version formelmäßig so angepasst, das sie weitestgehend der alten Version entsprach. Das hatte aber nicht funktioniert und die alte Version wollte irgendwann denn auch nicht mehr. Das ganze war heute Mittag irgendwann.
Mit der alten Version denke ich, dass die nach einem Neustart des PC’s wieder funktionieren wird, weil das hatte vorher schonmal geklappt. Aber bei der neuen Version ist das nicht möglich, das habe ich schon einige male getestet.
Ich wüsste am liebsten wie dieser Fehler zustande kommt und was ich machen muss.

Gibt es einen ungefähren Zeitpunkt seitdem dies geschieht?
Welches BS hast du, wie wäre es mit einem
Wiederherstellungspunkt deines BS vor diesem Zeitpunkt.

Ich habe XP, aber die Wiederherstellungspunkte sind nicht aktiviert, von daher unmöglich. Aber ich denke auch ehr, das das an Excel bzw VBA oder meinen Einstellungen und programmierungen in dem Sheet liegt, weil ich das ja auch auf einem 2. PC versucht hatte, mir dem selben Ergebnis…
Wobei mich das schon verwundert, dass die alte Version auf dem 2. PC gleich nicht funktionierte. Aber ich nehme an, dass die Neue Version vllt. irgendwas bei Excel oder so durcheinaner bringt, sodass das deswegen nicht mehr funktionerte.

Hallo Jedda,

ich hab jetzt nur wie von dir vorgeschrieben auf den zweiten Button geklickt, dann paar Zeilen eingegeben.
Seitdem ist Excel nicht mehr ansprechbar und in der Eingabezeile wird laufend „Nichts ausgewählt!“ angezeigt, quasi blinkend.

Ich gehe jetzt mal zu meinem Nikotindealer an seinen Kiosk, vielleicht trinke ich da ein Bierchen, jedenfalls max. in einer Stunde bin ich wieder da.
Kannst du bis dahin das nachvollziehen, also deine Mappe öffnen, auf den zweiten Button klicken und paar Zeilen, mit Enter getrennt, eingeben.
Geschieht dann das Gleiche wie bei mir?

Deinen Code habe ich noch nicht genauer angeschaut, hab nur flüchtig überflogen ob da böse Befehle drin sind wenn ich Makros erlaube.

Und, benutze bitte den pre-Tag wenn du Code postest, wird unterhalb des Eingabefensters erläutert.

Gruß
Reinhard

Hallo,

Ja richtig, bei mir geschieht auch genau das. Und wenn man den Tastmanager öffnet, sieht man auch das die CPU-Auslastung wesentlich höher ist als normal. Ist zumindest bei mir so.

Viel Spass beim Kiosk ;D

hier nochmal der Code mit dem Pre-Tag:

Private Sub CommandButton1\_Click()

'Speichern-Button

If Bezeichnung = "" Then
MsgBox "Bitte geben sie eine Bezeichnung für ihr Rezept ein," & Chr(13) \_
& "da es sonst in der Auswahl nicht aufgeführt werden kann!", \_
vbOKOnly & vbExclamation, "Bezeichnung vergessen!"
Else

If Range("H1").Value = "nicht doppelt" Then

 Range("A3").Select
 ActiveCell.Rows("1:1").EntireRow.Select
 Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
 ActiveCell.Offset(-2, 0).Range("A1:smiley:1").Select
 Selection.Cut
 ActiveCell.Offset(2, 0).Range("A1").Select
 ActiveSheet.Paste
 Range("A2:smiley:65536").Select
 ActiveWorkbook.Worksheets(" ").Sort.SortFields.Clear
 ActiveWorkbook.Worksheets(" ").Sort.SortFields.Add Key:=Range("A3"), \_
 SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
 With ActiveWorkbook.Worksheets(" ").Sort
 .SetRange Range("A3:smiley:65536")
 .Header = xlGuess
 .MatchCase = False
 .Orientation = xlTopToBottom
 .SortMethod = xlPinYin
 .Apply
 End With

Bezeichnung = ("")
Zutat = ("")
Zubereitung = ("")
bild = ("")
Image1.Picture = LoadPicture(bild)

 Aufnahme.Width = 325
 Image1.Visible = False
 Aufnahme.Move (350)

ActiveSheet.Range("e1").Formula = "=IF(OR(A1=""Nichts ausgewählt!"",A1=""""),"""",VLOOKUP($A$1,$A$3:blush:D$65536,2,FALSE))"
ActiveSheet.Range("f1").Formula = "=IF(OR(A1=""Nichts ausgewählt!"",A1=""""),"""",VLOOKUP($A$1,$A$3:blush:D$65536,3,FALSE))"
ActiveSheet.Range("g1").Formula = "=IF(OR(A1=""Nichts ausgewählt!"",A1=""""),"""",VLOOKUP($A$1,$A$3:blush:D$65536,4,FALSE))"
ActiveSheet.Range("h1").Formula = "=IFERROR(e1,""nicht doppelt"")"

Else

MsgBox "Die Bezeichnung ist bereits in der Liste vorhanden. " & Chr(13) \_
& "Bitte eine adere wählen!", vbOKOnly, "Bezeichnung schon vorhanden!"

Bezeichnung.SetFocus
Bezeichnung.SelStart = 0
Bezeichnung.SelLength = Len(Bezeichnung.Text)

End If
End If
End Sub

Private Sub CommandButton2\_Click()

'Schließen-Button

If Range("A1") = "" Then
Range("A1:smiley:1").Clear
Unload Me
Schaltfläche6\_KlickenSieAuf
Else

If MsgBox("Alle Eingaben gehen verloren," & Chr(13) & "trotzdem Schließen?", vbYesNo, "Schließen?") = vbYes Then
Range("A1:smiley:1").Clear
Unload Me
MsgBox "Eingaben wurden nicht gespeichert!", vbOKOnly, "nicht gespeichert"
Schaltfläche6\_KlickenSieAuf

End If
End If

End Sub

Private Sub CommandButton3\_Click()

'Alles Neu-Button

Range("A1:smiley:1").Clear
Bezeichnung = ("")
Zutat = ("")
Zubereitung = ("")
bild = ("")
Image1.Picture = LoadPicture(bild)

 Aufnahme.Width = 325
 Image1.Visible = False
 Aufnahme.Move (350)

End Sub

Private Sub CommandButton4\_Click()

'Durchsuchen-Button

fileToOpen = Application \_
 .GetOpenFilename("Bild Dateien (\*.jpg; \*.bmp), \*.jpg; \*.bmp")
If fileToOpen False Then
 bild.Text = fileToOpen
 Aufnahme.Width = 618
 Image1.Visible = True
 Image1.Picture = LoadPicture(bild)

Aufnahme.Move (250)

End If

End Sub

Private Sub UserForm\_QueryClose(Cancel As Integer, CloseMode As Integer)

'Standart Schließen-Button sperren

If CloseMode = 0 Then
 Cancel = 1
End If
End Sub

Hallo nochmal,

Ich habe eine Lösung gefunden:

Ich hatte in den Eigenschaften der Textboxen unter ControlSource jeweils die Zelle eingegeben, wo der Text rein soll. Damit kommt Excel wohl bei der Fülle der Formeln oder so nicht klar.

Auf jedenfall habe ich nun das aus den Eigenschaften rausgenommen und stattdessen mit in den Code für den Speichern-Button übernommen. Somit hat Excel erst nach der Eingabe mit dem übertragen zu tun und nicht schon währenddessen.

Aber rechtherzlichen Dank für deine Bemühungen Reinhard.