Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1256to1260
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

Zwei kleine Fragen

Zwei kleine Fragen
Jenny
Guten Morgen,
ich habe zwei Fragen und hoffe, Ihr könnt mir weiterhelfen? :-)
1) Wie kann ich in einer Tabelle per VBA die Email-Funktion in Excel für alle Blätter deaktivieren - und das ab Öffnen der Datei (Workbook_Open ?) ?
2) Ich lese per Environ den User-Login aus und gleiche diesen mit einer Liste in der gleichen Tabelle (Blatt 1, Zeilen 1201 bis 1399) ab. Gibt es eine Möglichkeit, falls der Login eines Users nicht in dieser Liste steht, das Öffnen der Datei zu verhindern und stattdessen nur eine Message Box anzuzeigen ?
(Es geht mir nur um normale User, dass Profis das evtl. umgehen können wäre erst einmal egal. :-) )
LG und vielen Dank Euch im Voraus,
Jenny

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Zwei kleine Fragen
04.04.2012 10:34:01
hary
Hallo Jenny
Zu 2.
Eine Moeglichkeit waere mit Countif
Bsp.
if worksheetfunction.countif(Username,Bereich)=0 then
msgbox "nicht vorhanden
exit sub
else
Hier Code fuer Zugang
end if
oder mit application.match
gruss hary
AW: Zwei kleine Fragen
04.04.2012 12:22:43
Jenny
Hallo Hary,
vielen Dank dafür ! :-)
Ich würde es gerne mit der CountIf-Funktion probieren, scheitere aber bislang daran, das funktionsfähig in meinen bestehenden Code zu integrieren, da ich hier bereits eine Fallunterscheidung habe.
Es sollte so sein, dass nur für den zweiten Fall, d.h. User "Notebook" der Abgleich mit der User-Liste erfolgt.
Kannst Du mir sagen, wie ich das hier korrekt integriere ?
Private Sub Workbook_Open()
Call Disclaimer
Application.Calculate
Select Case Environ("Username")
Case "Notebook"
Worksheets(1).Visible = True
Worksheets(2).Visible = True
Worksheets(3).Visible = True
Worksheets(4).Visible = True
Application.DisplayFullScreen = False
With ActiveWindow
.DisplayHeadings = False
End With
Worksheets(2).Unprotect "XXX"
Worksheets(2).Range("L5") = Environ("username")
Worksheets(2).Protect UserInterfaceOnly:=True, Password:="XXX"
Case Else
Worksheets(1).Visible = xlVeryHidden
Worksheets(2).Visible = True
Worksheets(3).Visible = xlVeryHidden
Worksheets(4).Visible = xlVeryHidden
Application.DisplayFullScreen = False
Application.DisplayFullScreen = False
With ActiveWindow
.DisplayHeadings = False
End With
Worksheets(2).Unprotect "XXX"
Worksheets(2).Range("L5") = Environ("username")
Worksheets(2).Protect UserInterfaceOnly:=True, Password:="XXX"
End Select
End Sub
LG
Jenny
Anzeige
AW: Zwei kleine Fragen
04.04.2012 12:45:13
Rudi
Hallo,
Case Else
If Application.CountIf(Sheets(1).Range("A1201:A1300"),Environ("Username"))>0 Then
Worksheets(1).Visible = xlVeryHidden
Worksheets(2).Visible = True
Worksheets(3).Visible = xlVeryHidden
Worksheets(4).Visible = xlVeryHidden
Application.DisplayFullScreen = False
Application.DisplayFullScreen = False
With ActiveWindow
.DisplayHeadings = False
End With
Worksheets(2).Unprotect "XXX"
Worksheets(2).Range("L5") = Environ("username")
Worksheets(2).Protect UserInterfaceOnly:=True, Password:="XXX"
Else
Msgbox "Kein Zugriff"
End if
End Select

