Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
876to880
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
876to880
876to880
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Spalten entsprechend Benutzer ein-/ausblenden

Spalten entsprechend Benutzer ein-/ausblenden
20.06.2007 11:43:25
Marcel1978
Hallo,
war im Urlaub, deshalb erst jetzt Danke an Rudi für die Antwort.
Folgendes habe ich in VB-Editor übertragen:

Private Sub Workbook_Open()
With Sheets(1)
.Columns.Hidden = True  'alles ausblenden
Select Case LCase(Environ("Username"))
Case "Unger": .Range("B:B,E:F,H:H").Hidden = False
Case "Werner": .Range("A:Z").Hidden = False
Case "meier": Range("A:A,D:D,J:L").Hidden = False
End Select
End With
End Sub


Die Benutzernamen entsprechen dem "Autor" aus der "Dateiinfo" in den Eigenschaften von Excel-Dateien,
die an den entsprechenden Rechnern erstellt wurden. (Gros/Kleinschreibung beachtet!)
Das Problem ist nun, dass bei den definierten Benutzern trotzdem alle Spalten ausgeblendet sind.
Was ist am Makro noch nicht richtig bzw. wo bekomme ich den richtigen Benutzernamen her?
Danke nochmal.
Marcel

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Spalten entsprechend Benutzer ein-/ausblenden
20.06.2007 11:53:00
Rudi
Hallo,
1. LCase wandelt in Kleinbuchstaben um, des halb muss du die Namen klein schreiben.
2. Environ("Username") ist der Netzwerkname des Benutzers, der kann vom Autor abweichen.
Der Autor ist wie unter Extras-Optionen-allgemein und kann jederzeit geändert werden.

Private Sub Workbook_Open()
With Sheets(1)
.Columns.Hidden = True  'alles ausblenden
Select Case LCase(Environ("Username"))
Case "unger": .Range("B:B,E:F,H:H").Hidden = False
Case "werner": .Range("A:Z").Hidden = False
Case "meier": Range("A:A,D:D,J:L").Hidden = False
End Select
End With
End Sub


Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige
AW: Spalten entsprechend Benutzer ein-/ausblenden
20.06.2007 12:04:37
Marcel1978
Hallo Rudi,
wenn ich "werner" klein schreibe, kommt ein Laufzeitfehler '1004' (Die Hidden-Eigenschaft des Range-Objekts kann nicht festgelegt werden)
Bei Klick auf "Debuggen" ist bei: Case "werner": .Range("A:H").Hidden = False
ab dem Doppelpunkt alles gelb hinterlegt.
Mein Netzwerkname ist "Werner"
Wat nun ?

AW: Spalten entsprechend Benutzer ein-/ausblenden
20.06.2007 12:27:49
Rudi
Hallo,
kleiner Fehler:
.Range("A:H").Entirecolumn.Hidden = False
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Spalten entsprechend Benutzer ein-/ausblenden
20.06.2007 12:39:00
Marcel1978
Hab jetzt folgendes drin:

Private Sub Workbook_Open()
With Sheets(1)
.Columns.Hidden = True  'alles ausblenden
Select Case LCase(Environ("Username"))
Case "unger": .Range("B:B,E:F,H:H").EntireColumn.Hidden = False
Case "werner": .Range("A:H").EntireColumn.Hidden = False
Case "meier": Range("A:A,D:D,J:L").EntireColumn.Hidden = False
End Select
End With
End Sub


Laufzeitfehler kommt nicht mehr, aber zeigt immer noch keine Spalten an!

Anzeige
AW: Spalten entsprechend Benutzer ein-/ausblenden
20.06.2007 12:46:17
Rudi
Hallo,
da
Case "meier": Range("A:A,D:D,J:L").EntireColumn.Hidden = False
fehlt der . vor Range
Geh den Code mal mit F8 durch.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Spalten entsprechend Benutzer ein-/ausblenden
20.06.2007 13:14:59
Marcel1978

Private Sub Workbook_Open()
With Sheets(1)
.Columns.Hidden = True  'alles ausblenden
Select Case LCase(Environ("Username"))
Case "unger": .Range("B:B,E:F,H:H").EntireColumn.Hidden = False
Case "werner": .Range("A:H").EntireColumn.Hidden = False
Case "meier": .Range("A:A,D:D,J:L").EntireColumn.Hidden = False
End Select
End With
End Sub


Also,
mit F8 wird jede Zeile gelb hinterlegt.
Nach case wird nur das gelb hinterlegt was mit dem Benutzer übereinstimmt,
d.h. am Rechner Werner wird nur .Range.... bei Case "werner" gelb.
Danach dann "End Select" usw. (Case "meier" wird dann übersprungen)
Funktioniert auch an den anderen Rechnern.
D.h. Benutzernamen funktionieren, aber die Funktion dahinter mit dem Spaltenausblenden hat noch einen Haken.
Ich weiß, ich bin schon bei der Mehrzahl der Wiederkäuer,
deshalb nochmal tausend Dank für die Mühe ;-) .

Anzeige
AW: Spalten entsprechend Benutzer ein-/ausblenden
20.06.2007 13:43:00
Marcel1978
"Frage noch offen" vergessen, sorry

AW: Spalten entsprechend Benutzer ein-/ausblenden
20.06.2007 14:20:24
Rudi
Hallo,

mit F8 wird jede Zeile gelb hinterlegt


das ist richtig so.


aber die Funktion dahinter mit dem Spaltenausblenden 


Es werden Spalten eingeblendet!
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

AW: Spalten entsprechend Benutzer ein-/ausblenden
20.06.2007 15:50:00
Marcel1978

Es werden Spalten eingeblendet!


Tschuldigung,
es ist richtig, dass die Spalten eingeblendet werden sollen.
Aber es wird keine Spalte eingeblendet.
Es ist keine Spalte zu sehen !
Irgendwas stimmt an der Funktion nicht.
Oder an meiner Datei ?
Danke nochmals.

Anzeige
AW: Spalten entsprechend Benutzer ein-/ausblenden
21.06.2007 08:57:00
Marcel1978
So, mein Fehler.
Die Funktion funktioniert, aber die Spalten werden erst eingeblendet, wenn man
z.B. mit den Pfeil-Tasten mal nach links oder rechts geht.
Gibts dazu noch einen Code, damit sofort wenn die Datei geöffnet wird,
die entsprechenden Spalten angezeigt werden ?
Danke nochmals, wie gesagt, keine VBA-Kenntnisse.

AW: Spalten entsprechend Benutzer ein-/ausblenden
21.06.2007 14:26:08
Rudi
Hallo,
im Projektexplorer(das linke Fenster) in deinem Projekt auf Microsoft excel Objekte klicken, dann auf DieseArbeitsmappe doppelklicken und den Code in das rechte Fenster einfügen.

Private Sub Workbook_Open()
With Sheets(1)
.Columns.Hidden = True  'alles ausblenden
Select Case LCase(Environ("Username"))
Case "unger"
.Range("B:B,E:F,H:H").EntireColumn.Hidden = False
Application.Goto Range("B1"), True
Case "werner"
.Range("A:H").EntireColumn.Hidden = False
Application.Goto Range("A1"), True
Case "meier"
.Range("A:A,D:D,J:L").EntireColumn.Hidden = False
Application.Goto Range("A1"), True
End Select
End With
End Sub

Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Anzeige

270 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige