none
Excel - ActiveWindow.DisplayZeros klappt nicht

    Frage

  • Hi Community,

    Nein- nicht das falsche Forum!!

    Ich habe eine Access-Anwendung, aus der ich ein Excel-Worksheet "from the scratch" erstelle, um meine Daten für die Weiterverarbeitung durch andere User auszugeben.

    Funktioniert auch alles wunderbar.

    Nun will ich im gesamten Worksheet die Nullen ausblenden. In den Excel-Optionen kein Problem.

    Zeichne ich die Aktion mit dem Excel-Makrorecorder auf, kommt nur eine Zeile raus:

    ActiveWindow.DisplayZeros = False
     

    Allerdings finde ich keine Möglichkeit, diesen Code in mein Access-VBA einzubauen. Unter ActiveWindow ist die Methode nicht verfügbar, und weder auf mein Worksheet-Objekt, noch auf das Workbook-Objekt, noch auch die Application selbst.

    Gebt mir doch bitte einen Tipp, wie ich

    ...
    objxl as Excel.Application
    objwb as Excel.Workbook
    objws as Excel.Worksheet
    
    ' alles richtig gedimmt und funktioniert auch für alle Formatierungen, Farbveränderungen, Gitter etc.
    
    objws.DisplayZeros

    hinkriege.

    Danke im Voraus

    Roland


    It's no problem, it's just the syntax


    Mittwoch, 14. Januar 2015 16:31

Antworten

  • Danke Karl, das hat weitergeholfen. Zwar nicht direkt, aber dadurch bin ich dann auf die Lösung gekommen.

    Das .Aktivate brauche ich nicht, vielmehr muss ich mein Excel-Objekt explizit ansprechen (Eigentlich logisch)

    objxl.ActiveWindow.DisplayZeros = False

    Ich bin es halt gewohnt, diese Prefixes vom Makrorecorder (Selection, Activesheet etc. Rauszuschmeissen und durch direkte Zuweisungen zu ersetzen.

    See You, Karl

    Roland


    It's no problem, it's just the syntax

    • Als Antwort markiert Roland Grothe Freitag, 16. Januar 2015 10:30
    Freitag, 16. Januar 2015 10:30

Alle Antworten

  • Hallo, Roland!

    Wenn ich in den Optionen von Excel 2013 die 0-Anzeige ausschalte, dann bezieht sich das nur auf die gerade aktuelle Tabelle, nicht auf die anderen. ActiveWindow ist also ernst gemeint und ich nehme daher an, dass du die Worksheets durchschleifen und dabei jedes einzeln aktivieren und die Eigenschaft setzen musst. Also das hier schleifend: http://msdn.microsoft.com/en-us/library/office/ff839216(v=office.15).aspx

    Geht wahrscheinlich nur, wenn .Visible = True. Probiert habe ich es nicht. Das kannst du ja mit deiner vorhandenen Geschichte schneller.


    cu
    Karl
    ******
    Access FAQ (de/it): http://www.donkarl.com
    Access Lobby: http://www.AccessDevelopers.org

    Donnerstag, 15. Januar 2015 12:48
  • Danke Karl, das hat weitergeholfen. Zwar nicht direkt, aber dadurch bin ich dann auf die Lösung gekommen.

    Das .Aktivate brauche ich nicht, vielmehr muss ich mein Excel-Objekt explizit ansprechen (Eigentlich logisch)

    objxl.ActiveWindow.DisplayZeros = False

    Ich bin es halt gewohnt, diese Prefixes vom Makrorecorder (Selection, Activesheet etc. Rauszuschmeissen und durch direkte Zuweisungen zu ersetzen.

    See You, Karl

    Roland


    It's no problem, it's just the syntax

    • Als Antwort markiert Roland Grothe Freitag, 16. Januar 2015 10:30
    Freitag, 16. Januar 2015 10:30