Gruß
Rudi
Anzeige
AW: Zwei kleine Fragen
04.04.2012 13:34:53
Jenny
Hallo Rudi,
wieder einmal vielen Dank ! :-)
Ich habe es gerade mit einem User getestet, der nicht in der Liste steht.
In diesem Fall erscheint zwar die Message Box wie gewünscht, allerdings bleibt die Tabelle mit den angezeigten Blättern weiterhin geöffnet und kann auch genutzt werden.
Muss ich noch etwas ändern, damit sie in diesem Fall entweder die Blätter gar nicht erst öffnet oder sie sofort wieder schließt ?
LG
Jenny
AW: Zwei kleine Fragen
04.04.2012 14:01:50
Rudi
Hallo,
Msgbox "Kein Zugriff"
Activeworkbook.Close False
Gruß
Rudi
AW: Zwei kleine Fragen
04.04.2012 15:28:18
Jenny
Hallo Rudi,
vielen Dank - damit bin ich nun ein ganzes Stück voran gekommen ! :-)
Der unten stehende Code funktioniert nun soweit gut (die Workbook.Close Zeileergänze ich später).
Einziger Haken ist momentan, dass hier für nicht gelistete User zunächst für ein oder zwei Sekunden das Blatt2 zu sehen ist, bevor dieses verschwindet und statt dessen das korrekte Dummy-Blatt (Blatt5) erscheint.
Ich vermute, das liegt an den einzelnen Rechenschritten, die der Reihe nach abgearbeitet werden ?
Gibt es hier irgendeinen Weg, das zu verhindern, so dass nicht gelistete User wirklich nur Blatt5 und nichts anderes sehen ?
Private Sub Workbook_Open()
Call Disclaimer
Application.Calculate
Select Case Environ("Username")
Case "admin1", "admin2"
Worksheets(1).Visible = True
Worksheets(2).Visible = True
Worksheets(3).Visible = True
Worksheets(4).Visible = True
Worksheets(5).Visible = True
Worksheets(2).Select
Range("E2").Select
Application.DisplayFullScreen = False
With ActiveWindow
.DisplayHeadings = False
End With
Worksheets(2).Unprotect "XXX"
Worksheets(2).Range("L5") = Environ("Username")
Worksheets(2).Protect UserInterfaceOnly:=True, Password:="XXX"
Case Else
If Application.CountIf(Sheets(1).Range("A1201:A1399"), Environ("Username"))  1 Then
Worksheets(1).Visible = xlVeryHidden
Worksheets(2).Visible = xlVeryHidden
Worksheets(3).Visible = xlVeryHidden
Worksheets(4).Visible = xlVeryHidden
Worksheets(5).Visible = True
Worksheets(5).Select
Range("A1").Select
MsgBox "Kein Zugriff"
Else
Worksheets(1).Visible = xlVeryHidden
Worksheets(2).Visible = True
Worksheets(3).Visible = xlVeryHidden
Worksheets(4).Visible = xlVeryHidden
Worksheets(5).Visible = xlVeryHidden
Worksheets(2).Select
Range("E2").Select
Application.DisplayFullScreen = False
Application.DisplayFullScreen = False
With ActiveWindow
.DisplayHeadings = False
End With
Worksheets(2).Unprotect "XXX"
Worksheets(2).Range("L5") = Environ("Username")
Worksheets(2).Protect UserInterfaceOnly:=True, Password:="XXX"
End If
End Select
End Sub
LG und nochmals vielen Dank Dir,
Jenny
Anzeige
AW: Zwei kleine Fragen
04.04.2012 15:31:18
Jenny
Hallo Rudi,
das hat sich erledigt - ich habs selbst rausgefunden. :-)
LG und einen schönen Nachmittag noch,
Jenny
..ist nicht zum ersten mal ;-) owT
04.04.2012 16:10:08
robert
AW: ..ist nicht zum ersten mal ;-) owT
04.04.2012 16:22:30
Jenny
...ich weiss, sorry - bin noch ganz am Anfang mit VBA, aber es geht immer besser... ;-)
LG
AW: ..ist nicht zum ersten mal ;-) owT
04.04.2012 16:56:40
Jenny
Hallo an alle,
da die erste Frage mittlerweile geklärt ist, wollte ich den Thread nur nochmal für die zweite Frage aktivieren:
Suche noch nach einer Lösung, um für diese Tabelle die Email / Senden an-Funktion in Excel zu deaktivieren. :-)
LG und vielen Dank im Voraus,
Jenny

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige