Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1264to1268
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Fehlermeldung bei User-Abgleich

Fehlermeldung bei User-Abgleich
Frank
Hallo,
ich möchte gerne beim Öffnen einer Tabelle unten stehende 3 Möglichkeiten überprüfen und jeweils unterschiedliche Blätter anzeigen.
Die User sind dabei auf Blatt1 hinterlegt.
Der aktuelle User wird per Environ in A1 geschrieben, seine Berechtigung in E1.
- Möglichkeit 1: Der User aus A1 ist nicht bekannt, d.h. nicht auf Blatt1 aufgeführt.
-> In diesem Fall soll nur Blatt 6 angezeigt werden und das Sub TimeOut_Msg aufgerufen werden.
- Möglichkeit 2: Der User aus A1 ist auf Blatt1 aufgeführt und ist gem. E1 "Administrator".
-> In diesem Fall sollen alle Blätter bis auf Blatt 6 angezeigt werden und das Sub Disclaimer_Msg aufgerufen werden.
- Möglichkeit 3: Der User aus A1 ist auf Blatt1 aufgeführt und ist gem. E1 "User".
-> In diesem Fall soll nur Blatt 7 angezeigt werden und das Sub Disclaimer_Msg aufgerufen werden.
Ich habe es mit folgendem Code probiert, erhalte dabei jedoch beim Öffnen der Datei folgende Fehlermeldung:
Laufzeitfehler 1004 - Die Select-Methode des Range-Objektes konnte nicht ausgeführt werden.
Hat jemand eine Idee dazu - bin Euch für jeden Tipp riesig dankbar !
Option Explicit
Private Sub Workbook_Open()
Worksheets(1).Range("A1") = Environ("Username")
If Application.CountIf(Sheets(1).Range("A3:A500"), Environ("Username"))  1 Then
Worksheets(1).Visible = xlVeryHidden
Worksheets(2).Visible = xlVeryHidden
Worksheets(3).Visible = xlVeryHidden
Worksheets(4).Visible = xlVeryHidden
Worksheets(5).Visible = xlVeryHidden
Worksheets(7).Visible = xlVeryHidden
Worksheets(6).Visible = True
Worksheets(6).Range("A1").Select
Call TimeOut_Msg
Application.DisplayFullScreen = False
With ActiveWindow
.DisplayHeadings = False
End With
Else
If Worksheets(1).Range("E1") = "Administrator" Then
Worksheets(1).Visible = True
Worksheets(2).Visible = True
Worksheets(3).Visible = True
Worksheets(4).Visible = True
Worksheets(5).Visible = True
Worksheets(6).Visible = False
Worksheets(7).Visible = True
Worksheets(7).Range("E2").Select
Call Disclaimer_Msg
With ActiveWindow
.DisplayHeadings = False
End With
Else
Worksheets(1).Visible = xlVeryHidden
Worksheets(2).Visible = xlVeryHidden
Worksheets(3).Visible = xlVeryHidden
Worksheets(4).Visible = xlVeryHidden
Worksheets(5).Visible = xlVeryHidden
Worksheets(6).Visible = xlVeryHidden
Worksheets(7).Visible = True
Worksheets(7).Range("E2").Select
Call Disclaimer_Msg
With ActiveWindow
.DisplayHeadings = False
End With
End If
End If
End Sub
VG und vielen Dank im Voraus,
Frank

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Fehlermeldung bei User-Abgleich
04.06.2012 05:57:16
Hajo_Zi
Hallo Freank,
der gepostetet Code ist in Ordnung.

AW: Fehlermeldung bei User-Abgleich
04.06.2012 09:43:48
Frank
Hallo Hajo,
vielen Dank für Deine Antwort !
Ich habe mittlerweile die Ursache des Problems gefunden, die Lösung dafür jedoch noch nicht. :-)
Das seltsame ist, wenn ich die Maus in einer Zelle auf Blatt7 platziere (was bei zwei der obigen Möglichkeiten eingeblendet bleibt) und dann speichere, funktioniert alles einwandfrei.
Befindet sich die Maus jedoch beim Speichern auf einem anderen Blatt (z.B. Blatt2), d.h. dieses Blatt ist das aktive beim Speichern, dann erhalte ich beim nächsten Öffnen die Fehlermeldung.
Hast Du eine Idee, woran das liegen kann ?
VG und nochmals danke,
Frank
Anzeige
AW: Fehlermeldung bei User-Abgleich
06.06.2012 01:08:03
fcs
Hallo Frank,
Select-Anweisungen für Objekte eines Tabellenblatts funktionieren nur im aktiven Blatt.
Passe dein Makro so an, dass das Blatt, in dem selektiert werden soll, vorher aktiviert wird oder verwende die Goto-Mehtode.
Gruß
Franz
'Verwende
With Worksheets(6)
.Visible = True
.Activate
.Range("A1").Select
End With
'oder
Worksheets(6).Visible = True
Application.Goto Reference:=Worksheets(6).Range("A1")

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige