Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

TB ausblenden, wenn Bedingung zutrifft

TB ausblenden, wenn Bedingung zutrifft
05.10.2008 20:57:00
Josef_T
Guten Abend zusammen.
Mit unten stehenden Makros möchte ich festlegen, dass bestimmte Programme, nur auf dem Rechner dessen Name "Verwaltung" ist, ausgeführt werden können. Funktioniert auch alles.
Meine Frage:
Das TB "Dummy" soll sich automatisch ausblenden, wenn der Computername "Verwaltung" ist. Geht das überhaupt? wenn ja, kann mir dann bitte jemand bei der Lösung helfen?
Option Explicit
Dim wks As Worksheet

Private Sub Workbook_BeforeClose(Cancel As Boolean)
For Each wks In Worksheets
If wks.Name  "Dummy" Then wks.Visible = xlSheetVeryHidden
Next
End Sub



Private Sub Workbook_Open()
If VBA.Environ("Computername")  "Verwaltung" Then ThisWorkbook.Close False
For Each wks In Worksheets
wks.Visible = xlSheetVisible
Next
End Sub


Besten Dank schon mal
Grüsse
Josef

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: TB ausblenden, wenn Bedingung zutrifft
05.10.2008 21:08:08
Matthias
Hallo
Mach es anders herum:
Blende das Blatt "Dummy" standardmäßig aus und blende es nur ein, wenn der ComputerName nicht "Verwaltung" ist.
Denn wenn Du beim Start des Workbooks Makros deaktivierst, ist es ja sichtbar (was Du anscheinend nicht wiillst)
Gruß Matthias
AW: TB ausblenden, wenn Bedingung zutrifft
05.10.2008 22:33:44
Josef_T
Hallo Matthias,
Danke für Deine Anregung. Tino hat mein Problem gelöst.
Gute Nacht
Josef
AW: TB ausblenden, wenn Bedingung zutrifft
05.10.2008 21:15:00
Sylvio
Hallo Josef,
meintest Du das so?

Sub test()
If VBA.Environ("Computername")  "Verwaltung" Then
For Each wks In Worksheets
If wks.Name = "Dummy" Then
wks.Visible = True
Else
wks.Visible = True
End If
Next
Else
For Each wks In Worksheets
If wks.Name = "Dummy" Then
wks.Visible = False
Else
wks.Visible = True
End If
Next
End If
End Sub


Gruß Sylvio

Anzeige
AW: TB ausblenden, wenn Bedingung zutrifft
05.10.2008 22:38:04
Josef_T
Hallo Sylvio.
Danke auch Dir für Deine Arbeit, aber Tino hat mein Problem komplett gelöst.
Danke nochmal und Gute Nacht
Josef
eine Version
05.10.2008 21:21:12
Tino
Hallo,
teste mal diese Version.
Microsoft Excel Objekt DieseArbeitsmappe
Option Explicit 
 
Dim wks As Worksheet 
 
Private Sub Workbook_BeforeClose(Cancel As Boolean) 
Screen False 
With ThisWorkbook 
 .Sheets("Dummy").Visible = True 
    For Each wks In .Worksheets 
        If wks.Name <> "Dummy" Then 
         wks.Visible = xlVeryHidden 
        End If 
    Next 
 .Save 
End With 
Screen 
End Sub 
 
Private Sub Workbook_Open() 
    If VBA.Environ("Computername") <> "Verwaltung" Then 
     ThisWorkbook.Close False 
    End If 
Screen False 
With ThisWorkbook 
    For Each wks In .Worksheets 
        If wks.Name <> "Dummy" Then 
         wks.Visible = True 
        End If 
    Next 
  .Sheets("Dummy").Visible = xlVeryHidden 
End With 
Screen 
End Sub 
Private Sub Screen(Optional Zustand As Boolean = True) 
'Bildschirmaktualisierung 
Application.ScreenUpdating = Zustand 
'ESC Taste abfangen 
Application.EnableCancelKey = IIf(Zustand = True, 1, 0) 
End Sub 
 
 
 


Gruß Tino

www.VBA-Excel.de


Anzeige
AW: eine Version
05.10.2008 22:02:00
Tino
Hallo,
hier eine etwas besser ausgearbeitete Version.
Microsoft Excel Objekt DieseArbeitsmappe
Option Explicit 
 
Dim wks As Worksheet 
 
Private Sub Workbook_BeforeClose(Cancel As Boolean) 
Screen False 
With ThisWorkbook 
 .Sheets("Dummy").Visible = True 
    For Each wks In .Worksheets 
        If wks.Name <> "Dummy" Then 
         wks.Visible = xlVeryHidden 
        End If 
    Next 
 .Save 
End With 
Screen 
End Sub 
 
Private Sub Workbook_Open() 
 Screen False 
    If VBA.Environ("Computername") <> "Verwaltung" Then 
     If Workbooks.Count = 1 Then 
      Application.Quit 
     Else 
      ThisWorkbook.Close False 
     End If 
     Exit Sub 
    End If 
 
With ThisWorkbook 
    For Each wks In .Worksheets 
        If wks.Name <> "Dummy" Then 
         wks.Visible = True 
        End If 
    Next 
  .Sheets("Dummy").Visible = xlVeryHidden 
End With 
Screen 
End Sub 
Private Sub Screen(Optional Zustand As Boolean = True) 
'ESC Taste abfangen 
Application.EnableCancelKey = IIf(Zustand = True, 1, 0) 
'Events Aus 
Application.EnableEvents = Zustand 
'Bildschirmaktualisierung 
Application.ScreenUpdating = Zustand 
End Sub 
 


Gruß Tino

Anzeige
AW: eine Version
05.10.2008 22:30:31
Josef_T
Hallo Tino.
Danke erstmal für Deine Arbeit. Habe die "etwas bessere Version" eingebaut und habe das Ergebnis gefeiert!
Tino, Deine Version 2 arbeitet genau so wie ich es mir vorgestellt habe. Der absulute Knaller ist, dass sich das Programm sofort schliesst wenn der Computername nicht stimmt. Super!
Danke nochmal und Gute Nacht
Josef

306 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige