Microsoft Excel

Herbers Excel/VBA-Archiv

DisplyAlerts - Eigenschaft fehlerhaft?

Betrifft: DisplyAlerts - Eigenschaft fehlerhaft? von: Bernhard
Geschrieben am: 10.09.2004 14:34:05

Hallo,
ich möchte in meinem Makro Exceldateien als Textdateien abspeichern. Wenn ich die Textdatei unter einem anderen Pfad als die Exceldatei abspeichere, erhalte ich von Excel einen Warnhinweis, den ich aber unterdrücken möchte.
Hierfür gibt es in Excel die Eigenschaft Application.DisplayAlerts = False. Das Problem dabei ist, daß die Zuweisung des Wertes "False" nicht zuverlässig funktioniert. Wenn ich das Makro im Einzelschritt debugge und mir "Application.DisplayAlerts" im Überwachungsfenster anzeigen lasse, sehe ich, daß der Wert auf True bleibt, auch wenn die Zeile schon durchlaufen wurde.
Steht der Wert auf True, wenn ich die Zeile "ActiveWorkbook.SaveAs" erreiche, erscheint folgerichtig auf das Warnhinweisfenster.
Der Witz ist, wie ich bei vielen Debug-Durchläufen festgestellt habe, daß die Zuweisung von "False" bisweilen einige Befehlszeilen später doch noch durchgeführt wird. Entsprechend unterbleibt dann auch das Warnhinweis-Fenster.

In diesem Zusammenhang ist ein ein weiterer Bug interessant: Wenn ich mit dem Cursor über die Zeile mit "Application.DisplayAlerts" streiche, wird in dem schmalen gelben Popup-Fenster immer der Wert "Wahr" angezeigt, auch wenn im Überwachtungsfenster "False" steht. In diesem Fall hat jedoch das Überwachungsfenster recht, da der Warnhinweis unterbleibt.

Ich habe mein untenstehendes Makro sowohl mit Excel 97 also auch mit Excel 2003 getestet. In beiden Fällen das gleiche fehlerhafte Verhalten.

Ich frage mich, mache ich hier irgendwas falsch oder handelt es sich hierbei um einen Bug, der in Excel 2003 immer noch nicht behoben ist?

Mfg
Bernhard


Sub Xls2text(pathExcelfile As String,  Optional pathTextfile As String)

Application.DisplayAlerts = False
Workbooks.Open (pathExcelfile)

l = InStr(1, pathExcelfile, ".xls", 0)
pathExcelfile = Left(pathExcelfile, l - 1)

If pathTextfile = "" Then
  ActiveWorkbook.SaveAs fileName:=pathExcelfile & ".txt", FileFormat:=xlTextWindows

Else
  l = InStr(1, pathTextfile, ".txt", 0)
  pathTextfile = Left(pathTextfile, l - 1)
  ActiveWorkbook.SaveAs fileName:=pathTextfile & ".txt",
FileFormat:=xlTextWindows
    
End If

End Sub

  


Betrifft: AW: DisplyAlerts - Eigenschaft fehlerhaft? von: hauke1965
Geschrieben am: 11.09.2004 12:44:54

hallöle,

manchmal reicht es, wenn du die eigenschaften einfach auf einen anderen ort im code platzierst.. vieleicht hinter der workbooks.open anweisung.. meiner meinung reagiert vba manchmal unergründlich. kann natürlich auch an meinen lückenhaften kenntnissen in vba liegen :-)

grüsse
hauke


 

Beiträge aus den Excel-Beispielen zum Thema "DisplyAlerts - Eigenschaft fehlerhaft?"