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

Filter

Filter
14.07.2014 11:13:35
Heidi
Hallo zusammen,
Ich habe eine Liste die gefiltert ist. Ich möchte gerne ein Makro haben, wo ich aus einer bestimmten Spalte beim filtern z.B. Protokoll ausblenden oder verstecken kann. Es sollen andere Mitarbeiter nicht danach filtern können.
Vielleicht hat jemand eine Idee :-)
Vielen lieben Dank.
Heidi

21
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Filter
14.07.2014 11:28:51
Nepumuk
Hallo,
ist das eine Spalte oder Zeilen in der Filterliste ?
Gruß
Nepumuk

AW: Filter
14.07.2014 11:43:09
Heidi
Hallo, also du hast spaltenüberschriften in einer davon gibt es die Hinterlegungen spalte Team: Text 1 Text 2 Protokolle und später möchte ich das Filtern nach Protokolle ausschalten. Ich kann leider mein ecxelbeispiel nicht anhängen, da ich zuhause kein excel habe :-(
Morgen könnte ich ein Beispiel schicken.
Dankeschön

AW: Filter
14.07.2014 11:54:18
Nepumuk
Hallo,
also in einer bestimmten Spalte steht in verschiedenen Zeilen Protokolle und die sollen in der Filterliste nicht auftauchen?
Das geht nicht, denn auf diese Liste hast du keinerlei Zugriff, auch nicht mit einem Makro.
Du könntest dem Benutzer aber eine Kopie der Tabelle ohne diese Einträge anbieten, die mit den Einträgen versteckst du.
Gruß
Nepumuk

Anzeige
AW: Filter
15.07.2014 09:11:26
Nepumuk
Hallo,
keine Chance !!!
Aber wie schon geschrieben, du könntest die Liste nach "Projektleiter" filtern, kopieren und in eine andere Tabelle einfügen. Diese Liste kannst du dann dem Benutzer präsentieren und die Tabelle mit der komplette Tabelle ausblenden.
Gruß
Nepumuk

AW: Filter
15.07.2014 09:15:52
Heidi
Hallo,
schade, ich dachte es gibt eine Möglichkeit, da diese Liste für andere Mitarbeiter weiter "filterbar" sein soll. Diese Liste wird ja immer wieder befüllt, ist halt schon kompliziert diese immer wieder zu kopieren und zu versenden.
Dankeschön trotzdem :-)
Gruß
Heidi

Anzeige
AW: Filter
15.07.2014 12:00:02
Nepumuk
Hallo,
wieso versenden? Das Ganze lässt sich problemlos soweit automatisieren dass du festlegen kannst welcher Benutzer die Originalliste sieht und alle anderen nur die just in time erstellte gefilterte Kopie der Liste. Du brauchst nur die Anmeldenamen der uneingeschränkten Nutzer, der Rest ist ein Klacks.
Gruß
Nepumuk

AW: Filter
15.07.2014 12:52:10
Heidi
Hallo,
steh etwas auf dem Schlauch und wie soll das dann funktionieren?
Diese Liste soll z. B. nur für 2 Mitarbeiter voll einsichtbar sein und der Rest
der Kollegen sollten alles sehen können, filtern und bearbeiten, aber nicht die Inhalte unter "Protokolle". Ist das dann nur eine Datei?
Danke :-(
Gruß
Heidi

Anzeige
AW: Filter
15.07.2014 14:32:22
Nepumuk
Hallo,
so läuft das:
Beim Öffnen startet ein Makro welches den Anmeldenamen des Benutzers ausliest. Ist es einer der beiden "privilegierten", wird die Originaltabelle ein- und die eingeschränkte Tabelle ausgeblendet. Ist er einer vom "Rest", dann wird aus der Originalliste der "Projektleiter" rausgefiltert, die gefilterte Liste in die eingeschränkte Tabelle kopiert, die Originaltabelle aus- und die eingeschränkte Tabelle eingeblendet.
In VBA sieht das dann so aus:
Option Explicit

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    If Not Saved Then
        Select Case MsgBox("Sollen Ihre Änderungen in '" & Name & _
                    "' gespeichert werden", vbExclamation Or vbYesNoCancel)
            Case vbYes
                Save
            Case vbNo
                Saved = True
            Case vbCancel
                Cancel = True
        End Select
    End If
    If Not Cancel Then
        Worksheets("Eingeschränkt").Visible = xlSheetVisible
        Worksheets("Original").Visible = xlSheetVeryHidden
    End If
End Sub

Private Sub Workbook_Open()
    Select Case Environ$("USERNAME")
        Case "Heidi", "Max" 'Die privilegierten User
            Worksheets("Eingeschränkt").Visible = xlSheetVeryHidden
            Worksheets("Original").Visible = xlSheetVisible
        Case Else
            With Worksheets("Eingeschränkt")
                .Visible = xlSheetVisible
                .UsedRange.ClearContents
            End With
            With Worksheets("Original").AutoFilter
                .Range.AutoFilter Field:=2, Criteria1:="<>Projektleiter"
                .Range.Copy Destination:=Worksheets("Eingeschränkt").Cells(1, 1)
            End With
            Worksheets("Original").Visible = xlSheetVeryHidden
    End Select
End Sub

Das ist natürlich noch nicht lauffähig, dazu fehlen noch ein paar Informationen, aber das Prinzip sollte deutlich werden.
Gruß
Nepumuk

Anzeige
AW: Filter
16.07.2014 09:20:54
Heidi
Hallo,
das klingt ja gut, jetzt habe ich vertanden.
Wie kriege ich jetzt die User in das Makro, damit er die erkennt?
Muss ich die Tabelle jetzt 2 x anlegen?
Vielen lieben Dank!
Grüße
Heidi

AW: Filter
16.07.2014 09:34:26
Nepumuk
Hallo,
du benötigst eine zusätzliche Tabelle leere für die eingeschränkte Liste der nichtprivilegierten Benutzer. Die wird jedes mal beim Öffnen der Mappe durch diese Benutzergruppe erstellt.
Da ist auch noch ein Fehler im Code, denn eigentlich wollte ich die Originalliste grundsätzlich verstecken damit der nichtprivilegierten Benutzer nicht an sie ran kommt auch wenn er die Makros in der Mappe beim Öffnen deaktiviert.
Gruß

Anzeige
AW: Filter
16.07.2014 09:36:04
Nepumuk
Oooooooops
nicht Tabelle leere sondern leere Tabelle.

AW: Filter
16.07.2014 09:38:24
Heidi
Hallo,
hi hi, okay könntest du mir bitte den richtigen Code schicken, dann versuche ich dies mal umszusezten. Aber wie gebe ich die User richtig ein?
Danke :-)

AW: Filter
16.07.2014 10:40:56
Nepumuk
Hallo,
der folgende Code muss in das Modul "DieseArbeitsmappe":
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    Dim objLastActiveSheet As Object
    If PrivilegedUser Then
        Cancel = True
        With Application
            .EnableEvents = False
            .ScreenUpdating = False
        End With
        Set objLastActiveSheet = ActiveSheet
        Worksheets("Eingeschränkt").Visible = xlSheetVisible
        Worksheets("Original").Visible = xlSheetVeryHidden
        Call Save
        Worksheets("Original").Visible = xlSheetVisible
        Worksheets("Eingeschränkt").Visible = xlSheetVeryHidden
        objLastActiveSheet.Select
        Saved = True
        With Application
            .EnableEvents = False
            .ScreenUpdating = False
        End With
    End If
End Sub

Private Sub Workbook_Open()
    If PrivilegedUser Then
        Worksheets("Original").Visible = xlSheetVisible
        Worksheets("Eingeschränkt").Visible = xlSheetVeryHidden
    Else
        With Worksheets("Eingeschränkt")
            .Visible = xlSheetVisible
            .UsedRange.ClearContents
        End With
        With Worksheets("Original")
            If Not .AutoFilterMode Then Call .Rows(1).AutoFilter
            With .AutoFilter
                Call .Range.AutoFilter(Field:=2, Criteria1:="<>Projektleiter")
                Call .Range.Copy(Destination:=Worksheets("Eingeschränkt").Cells(1, 1))
            End With
            Call .ShowAllData
            .Visible = xlSheetVeryHidden
        End With
        With Worksheets("Eingeschränkt")
            If Not .AutoFilterMode Then Call .Rows(1).AutoFilter
        End With
    End If
    Saved = True
End Sub

Private Function PrivilegedUser() As Boolean
    Select Case Environ$("USERNAME")
        Case "Heidi", "Max" 'Die privilegierten User
            PrivilegedUser = True
    End Select
End Function

Namen der beiden Tabellen, bei mir "Eingeschränkt" und "Original", anpassen !!!
In dieser Zeile:
Case "Heidi", "Max" 'Die privilegierten User
musst du die Namen Heidi und Max durch die Anmeldenamen in Windows ersetzen. Die holst du dir am besten so: Öffne eine neue Excelmappe - Alt+F11 öffnet den VBA-Editor - in dessen Menüleiste - Einfügen - Modul. In diese Modul kopierst du folgende Routine:
Public Sub test()
    Cells(1, 1).Value = Environ$("USERNAME")
End Sub

und drückst auf F5. Jetzt hast du in Zelle A1 den Anmeldenamen stehen. Den kopierst du und fügst ihn in den Code ein. Achtung, wenn du eine Excelzelle kopierst ist immer ein Zeilenumbruch am Ende. Also den Namen besser oben in der Bearbeitungszeile markieren und kopieren.
Gruß
Nepumuk

Anzeige
AW: Filter
16.07.2014 12:10:02
Heidi
Hallo,
ist das genial, es funktioniert, muss es nur noch mal mit einem User testen, der nicht alles sehen soll. Eine Frage hätte ich noch, wie ist es eigentlich, wenn ein anderer User der nicht alles sehen soll/darf was an der Tabelle ändert, wie kriege ich das in die Original-Datei?
Gibt es auch eine Möglichkeit, wo ich als Original-User beide Tabellen sehen kann?
Danke du hast mir sehr geholfen :-)

AW: Filter
16.07.2014 12:14:22
Heidi
Hallo Nepumuk,
ich habe mich gerade als "eingeschränkter" angemeldet und es funktioniert schon, aber leider sehe ich nicht das komplette "Original-Tabellenblatt" ? Es soll aber genauso aussehen.
Kannst du mir bitte nochmal helfen?
DANKE

Anzeige
AW: Filter
17.07.2014 09:54:22
Nepumuk
Hallo,
dass auch der eingeschränkte Nutzer die Originalliste auch sehen und editieren darf erfahre ich jetzt. Damit willst du zwei Dinge unter einen Hut zu bringen die keinen Platz darin haben.
Wenn der Benutzer die Originalliste sehen und ändern können soll, dann kann er auch Filtern.
Jetzt brauchen wir ein neues Konzept.
Gruß
Nepumuk

Anzeige
AW: Filter
18.07.2014 07:57:13
Heidi
Guten Morgen Nepumuk,
tut mir leid, hab mich am Anfang wohl nicht deutlich ausgedrückt.
Ja es geht eigentlich darum, dass andere die gleiche Liste/Datenblatt sehen können, aber nicht
den gefilterten Wert von "Protokoll".
:-(
Vielleicht gibt es ja doch eine Möglichkeit. Ich bin in VBE leider nicht so gut.
Danke schon Mal :-)

AW: Filter
18.07.2014 09:47:46
Nepumuk
Hallo,
die einzige Möglichkeit die ich sehe, das Filtern der Liste für die "eingeschränkte Nutzer" zu sperren. Aber was sollte ihn daran hindern die Liste in eine neue Mappe zu kopieren und da zu filtern?
Du siehst, dein Ansinnen kann, solange jeder Benutzer Zugang zur Originalliste hat, auf verschiedene Weise unterlaufen werden. Da hilft auch kein VBA, denn wenn der Benutzer keine Makro zulässt, dann bringt das garnix.
Gruß
Nepumuk

Anzeige
AW: Filter
18.07.2014 10:00:27
Heidi
Hallo,
okay, ich dachte da gäbe es vielleicht ein Makro, welches dies ausblenden kann.
Aber dann siehst du da keine Möglichkeit oder?
Schade :-(
Trotzdem vielen lieben Dank!
Gruß
Heidi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige