Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
(29.04.2017, 13:25)DbSam schrieb: Wer mit ...
Code: Application.ScreenUpdating = False
... arbeitet, sollte unbedingt einen Errorhandler implementieren und darin das ScreenUpdating wieder einschalten. Beispiele findest Du einige im Netz, so auch hier. Moin Carsten! Entgegen der VBA-Hilfe schaltet sich .ScreenUpdating nach Beendigung eines Makros automatisch wieder auf true. Gleiches gilt für .DisplayAlerts, da steht es aber auch explizit in der Hilfe. Prinzipiell gebe ich Dir aber selbstverständlich Recht. Es ist sauberer, alles was ich ausschalte, in einer Fehlerbehandlung wieder einzuschalten. Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 17.04.2014
Version(en): MS Office 365(32)
Hallo Ralf, (01.05.2017, 08:25)RPP63 schrieb: Es ist sauberer, alles was ich ausschalte, in einer Fehlerbehandlung wieder einzuschalten. sauberer ist es, den vorherigen Zustand wieder herzustellen! Gruß Uwe
Registriert seit: 12.10.2014
Version(en): 365 Insider (32 Bit)
:21: [Haarspalterei] Also so, Uwe (natürlich nicht Ernst gemeint)? Code: Dim blnEvents As Boolean On Error GoTo ErrHdl With Application blnEvents = .EnableEvents .EnableEvents = False 'Code End With ErrHdl: Application.EnableEvents = blnEvents
[/Haarspalterei] :32: Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Registriert seit: 20.04.2017
Version(en): 2016
Hi,
okay, also darf ich zu Kenntniss nehmen, das es einfach nicht geht, ein Workbook mit verstecktem Ribbon zu benutzen, eine neue Datei zu öffnen da aber das Ribbon anzuzeigen?
LG
Registriert seit: 28.07.2015
Version(en): 365
01.05.2017, 11:50
(Dieser Beitrag wurde zuletzt bearbeitet: 01.05.2017, 12:00 von DbSam.
Bearbeitungsgrund: Linksschreibung korrigiert
)
(01.05.2017, 08:25)RPP63 schrieb: Moin Carsten! Moin Ralf! Danke für den Hinweis, aber das ist mir durchaus bewusst. Man kann die Problematik auch gern ins Lächerliche ziehen, aber und gerade auch bei '.DisplayAlerts' sollte man den zweiten Halbsatz in der MS-Hilfe lesen: Zitat:If you set this property to False, Microsoft Excel sets this property to True when the code is finished, unless you are running cross-process code. Und bei '.ScreenUpdate' macht es schon einen gewaltigen Unterschied, ob dies im Errorhandler auf False stehenbleibt oder vor der MsgBox auf True gesetzt wird. Code: Private Sub Irgendwas() On Error GoTo Er
Application.ScreenUpdating = False ActiveSheet.Cells(1, 1) = "Der Ralf weiß das auch, aber er wollte sicherlich nur mal querschießen." MsgBox 1 / 0
Ex: On Error Resume Next Application.ScreenUpdating = True Exit Sub Er: 'zur Demo mal auskommentiert: 'Application.ScreenUpdating = True MsgBox Err.Number & vbNewLine & Err.Description, vbCritical, "Fehler in der Sub Irgendwas" Resume Ex 'for debug: Resume Next End Sub
Gruß Carsten PS: Mumpel, Danke für den Tipp. :) Den werde ich mal ausprobieren. Mal sehen, ob man damit das Problem beim Schließen ohne Speichern per VBA die Fehlermeldung unterdrücken kann. Im Moment habe ich aber nicht die richtige Muße dafür da mich dieses Problem nicht direkt betrifft und ich auch nicht weiß, ob sich der TE noch weiter dafür interessiert.
Registriert seit: 20.04.2017
Version(en): 2016
Hi, fürs debuggen oder das ribbon thema? ich hab mumpels tip ausprobiert, geht leider nicht :(
Registriert seit: 28.07.2015
Version(en): 365
Hallo Rotzi, (01.05.2017, 11:24)rotzi schrieb: okay, also darf ich zu Kenntniss nehmen, das es einfach nicht geht, ein Workbook mit verstecktem Ribbon zu benutzen, eine neue Datei zu öffnen da aber das Ribbon anzuzeigen? Doch, das geht. Was funktioniert nicht an dem Workaround? Vielleicht kannst Du Dein Problem nochmal genau beschreiben. So, damit auch ich es verstehe. Gruß Carsten
Registriert seit: 20.04.2017
Version(en): 2016
01.05.2017, 12:17
(Dieser Beitrag wurde zuletzt bearbeitet: 01.05.2017, 12:18 von rotzi.)
Hi Carsten, sorry habe mich falsch ausgedrückt, ja es geht... ABER: wenn ich aus meinem Workbook, eine neue excel instanz öffne, dann kann ich nichts mehr da rein kopieren. hier knallt es Code: With Workbooks.Add .Worksheets(1).Range("A1").PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
ich habe es mir genau angeschaut, das Problem liegt darin, dass er aus irgendeinem Grund, den Zwischenspeicher leert wenn ich das Ribbon aktiviere... Die abfolge ist: 1. Erstelle ein Tabellenblatt(in dem alten workbook), formatierung etc... 2. Kopiere das Tabellenblatt 3. Erstelle ein neues Workbook 4. dann kommt Workbook Deactivate weil er in das neue rein geht... und da kommt eben Ribbon = true 5. füge es in das neu erstellt Workbook ein... aber der zwischenspeicher ist durch das ribbon einblenden leer geworden und deswegen sagt er mir konnte nicht ausgeführt werden... Lösung wäre hierfür vllt eine Variable für das kopierte vergeben? Gruss
Registriert seit: 28.07.2015
Version(en): 365
Hallo Rotzi,
es wäre sehr hilfreich, wenn Du eine Beispieldatei mit Deinem Problem und dessen Code hier hochladen würdest. Du kannst, und solltest, gern alles andere entfernen und das zu kopierende Sheet fast leer machen. Es sollte ein (wie bisher) funktionierender Code mit Deinem Fehler übrig bleiben.
Dann könnte man mal den Debugger anwerfen und überlegen. Jetzt weiß ich halt nicht genau, welchen Code ich wie nachbasteln sollte ...
Gruß Carsten
Registriert seit: 20.04.2017
Version(en): 2016
hab die lösung :)
ich kopiere es einfach nicht.. ich sag einfach
with add workbook Range("A1") = workbook("name").sheets("name").range("a-z").value
mannnnnnn die lösung kann manchmal so einfach sein :D
|