Tag Archives: Visible

Wenn du mich mit deinem Auto beeindrucken willst, sollte es ein Eiswagen sein.

Hallo Herr Martin,

ich hoffe, Sue haben / hatten ein erholsames Wochenende.

Ich habe an meiner Prozesslandkarte weitergebastelt. Hierzu möchte ich den Abonnenten der Prozesslandkarte einen vereinfachten Interviewfragebogen zur Verfügung stellen. Diesen möchte ich gerne mit meinem Namen und / oder Logo versehen. Dieses soll für Nicht-Excel-Profis nicht löschbar sein. Also: Ich möchte ein Copyright Vermerk der nicht einfach herausgelöscht werden kann.

Hallo Herr H.,

Tippen Sie in eine beliebigen Zelle

=copyright

Achtung: OHNE KLAMMER!

Dann erscheint Ihr Name. DAS findet keiner wohin ich das versteckt habe.

Möchten Sie so etwas?

Und: was bekomme ich, wenn ich Ihnen verrate, wie ich das in diese Datei reinbekommen habe (und Sie es wieder rausbekommen)?

Hallo Herr Martin,

das ist ja cool!

Ich weiß schon, warum ich das mit Ihnen mache!

Aber jetzt mal raus mit der Sprache …. Wie geht das?

Hallo Herr Hämmerle,

kennen Sie Namen in Excel? Über den Namensmanager in der Registerkarte Formeln oder über das Namensfeld neben der Bearbeitungsleiste kann man einen Namen sehen und erstellen.

Über ein kleines Makro kann man einen unsichtbaren Namen definieren:

Sub MacheCopyright()

    ThisWorkbook.Names.Add Name:="copyright", RefersTo:="compurem Consulting", Visible:=False

End Sub

Über ein Makro (und nur ein Makro) kann man es wieder löschen.

Beim Speichern der Datei fragt Excel, ob Sie die Makros speichern wollen – die Antwort lautet: NEIN!

Hallo Herr Martin,

ich habe das Copyright-Makro in einem anderen Excel genutzt – klappt prima!

Nach meinem Tod werde ich wahrscheinlich sehr beschäftigt sein. Die Liste der Menschen, die ich dann heimsuchen werde, wird immer länger.

Vor Kurzem hatte den Fehler schon einmal.

Die Methode ‚Visible‘ für das Objekt ‚_Worksheet‘ ist fehlgeschlagen.

Ich wollte per VBA ein Blatt ausblenden. Damals war die Ursache, dass dieses auszublendende Blatt das einzige war – DAS geht nicht. Eine Exceldatei benötigt immer mindestens ein sichtbares Tabellenblatt.

Nun erhalte ich die Fehlermeldung erneut.

Die Ursache diesmal: Die Arbeitsmappe ist geschützt (Überprüfen / Arbeitsmappe schützen).

Früher ging ich mit einer DM zum Kiosk und kam mit zwei Heften, drei Kaugummis, einer Tüte Chips und einem Eis zurück. Und heute? Überall Überwachungskameras!

Einfach nicht aufgepasst!

Mein VBA-Programm liefert eine „merkwürdige“ Fehlermeldung. Warum kann ein Tabellenblatt nicht ausgeblendet werden?

Die Ursache ist schnell gefunden – es gibt nur ein Tabellenblatt – und dieses ein darf ich natürlich nicht ausblenden … Also schnell überprüft, wie viele Blätter sichtbar (xlSheetVisible) sind.

Für [wahre] Freunde geh ich durch die Hölle… den [anderen] zeig ich gern den Weg dorthin.

Gerade mit Andreas Thehos diskutiert (danke für den Hinweis – Andreas!):

Ich trage in A1 eine Zahl ein. Ich nenne diese Zelle MWSt. Ich trage in D1 einen anderen Wert ein und nenne diese Zelle redMWSt.

Ich lasse folgendes Makro über das Dokument laufen:

ActiveWorkbook.Names(„MWSt“).Visible = False

Damit taucht der Name „MWSt“ nicht mehr in der Liste der Namen (im Namensfeld oder im Namensmanager) auf.

Man kann allerdings damit arbeiten:

=500*MWSt

Ganz blöde: der Inquire übergeht auch den ausgeblendeten Namen:

Erzähle nicht, wie Du warst, sondern zeige, wie Du jetzt bist.

Wie oft muss ich es noch sagen: Programmiert sauber!

In einer Firma lief unter Excel 2007 ein Programm mit folgendem Code:

Dim BlattName

Sheets(„Diagramme“).Visible = True
Sheets(„nocheins“).Visible = True

BlattName = ActiveSheet.Name

Abgesehen davon dass die Variable „BlattName“ nicht sauber von Typ As String deklariert wurde, dass die Eigenschaft Visible eigentlich den Wert der Konstanten xlSheetVisible erhalten sollte und nicht True (True ist 1; xlSheetVisible ist -1) läuft es unter Excel 2016 an die Wand. Der Grund:

Nach Sheets(„Diagramme“).Visible = True ist der Fokus noch auf dem Blatt von dem aus der Code gestartet wurde. Werden jedoch zwei Blätter eingeblendet, wechselt Excel in der Version 2016 nun auf eines der eingeblendeten Blätter. Der Blattname lautet nun nicht mehr wird das ursprünglich aktive Blatt, sondern wie eines der Blätter, die zuvor ausgeblendet waren.

Das kann man gut mit einem Meldungsfenster verifizieren:

Sheets(„Diagramme“).Visible = True
Sheets(„nocheins“).Visible = True

BlattName = ActiveSheet.Name

MsgBox BlattName

Sauber programmieren heißt beispielsweise:

Dim BlattName As String
Dim xlBlattDiagramme As Worksheet
Dim xlBlattNochEins As Worksheet
Dim xlBlattAktual As Worksheet

Set xlBlattAktual = ActiveSheet
Set xlBlattDiagramme = Sheets(„Diagramme“)
Set xlBlattNochEins = Sheets(„nocheins“)

xlBlattDiagramme.Visible = xlSheetVisible
xlBlattNochEins.Visible = xlSheetVisible

BlattName = xlBlattAktual.Name
‚ wird eigentlich nicht mehr benötigt

MsgBox BlattName

 

Vorhin war’s noch da

Ich schaue mir eine fremde Datei an. Auf einem Tabellenblatt befindet sich ein Diagramm. Ich versuche herauszufinden, woher es die Daten bezieht. Die Quelle liegt auf einem anderen Blatt. Ich will zurück zu dem Blatt „Diagramm“ – doch das ist verschwunden.

Ich brauche schon eine Weile, bis ich dahiner komme:

In VBA befindet sich im Objekt Worksheet beim Ergebnis Deactivate folgender Befehl:

Private Sub Worksheet_Deactivate()
Sheets(„Diagramm“).Visible = xlSheetHidden
End Sub

Interessanter Mechanismus: Lieber Anwender, sobald du das Blatt verlässt, bekommst du es nicht mehr zu Gesicht. Natürlich kann man es sich über eine Schaltfläche wieder einblenden lassen …

Ich kann allem widerstehen – außer der Versuchung. [Oscar Wilde]

Was ist denn nun schon wieder los? Ich möchte eigentlich nur mit dem Befehl Copy ein Blatt in eine andere Datei kopieren:

20170126Kopieren02

Die Antwort finden Sie, wenn Sie genau hinschauen. Das zu kopierende Blatt („YTD“) ist xlSheetVeryHidden. Sie müssen die Eigenschaft Visible entweder auf xlSheetVisible oder auf xlSheetHidden stellen. Danach können Sie ihn ja wieder „sehr gut verstecken“.

Die Ursache

Die Ursache