wir haben eine kleine Eingabemaske um eine Kundennummer und einen Preis einzugeben. Ich gebe also in diese Form die beiden Werte ein und drücke Enter. Die beiden Werte werden in einer neuen Excelzeile abgelegt. Das war schon alles.
Das Problem ist, dass ich diesen Vorgang 69 Mal machen kann und beim 70. Mal bricht er an einer unkritischen Programmstelle einfach ab: Siehe Stelle mit den vielen !!!!!!!!!!!!!!!!!
Private Sub neuer_Satz_Button_Click()
' MF 07.01.2020 > NEW
' Static lv_count As Integer
' Stop
gv_count = gv_count + 1
If gv_count = 70 Then ' Or gv_count = 69 Then
Stop
End If
' MF 07.01.2020 CDbl(Range("A2").Value) Then
If Teilnehmer_Box "" Then
If Verkaufserlös "0,00" Then
ActiveSheet.Unprotect
Application.ScreenUpdating = True
i = ActiveCell.SpecialCells(xlLastCell).Row + 1
Sheets("Einnahmen").Range("A" & i).Value = CDbl(Auftrag) ' wenn ich diese Zeile _
_
hier auskommentiere bricht er trotzdem in Sheets("Einnahmen").Range("B" & i).Value =... ab!
' chg > 1000Dia
' Sheets("Einnahmen").Range("B" & i).Value = CDbl(Teilnehmer_Box)
' If gv_count = 70 Then
' ich mach mal gar nichts hier... was passiert denn dann? Dann stürzt er in _
dieser Zeile ab: Sheets("Einnahmen").Range("C" & i).Value = Namensfeld
' Sheets("Einnahmen").Range("B" & i).Value = CDbl(Teilnehmer_Box) ' die + 1000 _
_
war auch nicht der Fehler
' Else
Sheets("Einnahmen").Range("B" & i).Value = CDbl(Teilnehmer_Box) + 1000 ' MF _
_
07.01.2020 hier bricht er nach 70 mal ab !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! _
' End If
' chg aend
' savetest = Round(Auftrag / 20, 1) - Round(Auftrag / 20, 0)
' If savetest = 0 Then
' ActiveWorkbook.Save
' End If
' geht so nicht, da durch unload me auch die statische Variable zurückgesetzt wird!
' If l_auftrag - l_letztes_mal_gespeichert_nach_auftrag_n _
' > lc_speichern_alle_n_auftraege Then
' l_letztes_mal_gespeichert_nach_auftrag_n = l_auftrag
' ActiveWorkbook.Save
' End If
l_speichern_mal_wieder_noetig = l_auftrag Mod lc_speichern_alle_n_auftraege
If l_speichern_mal_wieder_noetig = lc_ja_bitte_jetzt_speichern Then
ActiveWorkbook.Save
End If
'mf 20111230
'' Das Formular wird NACH JEDER EINGABE entladen. Das ist ein SOFORTIGES Aussteigen hier aus _
der Form!!!...
' Unload Me
'' und wieder neu aufgebaut, natürlich incl. dem Aufruf der Sub "UserForm_Initialize". Das ist _
_
unelegant programmiert. Sollte man mal ändern!
' Einnahmen_Eingabe.Show
Einnahmen_Eingabe.Hide ' Fliegt trotzdem nach 70 mal raus!
Einnahmen_Eingabe.Show
' MF 07.01.2020 CHG
Die Stelle ist absolut unproblematisch.
Ich habe mal den Unload Me oben ausgeschaltet und statt dessen HIDE eingebaut, aber trotzdem bricht Excel nach 70 Eingaben ab.
Jetzt ist es so, dass das Programm ohne Problem auf meinem Windows 7 Rechner mit Excel 2010 läuft. Es bricht also NICHT nach 70 Eingaben ab.
Ich bin von Hause aus ein erfahrener Programmierer aber in ABAP und nicht in VBA. Ich habe das Coding durchdebuggt und hatte erst den Unload Me in Verdacht. Aber den habe ich ausgeschaltet und das Problem blieb.
Da es unter Excel 2010 problemlos läuft schließe ich auf Probleme mit der Umstellung auf Excel 365 auf anderem Windows 10 Rechner. Oder aber dass sich im VBA einige Befehle anders verhalten. Ein Fehler nach 69 erfolgreichen Durchläufen und dann der Fehler kann ich mir mit einem Programmierfehler eher nicht erklären. Es ist auch so dass ich das Programm wieder starte und weitere 70 Eingaben mache und dann bricht Excel wieder ab. Keine Fehlermeldung, nix...
Habe Office 365 upgedatet. Habe Datei von xls in xlsm umgewandelt. Immer noch Fehler.
Hat iregend jemand eine Idee!? Es kann ja nur an den unterschiedlichen Excelversionen liegen....!?
Danke und LG Michael