Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1036to1040
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
Benutzerdefinierte Ansicht mit VBA
07.01.2009 09:30:30
Kathi
Halli Hallo!
Auch wenn ich diesbezüglch vor einiger Zeit bereits einmal gefragt habe, muss ich jetzt leider nochmal posten.
Ich hab folgenden Code:
Private mstrUser As String
Private mstrPw As String
Const cstrNormal As String = "Ehmer"
Const cstrPwN As String = "E"
Const cstrUserA As String = "Lorz"
Const cstrPwA As String = "L"
Const cstrUserB As String = "Wagemann"
Const cstrPwB As String = "W"
Const cstrUserC As String = "Escher"
Const cstrPwC As String = "E"
Const cstrUserD As String = "Barth"
Const cstrPwD As String = "B"

Public Sub MyCustomViews()
mstrUser = Application.InputBox("Geben Sie den Ansichtsnamen ein:" & _
vbNewLine & _
cstrEhmer & vbNewLine & _
cstrLorz & vbNewLine & _
cstrWagemann & vbNewLine & _
cstrEscher & vbNewLine & _
cstrBarth, _
"Ansichten", "User", Type:=2)
If mstrUser = "Falsch" Or mstrUser = "" Then Exit Sub
Select Case mstrUser
Case cstrNormal, cstrUserA, cstrUserB, cstrUserC, cstrUserD
Case Else
MsgBox "Für " & mstrUser & " liegt keine Ansicht vor.", _
vbOKOnly & vbExclamation
Exit Sub
End Select
mstrPw = Application.InputBox( _
mstrUser & ", Geben Sie Ihr Passwort ein:", _
"Passwortabfrage", "Passwort", Type:=2)
If mstrPw = "Falsch" Or mstrPw = "" Then Exit Sub
Select Case mstrUser
Case cstrEhmer
CheckPassword cstrPwN
Case cstrLorz
CheckPassword cstrPwA
Case cstrWagemann
CheckPassword cstrPwB
Case cstrEscher
CheckPassword cstrPwC
Case cstrBarth
CheckPassword cstrPwD
End Select
End Sub



Public Sub CheckPassword(strP As String)
If mstrPw  strP Then
MsgBox mstrUser & ", dass Password ist falsch!", _
vbExclamation
Exit Sub
Else
With ActiveSheet
.Unprotect "Codebook"
Application.ScreenUpdating = False
If AutoFilter = 0 Then Range("A1").AutoFilter
Range("A1").AutoFilter Field:=4, Criteria1:=mstrUser
Application.ScreenUpdating = True
.Protect "Codebook"
End With
End If
End Sub


&


Private Sub Workbook_Open()
MyCustomViews
End Sub


Leider funktioniert dieser Code bei mir irgendwie nicht. Hab die Ansichten eingerichtet aber nix passiert. hat jemand ne Idee woran das liegen könnte?
Außerdem würde ich gern das dieser Code in mehreren Tabellenblättern angewendet wird wie kann man das hineinbringen?
Lg kathi
Danke für eure Hilfe im Voraus.

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Benutzerdefinierte Ansicht mit VBA
07.01.2009 09:48:24
Oberschlumpf
Hi Kathi
Die Variable mstrPw wird zwar mit Inputbox im ersten Makro "gefüllt", verliert aber bei Aufruf des zweiten Makros ihren Wert, da an das zweite Makro nur die Konstante cstrPwA übergeben wird.
Du musst also an das Makro CheckPassword sowohl cstrPwA, als auch mstrPw übergeben.
Z Bsp

Select Case mstrUser
Case cstrEhmer
Call CheckPassword(cstrPwN, mstrPw)


Und im zweiten Makros muss dann das hier stehen:


Public Sub CheckPassword(strP As String, strP2 As String)
If strP2  strP Then


Hilfts?
Ciao
Thorsten

Anzeige
AW: Benutzerdefinierte Ansicht mit VBA
07.01.2009 10:08:25
Kathi
hmm.. funktioniert leider immer noch nicht...
weiß nicht warum..
AW: Benutzerdefinierte Ansicht mit VBA
07.01.2009 10:10:17
Oberschlumpf
hmm...dann stell uns doch mal ne Bsp-Datei zur Verfügung...und....beschreib bitte genauer deine Aussage "funktioniert leider immer noch nicht"...was genau passiert denn?
hier mit Filter ...
07.01.2009 09:56:00
Matthias
Hallo Kathi
Ich habe Dir doch gepostet:
https://www.herber.de/forum/archiv/1036to1040/t1036814.htm#1036880
und hier:
https://www.herber.de/forum/archiv/1036to1040/t1036814.htm#1036886
warum hast Du nicht reagiert ?


Ich habe jetzt mal eine 3. Varinte erstellt.
https://www.herber.de/bbs/user/58144.xls
Nur in den Blättern der Monate greift das Makro.


Warum eigentlich einmal als Pietsch und heute als Kathi ?
Das machtdie Suche nach Deinen Beiträgen komplizierter.
Gruß Matthias
Anzeige
Testdatei Benutzerdef. Ansicht
07.01.2009 10:43:00
Kathi
Halli Hallo.
Also danke erstmal für eure Hilfe.
Hier die Datei mit der ich arbeiten will:
https://www.herber.de/bbs/user/58146.zip
Die Tabellenblätter gehen normalerweise bis April 2010, aber da hier die 300kb beschränkt sind musste ich etwas löschen.
Die Ansichten sind enthalten. Jetzt gehts nur darum die VBA Programmierung entsprechend zu gestalten das die Ansicht bei allen Monaten greift, nicht bei Abkürzungen, Analyse und Einzelauszug.
Vielleicht könnt ihr mir helfen.. weiß bald nicht mehr weiter...
Kathi
Anzeige
AW: Testdatei Benutzerdef. Ansicht
07.01.2009 12:02:39
Oberschlumpf
Hi Kathi
Hier mal mein Versuch:
https://www.herber.de/bbs/user/58149.zip
Um den Unterschied vor Makro - nach Makro zu sehen, kannst du die Datei ja zuest mal OHNE aktivierte Makros starten.
Dann siehst du, dass es noch keinen Autofilter gibt
Beim 2. Start der Datei die Makros dann aktivieren...
Im Code direkt hab ich ein paar Erklärungen hinzugefügt.
Meine Frage nun:
Ist die Aufgabenstellung bis hier gelöst, deine Frage also beantwortet?
Ciao
Thorsten
@ Oberschlumpf geht immer noch nicht
07.01.2009 12:20:28
Kathi
Bei mir funktioniert das nicht..
Wenn ich den Usernamen eintrage dann blendet er alle Zeilen zw. 6-225 aus.
Außerdem blendet er nur in einem Tabellenblatt aus. Alle anderen bleiben unberührt..
Ging es denn bei dir?
Anzeige
AW: @ Oberschlumpf geht immer noch nicht
07.01.2009 12:30:00
Oberschlumpf
Hi....ach...egal..scheiß Anrede...lässt DU ja auch immer weg....
Wenn ich als User "Ehmer" eintrage und als Passwort "E" dann...
...wird in allen Monatsblättern der Autofilter aktiviert - und nur in den Monatsblättern
...in nur einem Monatsblatt wird EIN Eintrag angezeigt, da ich dort mal in Spalte D den Nahmen "Ehmer" in Zeile 9 oder so eingetragen hatte
...in allen anderen Monatsblättern ist der Autofilter zwar aktiv, aber es wird nix gefiltert, weil ja keine Werte vorhanden sind
So funktioniert es zumindest bei mir.
Tschü...ach nee...nix Grußformel am Schluss...machst DU ja auch nich
Anzeige
AW: @ Oberschlumpf--- du bist Spitze
07.01.2009 13:01:22
Kathi
Hallo Oberschlumpf :-)
Ich hoffe du nimmst mir das nicht krumm mit dem hallo und tschüß.
Ich habs noch mal probiert und ich versuch das jetzt komplett anzupassen in meine Datei. Hat ganz gut geklappt!!!
Eine Frage hätte ich aber noch :
Sag hast du noch ne Idee wie man den Filter schützt so dass dieser nicht verstellbar wird für andere?
Lg Kathi
AW: @ Oberschlumpf mal noch ne Frage
07.01.2009 13:41:00
Kathi
Hi.
Sag mal weißt du ob man diese Ansichtsabfrage auch machen kann ohne das es einen Bezug auf ein Tabellenblatt habe (z.B. Ehmer), sondern das es sich ausschließlich auf die gespeicherten Ansichten im Excel bezieht?
Lg Kathi
Anzeige
AW: @ Oberschlumpf mal noch ne Frage
07.01.2009 13:44:57
Kathi
Hi.
Sag mal weißt du zufällig ob diese ganze Abfrage Sache auch ohne Bezug auf Tabellenblätter funktioniert ( z.B ohne Ehmer)? Sondern das es sich ausschließlich auf die hinterlegten Ansichten bezieht.
Ich als nur die Abfrage habe und dann einfach sich nach Nutzer die jeweilige Ansicht öffnet...
Danke bereits mal im Voraus.
Lg Kathi
AW: @ Oberschlumpf mal noch ne Frage
07.01.2009 15:41:00
Oberschlumpf
Hi
zu deiner 1. Frage, ob man den Autofilter NICHT verändern kann
ändere im Code diese Zeile

.Protect "Codebook", DrawingObjects:=False, Contents:=True, Scenarios:=False, AllowFiltering:=  _
_
True


gegen diese Zeile


.Protect "Codebook", DrawingObjects:=False, Contents:=True, Scenarios:=False


Nach dieser Änderung wird noch immer in allen Monatsblättern der Autofilter gesetzt, aber es ist nicth mehr möglich, ihn zu ändern.
Was deine letzten 2 Folgefragen betrifft, kann ich dir leider noch gar nicth helfen, weil ich den Sinn deiner Fragen nicht verstehe.
Sorry, aber die Grammatik in deinen Fragen ist soo durcheinander, dass ich nicht weiß, was du möchtest.
Ciao
Thorsten

Anzeige
AW: @ Oberschlumpf mal noch ne Frage
07.01.2009 16:00:00
Kathi
Hi.
Also irgendwie werd ich das Gefühl nicht los.. das du nicht sehr gut auf mich zu sprechen bist..
Egal nun zum Thema:
In dem Code denn wir erstellt haben, ist es doch so, dass dieser nur funktioniert, da sich die Abfrage auf Namen in den Tabellenblättern bezieht. Du hattest in deiner Bsp-Datei dafür Ehmer in Spalte 4 eingesetzt.
In meiner Datei funktioniert der Code jedenfalls nur, wenn ich in Spalte 1 mit Überschrift Ansicht die Namen der User eintrage. Wenn nichts eingetragen ist funktioniert es nicht.
Meine Frage war nun, ob es denn möglich ist, dass sich die Abfrage nach User und PW zu Beginn so automatisieren lässt, dass ich diese Spalte nicht mehr benötige sondern nur die benutzerdefinierten Ansichten angezeigt werden, die ich eingepflegt habe. (ohne das da ein Bezug zu Spalte 1 in jedem Tabellenblatt vorhanden ist)
Ich hoffe das war verständlicher...
Lg Kathi
Anzeige
AW: @ Oberschlumpf mal noch ne Frage
07.01.2009 16:44:06
Oberschlumpf
Hi
gegen dich hab ich nix.
Zum Einen mag ich es aber nicht, wenn eine Frage/Antwort ohne Begrüßungs und Schlussformel geschrieben wird.
Mit Hallo und Tschüss erscheint alles freundlicher.
Und ich finde, dass wir alle wenigstens Freundlichkeit verdient haben, da wir uns ja mit euren Excel-Problemen beschäftigen, für die dann ein Teil unserer Zeit drauf geht. Ach ja...und bezahlen müsst ihr für unsere Hilfe auch nix.
Zum Anderen hatte ich deine von mir 2 erwähnten Fragen wirklich nicht verstanden, weil die Grammatik wirklich durcheinander gekommen war.
Ich als nur die Abfrage habe und dann einfach sich nach Nutzer die jeweilige Ansicht öffnet...
Verstehst DU diesen Satz? (wenn du mal so tust, als ob er nicht von dir kommt)
Das mit der Grammatik war nich böse gemeint...nur irgendwie musste ich dich ja darüber informieren, dass ich es nich verstanden hatte.
So viel dazu.....
Nun zu deiner Excel-Frage
So "arbeite" ich mit deiner Datei:
1. ich starte sie
2. es erscheint die Eingabebox für einen Namen
3. ich trage z Bsp Ehmer ein
4. es wird das dazugehörige Passwort verlangt
5. nach Eingabe von "E" und Klick auf OK dauert es ein paar Sekunden
6. der Autofilter wird mit deinen gewünschten Kriterien gesetzt
- Autofilter erscheint in Zeile 5 (im Code stand zuerst Zeile 1, was aber nicht möglich ist)
- es wird nach dem Kriterium "Username von dem, der die Datei geöffnet hat" gesucht
- die Suche erfolgt nach Vorgabe durch deine Bsp-Datei in Spalte 4 (Hauptabteilung)
7. In allen Monatsblättern wird ist der Autofilter aktiv, aber natürlich erfolgt keine Filterung, weil es in deiner Bsp-Datei keine Bsp-Daten gibt
8. nur im Juni2009-Blatt erscheint 1 Zeile mit Ehmer, weil ich den Namen eingetragen hatte
Was mich halt nur wunderte, ist, dass die Usernamen in der Spalte Hauptabteilung eingetragen werden.
Denn nur die Zeilen mit dem "richtigen" Namen in Hauptabteilung werden durch den Autofilter angezeigt.
(so ist die Vorgabe aus deinem Code)
Und wenn ich nun deinen letzten Absatz richtig verstanden habe, möchtest du nun, dass die User- und Passwortabfrage gar nicht mehr erscheint, sondern dass direkt nach dem Öffnen nur die Zeilen angezeigt werden, die der jeweilige angemeldete User am PC sehen darf/soll, oder?
So was ist möglich, in dem man beim Start der Datei den Anmeldenamen ausliest, mit dem sich jeder User am PC anmelden muss, bevor der User mit dem PC arbeiten kann.
Dafür ist es aber wichtig, dass du die Anmeldenamen der betroffenen Personen kennst.
Wenn es sich bei Ehmer usw genau um die Windows-Anmeldenamen handelt, dann wären wir schon einen Schritt weiter.
Wenn ich dich bis hier hin richtig verstanden habe....
Ich warte nun erst mal deine Antwort ab.
Ciao
Thorsten
Anzeige
AW: @ Oberschlumpf mal noch ne Frage
07.01.2009 17:01:00
Kathi
Halli Hallo ;)
Ja also gut wir haben das jetzt klar gestellt. Tut mir Leid ich verstehe dich ja auch. Ich war vorhin etwas im Stress. Der Beitrag war wirklich blöd. Sorry dafür.
Hmm also das mit dem Filter in der Hauptabteilung stimmt nicht so ganz der soll in Spalte 1, dort hab ich ne neue Spalte eingefügt mit Namen Ansicht, da ich sonst deinen Code nicht hätte nutzen können.
hmm deine Idee klingt gut mit den Windows- Anmeldenamen. Das sind allerdings Unternehmenskürzel die ich dir nicht geben kann. Wäre es denn dennoch irgendwie Beispielhaft umsetzbar?
Lg Kathi und DANKE das du so geduldig bist....!!!!!!!!!
AW: @ Oberschlumpf mal noch ne Frage
08.01.2009 12:21:00
Oberschlumpf
Hi Kathi
Ich weiß nicht, was ich falsch machte...aber...ich bekom die Datei nicht mehr zum Laufen...so ein Mist!...grrr
Der Autofilter lässt sich nun nicht mehr per VBA setzen....wie gesagt..keine Ahnung, woran das liegt :-(
Versuchte schon gestern und auch heute über einige Std mein Glück, aber leider erfolglos.
Ich kann dir also leider nicht weiter helfen :-(
Ciao
Thorsten

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige