Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1220to1224
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

Bestimmte Bereiche per Computer ID sichbar machen

Bestimmte Bereiche per Computer ID sichbar machen
Erich
Hallo Zusammen,
ich hoffe ihr könnt mir bei meinem Problem helfen. Ich bin dabei eine Personalurlaubsübersicht über mehrere Betriebe zu erstellen. Aus Datenschutzgründen, darf Betrieb A nicht wissen wann Betrieb B oder C Urlaub hat.
Allerdings dürfen die Personalbeauftragten und ihre Chefs die Liste komplett sehen.
Nun ist meine Frage, kann man eine VBA Lösung erstellen, indem man die ComputerID ausließt und danach Bistimmte bereiche versteckt/blockiert? Als weiteren Schritt wäre da noch, dass die Tabelle nur in unserem Werk sichbar wäre. (alle Computer im Netzwerk fangen mit der gleichen ID (z.b. Computer0001001 an, d.h. wenn jemand die Datei kopiert und sie zuhause auf dem Rechner öffnen will geht dies nicht!)
Ich hoffe Ihr könnt mir helfen, habe mich zwar schon versucht aber ich schaffe es nicht einmal eine IF - Anweisung zu schreiben, indem der Rechner mit der ausgelesenen ComputerID arbeitet. Habe versucht einem Buchstaben den Environ("COMPUTERNAME") befehl zu übergeben, aber irgendwie klappt dies nicht.
Kann man mit der ausgelesenen ComputerID überhaupt arbeiten?
Vielen dank für eure Unterstützung!
Gruß
Erich
AW: Bestimmte Bereiche per Computer ID sichbar machen
04.07.2011 13:36:58
Rudi
Hallo,
d.h. wenn jemand die Datei kopiert und sie zuhause auf dem Rechner öffnen will geht dies nicht!
Was soll mich hindern, meinen PC zu Hause Computer 0001001 zu nennen?
Außerdem: In Excel ist nichts sicher. Das zerleg ich dir in 2 Minuten.
Gruß
Rudi
AW: Bestimmte Bereiche per Computer ID sichbar machen
04.07.2011 13:42:24
Erich
Hallo Rudi,
mir ist schon klar, dass wenn einer seinen Rechner zuhause so nennt, kann er in die Datei schauen, aber soviele Computercracks gibts in den Betrieben nicht! Der VBA-Code soll natürlich geschützt sein, sodass man so schnell nicht an die Bedingung (Computername) bzw. ComputerID, Quellcode kommt. Ich soll quasi der einzige sein, der weiss wie einfach man Zuhause die Datei öffnen kann. Die meisten werden das nicht schaffen. Sicher ist das nicht, aber ausreichend!
Gruß Erich
Anzeige
AW: Bestimmte Bereiche per Computer ID sichbar machen
04.07.2011 14:10:05
Rudi
Hallo,
mal als Ansatz.
In DieseArbeitsmappe:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim i As Integer
For i = 2 To Worksheets.Count
'alle Blätter außer Blatt 1 ausblenden
Sheets(i).Visible = xlSheetVeryHidden
Next i
End Sub

Private Sub Workbook_Open()
Dim strComputer As String, wks As Worksheet
strComputer = LCase(Environ("Computername"))
Select Case strComputer
Case "computer0001001", "computer0001002" ' du und der Chef
For Each wks In Worksheets
wks.Visible = xlSheetVisible
Next
Case "computer1001003"  'Werk A
Sheets("werk a").Visible = xlSheetVisible
'usw
End Select
End Sub

Gruß
Rudi
Anzeige
AW: Bestimmte Bereiche per Computer ID sichbar machen
04.07.2011 15:29:16
Erich
Hallo Rudi,
danke für den Ansatz, leider funktioniert er nicht. Ich habe schonmal eine Abfrage mit IF versucht, allerdings erkennt die IF-Anweisung nicht die ComputerID oder da stimmt was nicht! Kann/muss man mit der ComputerID und Jockern (* oder ?) arbeiten ? Wollte keine Tabellenblätter ausgeblendet haben, sondern Reihen, konntest du nicht wissen. Lade mal eine Beispieldatei hoch.....ohne das Makro.
Ich habe versucht eine IF-Anweisung zu erstellen; wenn meine ComputerID erkannt wird, soll ne MsgBox aufgehen. Selbst das funktioniert nicht!
Aber schon jetzt vielen Dank für die Mühen!
Hier die Datei!
https://www.herber.de/bbs/user/75585.xls
Gruß
Erich
Anzeige
AW: Bestimmte Bereiche per Computer ID sichbar machen
04.07.2011 16:40:32
Rudi
Hallo,
versuchs mal so:
Private Sub Workbook_BeforeClose(Cancel As Boolean)
With Sheets(1)
.Unprotect "Passwort"
.Range(.Cells(6, 1), .Cells(Rows.Count, 1).End(xlUp)).EntireRow.Hidden = True
.Protect "Passwort"
End With
Save
End Sub

Private Sub Workbook_Open()
Dim rngVisible As Range, rngC, strBetrieb
Select Case LCase(Environ("Computername"))
Case "computer0001001", "computer0001002"
'alle sichtbar
Case "computer0001003"
strBetrieb = "Betrieb A"
Case "computer0001004"
strBetrieb = "Betrieb B"
Case "computer0001005"
strBetrieb = "Betrieb C"
Case Else
ThisWorkbook.Close False  'nicht zugelassener Computer
End Select
If strBetrieb  "" Then
With Sheets(1)
.Unprotect "Passwort"
For Each rngC In .Columns(1).SpecialCells(xlCellTypeConstants)
If rngC = strBetrieb Then
If rngVisible Is Nothing Then
Set rngVisible = rngC
Else
Set rngVisible = Union(rngVisible, rngC)
End If
End If
Next
End With
Else
With Sheets(1)
Set rngVisible = .Columns(1)
End With
End If
If Not rngVisible Is Nothing Then
Sheets(1).Unprotect "Passwort"
rngVisible.EntireRow.Hidden = False
End If
Sheets(1).Protect "Passwort"
End Sub

Gruß
Rudi
Anzeige
AW: Bestimmte Bereiche per Computer ID sichbar machen
05.07.2011 10:35:46
Erich
Hallo Rudi,
super genial, weiß zwar immer noch nicht, warum das nun mit der ComputerID auf einmal geht aber es funktioniert gut.
Wie Ändere ich den Code ab um auf allen Werksrechnern (ComputerID fängt immer mit wks+8stellige nr an) alles Sichtbar zu machen, bei den eingetragenen (für die einzelnen Betriebe) sollen nur die bestimmten Betriebsbereiche eingeblendet werden (das klappt schon sehr gut) und Privatrechnern komplette ausgeblendet werden.
(Sobald ich die falsche ComputerID vorgebe zeigt mir Excel nichts an, dass ist auch richtig, es soll mir allerdings was anzeigen, wenn die ersten 3 Buchstaben der ComputerID mit "wks" beginnen.)
  • Select Case LCase(Environ("Computername"))
    Case "wks00100887", "computer0001002"
    'alle sichtbar hier sollten alle sichtbar sein, bei denen die ComputeID mit wks anfängt
    Case "wks00100887"
    strBetrieb = "Betrieb A"
    Case "wks00100675"
    strBetrieb = "Betrieb B"
    Case "computer0001005"
    strBetrieb = "Betrieb C"
    Case Else
    ThisWorkbook.Close False 'nicht zugelassener Computer
    End Select

  • Bis jetzt schon ein super Job, den du da gemacht hast. Wie immer ein tolles Forum, wenn man mal schnell Hilfe benötigt. DANKE Rudi!
    Gruß
    Erich
    Anzeige
    AW: Bestimmte Bereiche per Computer ID sichbar machen
    05.07.2011 10:48:29
    Rudi
    Hallo,
    so?
      If Left(Environ("Computername"), 3) = "wks" Then
    Select Case LCase(Environ("Computername"))
    Case "wks00100887"
    strBetrieb = "Betrieb A"
    Case "wks00100675"
    strBetrieb = "Betrieb B"
    Case "computer0001005"
    strBetrieb = "Betrieb C"
    End Select
    Else
    ThisWorkbook.Close False 'nicht zugelassener Computer
    End If
    

    Gruß
    Rudi
    AW: Bestimmte Bereiche per Computer ID sichbar machen
    05.07.2011 11:02:29
    Erich
    Hallo Rudi,
    funktioniert leider nicht! Habe meine ComputerID eingetragen (wks00100887) egal wo ich sie eintrage für (alle sichtbar) oder nur für den Betreibsbereich Excel zeigt nichts mehr an! Komplette Sheet ist visible=false!
    Woran kanns liegen?
    Gruß
    Erich
    Anzeige
    AW: Bestimmte Bereiche per Computer ID sichbar machen
    05.07.2011 11:49:15
    Rudi
    Hallo,
    egal wo ich sie eintrage für (alle sichtbar)
    alle sichbar musst du nirgends eintragen.
    Auf Deutsch: Für wks* sind grundsätzlich alle Daten sichtbar, es sei denn, sie ist explizit einem Betrieb zugeordnet. Beginnt die Nummer nicht mit wks, wird die Datei geschlossen.
    Gruß
    Rudi
    AW: Bestimmte Bereiche per Computer ID sichbar machen
    05.07.2011 12:04:51
    Erich
    Hi Rudi,
    richtig, allerdings fängt meine ComputerID mit wks an, trotzdem wird geschlossen! Muss da noch mehr als nur "wks" stehen evtl. "wks*" ?
    Wie du es beschreiben hast, so soll es mal funktionieren, geht aber leider nicht!
    Sorry, gruß und Danke
    Erich
    AW: Bestimmte Bereiche per Computer ID sichbar machen
    05.07.2011 14:57:52
    Rudi
    Hallo,
    wahrscheinlich Groß-/ Kleinschreibung.
      If LCase(Left(Environ("Computername"), 3)) = "wks" Then
    ....
    

    Gruß
    Rudi
    Anzeige
    AW: Bestimmte Bereiche per Computer ID sichbar machen
    06.07.2011 08:34:52
    Erich
    Hallo Rudi,
    ich lass (leider) nicht locker. Nun kommt immer die Meldung:
    "Fehler beim Kompilieren, End IF ohne IF-Block"!
    Versteh ich nicht, EndIF steht doch unter dem Block, die IF-Anweisung sollte doch damit abgeschlossen sein!?!
    Kannst du dir bitte den VBA-Code nochmal anschauen!
    Private Sub Workbook_Open()
    Dim rngVisible As Range, rngC, strBetrieb
    If LCase(Left(Environ("Computername"), 3)) = "wks" Then Select Case LCase(Environ(" _
    Computername"))
    Case "cwks00100887"
    strBetrieb = "Betrieb A"
    Case "cwks00100675"
    strBetrieb = "Betrieb B"
    Case "wks0001008871"
    strBetrieb = "Betrieb C"
    End Select
    Else
    MsgBox ("Sie sind nicht berechtigt!"), vbOKOnly
    ThisWorkbook.Close False 'nicht zugelassener Computer
    End If
    
    Gruß
    Erich
    Anzeige
    AW: Bestimmte Bereiche per Computer ID sichbar machen
    06.07.2011 08:53:31
    Rudi
    Hallo,
    da fehlt ein Zeilenumbruch.
    If LCase(Left(Environ("Computername"), 3)) = "wks" Then
    Select Case LCase(Environ("Computername"))
    Case "cwks00100887"
    strBetrieb = "Betrieb A"
    .....
    
    Gruß
    Rudi
    AW: Bestimmte Bereiche per Computer ID sichbar machen
    06.07.2011 09:01:50
    Erich
    JAAAAAAAAAAAAA
    Das wars, funktioniert! Nun noch ein bisschen rumpfeilen und das Ding ist erledigt!
    Vielen DANK!
    Gruß
    Erich
    ein bisschen rumpfeilen
    06.07.2011 09:32:32
    Rudi
    Hallo,
    ich benutze dazu eine Feile, keinen Pfeil. ;-)
    Gruß
    Rudi
    AW: ein bisschen rumpfeilen
    06.07.2011 12:12:24
    Erich
    Recht haste!
    Habe zu viel mit Dartpfeilen gespielt!
    Gruß
    Erich
    AW: ein bisschen rumpfeilen
    06.07.2011 12:12:29
    Erich
    Recht haste!
    Habe zu viel mit Dartpfeilen gespielt!
    Gruß
    Erich
    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige