VBA mit Case-Anweisung

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: VBA mit Case-Anweisung
von: WalterK
Geschrieben am: 30.07.2015 14:57:20

Hallo,
den folgenden Code habe ich in der Recherche gefunden. Damit kann der Zugriff auf die Blätter gesteuert werden. Mein UserName bei meinem PC lautet: User
Den Namen User habe ich auch bei der ersten Case-Anweisung eingegeben. Trotzdem wird die erste Case-Anweisung immer übersprungen. Was mache ich falsch?

Sub Test()
'Private Sub Workbook_Open()
  Dim strUser As String, wks As Worksheet
  With Application
    .EnableCancelKey = False
    .ScreenUpdating = False
  End With
  strUser = Environ("Username")
  MsgBox strUser 'die MsgBox gibt bei meinem PC den Namen "User" aus (ohne die Anfü _
hrungszeichen)
  On Error GoTo ERRHANDLER
  Select Case LCase(strUser)
    Case "User"
      For Each wks In Worksheets
        wks.Visible = True
      Next
    Case Else
      Worksheets("Tabelle1").Visible = True
  End Select
  Sheets("NoMacro").Visible = 2
ERRHANDLER:
  Application.EnableCancelKey = True
  If Err.Number Then
    MsgBox "Kein Zugriff erlaubt!", , "Berechtigungsprüfung"
    Me.Close
  End If
End Sub
Besten Dank für die Hilfe, Servus Walter

Bild

Betrifft: Case "User"? oder Case "user" ... owT
von: Matthias L
Geschrieben am: 30.07.2015 15:01:27


Bild

Betrifft: AW: Case "User"? oder Case "user" ... owT
von: WalterK
Geschrieben am: 30.07.2015 15:16:41
Hallo Matthias,
Volltreffer!
Aber wieso ist das so. In der MsgBox lautet der UserName: User
Muss in der Case-Anweisung alles klein geschrieben werden?
Besten Dank jedenfalls, Servus Walter

Bild

Betrifft: AW: Case "User"? oder Case "user" ... owT
von: Bertram
Geschrieben am: 30.07.2015 15:19:01
Hallo Walter,
das liegt an dem LCase. Das macht aus "User" "user".
Gruß
Bertram

Bild

Betrifft: Besten Dank für die Info, Bertram. Servus, Walter
von: WalterK
Geschrieben am: 30.07.2015 18:11:24


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Range und String= Laufzeitfehler"