Office: VBA Code .Visible

Helfe beim Thema VBA Code .Visible in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo Leute, ich habe folgenden Code, der eingentlich bewirken soll dass wenn VBA nicht aktiviert ist, nur das erste Tabellenblatt angezeigt werden... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von McCallion, 2. April 2012.

  1. McCallion Erfahrener User

    VBA Code .Visible


    Hallo Leute,

    ich habe folgenden Code, der eingentlich bewirken soll dass wenn VBA nicht aktiviert ist, nur das erste Tabellenblatt angezeigt werden soll. Dies ist das Tabellenblatt 4 (Willkommen)

    Ist VBA aktiviert, sollen alle Blätter, außer dem Tabellenblatt 4 angezeigt werden.

    So weit so gut, nun ist es aber so, dass wenn VBA nicht aktivert ist, mir die Blätter 11 und 12 angezeigt werden. Aktiviere ich VBA werden mir alle Blätter außer dem vierten angezeigt.

    Unter Microsoft Excel Objekt
    --> Diese Arbeitsmappe Sind die Tabellenblätter in folgender Reihenfolge und folgendermaßen benannt:
    Tabelle1 (Vorgabe)
    Tabelle10 (Juni 06)
    Tabelle11 (September 09)
    Tabelle12 (Oktober 10)
    Tabelle13 (November 11)
    Tablelle14 (Dezember 12)
    Tablelle2 (Januar 01)
    Tabelle3 (Februar 02)
    Tabelle4 (Wilkommen)
    Tabelle5 (März 03)
    Tabelle6 April 04)
    Tabelle7 (Juli 07)
    Tabelle8 (August 08)
    Tabelle9 (Mai 05)

    Nun habe ich folgenden Code:

    Code:
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Sheets(1).Visible = False
    Sheets(2).Visible = False
    Sheets(3).Visible = False
    Sheets(4).Visible = True
    Sheets(5).Visible = False
    Sheets(6).Visible = False
    Sheets(7).Visible = False
    Sheets(8).Visible = False
    Sheets(9).Visible = False
    Sheets(10).Visible = False
    Sheets(11).Visible = False
    Sheets(12).Visible = False
    Sheets(13).Visible = False
    Sheets(14).Visible = False
     
    End Sub
     
    Private Sub Workbook_Open()
    Sheets(2).Visible = True
    Sheets(3).Visible = True
    Sheets(4).Visible = False
    Sheets(5).Visible = True
    Sheets(6).Visible = True
    Sheets(7).Visible = True
    Sheets(8).Visible = True
    Sheets(9).Visible = True
    Sheets(10).Visible = True
    Sheets(11).Visible = True
    Sheets(12).Visible = True
    Sheets(13).Visible = True
    Sheets(14).Visible = True
    Sheets(1).Visible = True
     
    
    Dim BerechtigteUser()
    BerechtigteUser = Array("Chef", "Dominik")
     
    If Not IsError(Application.Match(Environ("Username"), BerechtigteUser, 0)) Then
    MsgBox "Du bist berechtigt - viel Spaß wünscht Dominik Schneider!"
    Else
    MsgBox "Du bist nicht berechtigt, die Datei zu öffnen. Bitte wende dich an [EMAIL="Info@Fairotica.de"]Info@Fairotica.de[/EMAIL] - Mappe wird geschlossen !", , "ALARM !"
    ThisWorkbook.Close False 'Mappe ohne Änderungen speichern
    End If
    End Sub
    
    
     
    McCallion, 2. April 2012
    #1
  2. fette Elfe Erfahrener User
    Hallo McCallion,

    die Blätter bis auf eines zu verstecken bevor die Datei geschlossen wird ist ja schon ein sinnvoller Ansatz,
    aber ohne sie danach auch noch zu speichern recht sinnlos.
    Ich würde nach den ganzen "Sheets().visible" noch ein "ThisWorkbook.save" setzen.

    Ist natürlich die Frage ob das wirklich gewollt ist, denn so hast Du sobald die Makros aktiviert sind nie die Chance die Mappe ohne Speicherung zu schließen, falls Du bei der Bearbeitung mal großen Murks gebaut hast und den letzten Speicherzustand neu öffnen möchtest.
     
    fette Elfe, 2. April 2012
    #2
  3. miriki Erfahrener User
    Kleiner Tip noch:

    Blende zuerst alle Blätter ein, erst dann die anderen aus. Das vermeidet ein kleines Problem: Wenn Du versuchst, ein Blatt auszublenden, das als einziges noch sichtbar ist, dann gibt's einen Fehler.

    In Deinem Beispiel müßte also sheets(4) zuerst eingeblendet werden, danach können die anderen ausgeblendet werden.

    Eine kleine Optimierung Deiner Routine vielleicht noch:

    Code:
    sheets(4).visible = true
    for n = 1 to sheets(count)
        if (n = 4) then
            sheets(n).visible = true
          else
            sheets(n).visible = false
        endif
    next n
    läßt sich erweitern mit z.B. "if ... or (n=7) or (n=10) ..."

    oder alternativ, vielleicht etwas leichter anzupassen bei Erweiterungen:

    Code:
    sheets(4).visible = true
    for n = 1 to sheets(count)
        select case n
            case 4: sheets(n).visible = true
            case else: sheets(n).visible = false
        end select
    next n
    läßt sich erweitern mit z.B. "case 4, 7, 10: ..."

    (Die erste Zeile jeweils dient nur dazu, sicherzustellen, daß mindestens ein Blatt sichtbar ist.)

    Außerdem wäre statt "false" ev. ein "xlveryhidden" eine gute Alternative. Dann kann der Anwender das Blatt auch nicht mehr selbst einblenden (Menü: Format - Blatt > - Einblenden...).

    Gruß, Michael
     
    miriki, 3. April 2012
    #3
Thema:

VBA Code .Visible

Die Seite wird geladen...
  1. VBA Code .Visible - Similar Threads - VBA Code Visible

  2. Per Hyperlink ausgeblendetes Blatt einblenden

    in Microsoft Excel Hilfe
    Per Hyperlink ausgeblendetes Blatt einblenden: Hola ins Forum, ich bräuchte mal wieder eure Hilfe. Ich habe ein Tabellenblatt das mir als Register dient und wo Hyperlinks eingefügt sind um auf das dazugehörige Blatt zu springen. Diese Blätter...
  3. VBA Code für Zeilen ausblenden einblenden mit JA/Nein

    in Microsoft Excel Hilfe
    VBA Code für Zeilen ausblenden einblenden mit JA/Nein: Hallo, habe eine Exceltabelle, bei der ich bei einer Zelle eine Ja/Nein abfrage mache, wenn in der Zelle Nein steht, dann soll ein bestimmter Zeilenbereich, den ich definieren möchte, ausgeblendet...
  4. VBA Code ohne ergebnis

    in Microsoft Excel Hilfe
    VBA Code ohne ergebnis: Hallo, ich habe einen VBA Code der in meiner Tabelle nicht funktioniert. Kann mir vielleicht jemand bei der Korrektur ggf. weiter helfen? Danke und Gruß Private Sub Worksheet_Change(ByVal Target...
  5. VBA Code Anpassen "Wert Einfügen statt Formel"

    in Microsoft Excel Hilfe
    VBA Code Anpassen "Wert Einfügen statt Formel": Hallo alle zusammen. Ich benötige bitte Hilfe von einem Experten, da ich mit meinem Code unzufrieden bin und dieser bei größeren Datenmengen respektive Zeilen ziemlich langsam wird. Wie müsste man...
  6. Excel VBA - Code Hilfe (Spalten, Werte kopieren etc.)

    in Microsoft Excel Hilfe
    Excel VBA - Code Hilfe (Spalten, Werte kopieren etc.): Hallo, ich benötige Hilfe für ein Problem, welches ich leider selbst schwerlich als Anfänger nicht lösen kann: Ich möchte von dem Tabellenblatt "Tabelle1" aus den Zellen B8:B14, K8:K14, B18:B25,...
  7. VBA Code " Zeilenhöhe bei Verb. Zellen Funktioniert fasst"

    in Microsoft Excel Hilfe
    VBA Code " Zeilenhöhe bei Verb. Zellen Funktioniert fasst": Hallo Leute dieser Code für Zellenhöhe bei Verbundenen Zellen Funktioniert fast. Ich habe ein Code von jemand anderem bekommen der nicht in einem Forum ist. Ich kann gerade diese Person nicht...
  8. PDF mit Namen,Datum speichern im Zielordner

    in Microsoft Excel Hilfe
    PDF mit Namen,Datum speichern im Zielordner: Hallo, habe das Problem den Namen in Zelle D2, Vorname in Zelle D5 , das Datum steht in der Zelle B 10 und soll beim speichern so angezeigt werden (Max Mustermann 2023 Oktober) wie und wo muß ich...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden