Spalten ein-/ausblenden

Liebe WWW-ler,

ich möchte in einem Arbeitsblatt mehrere nicht zusammenhängende Spalten ein- bzw.
ausblenden.
Die Idee dahinter ist, dass verschiedene user dieser Datei auf einen Klick die für sie
relevanten Spalten sehen und alle anderen nicht mehr. Welche das sind sollte jeder
(z.B. durch ein „x“ in der entsprechenden Zelle) selbst definieren und ändern können.
Ist das möglich? Wenn ja, wie geht das?

Gruß
Alexander

Sollte vielleicht noch dazu sagen: Excel X unter Mac OS X

ich möchte in einem Arbeitsblatt mehrere nicht
zusammenhängende Spalten ein- bzw.
ausblenden.
Die Idee dahinter ist, dass verschiedene user dieser Datei auf
einen Klick die für sie
relevanten Spalten sehen und alle anderen nicht mehr. Welche
das sind sollte jeder
(z.B. durch ein „x“ in der entsprechenden Zelle) selbst
definieren und ändern können.
Ist das möglich? Wenn ja, wie geht das?

Hi Alexander,

irgendwie kommst du mir wie gerufen vor :smile:

Wie hier ein bisschen sichtbar ist mir grad völlig unklar ob Excel-Makros auf einem Mac laufen:

/t/letzte-eingaben-einer-textbox/4531948/23

Kannst du dazu was sagen!?

Zu deiner Anfrage, wenn, geht eine Lösung nur über ein Makro. Nur, den genauen Ablauf kriege ich grad nicht gebacken.

Es ist kein Problem, sofern Makros zugelassen sind, aufgrund der Eingabe von „x“ in z.B. F1 die Spalte F auszublenden.
Nur, wie blendet der Benutzer die Spalte wieder ein?

Ich kenne deine XL-Version nicht, gehe davon aus sie hat 256 Spalten, wenn der Benutzer nun halt nur 10 Spalten sehen will, soll er dann 246 mal ein „x“ eingeben?

Ich gehe davon aus, die Benutzer wissen wie man manuell Spalten aus- und einblenden kann in Excel, warum sollen sie nicht diesen Weg gehen?

Wäre es eine gute Idee beim Start der Datei automatisch abzuprüfen wer der Benutzer ist und dementsprechend automatisch nur bestimmte Spalten anzuzeigen?

Gruß
Reinhard

Hallo Reinhard,

Kannst du dazu was sagen!?

Ich kenne mich mit Makros nicht aus, weiß aber, dass sie am Mac laufen.
Ob allerdings alle Makros plattformunabhängig funktionieren wage ich zu bezweifeln.

Mein Problem ist, dass mehrere Leute die gleiche Exceldatei als Basis für Ihre Arbeit
benutzen und auch pflegen. Die Datei ist relativ groß und unübersichtlich, daher
blende ich die für mich nicht relevanten Spalten von Hand aus.
Der nächste Kollege blendet sie wieder ein und dafür andere aus,…
Meine Vorstellung ist, dass man einmal (per „x“) „seine“ Spalten markiert und dann jeder auf Knopfdruck
immer seine spezielle Ansicht des Blattes hat.
Ich hoffe, ich konnte mich verständlich machen.

Gruß
Alex

Hallo Alexander

Kannst du dazu was sagen!?

Ich kenne mich mit Makros nicht aus, weiß aber, dass sie am
Mac laufen.
Ob allerdings alle Makros plattformunabhängig funktionieren
wage ich zu bezweifeln.

aha, danke für die Info, bin ähnlich skeptisch mit den Plattformen, aber genaues weiß ich nicht.

Mein Problem ist, dass mehrere Leute die gleiche Exceldatei
als Basis für Ihre Arbeit
benutzen und auch pflegen. Die Datei ist relativ groß und
unübersichtlich, daher
blende ich die für mich nicht relevanten Spalten von Hand aus.
Der nächste Kollege blendet sie wieder ein und dafür andere
aus,…
Meine Vorstellung ist, dass man einmal (per „x“) „seine“
Spalten markiert und dann jeder auf Knopfdruck
immer seine spezielle Ansicht des Blattes hat.

Ich habe da mal was gebastelt, aber keine Ahnung was damit in einem Netzwerk passiert wenn mehrere Leute gleichzeitig darauf zugreifen.
Und „freigegebene Arbeitsmappe“ ist zwar schon sehr sprechend, aber nur im Praxistest bekomme ich heraus ob MS und ich das Gleiche unter freigegeben Arbeitsmappen verstehen :smile:

http://www.hostarea.de/server-03/Maerz-2fb082dec3.xls

Schau halt mal ob das was für dich ist.
Im Prinzip läuft der Code so ab, beim Datei-Öffnen wird geprüft, ob der User bekannt ist, dann werden die Spalten gemäß seiner letzten Sitzung angezeigt oder halt nicht.
Bei unbekannten Usern werden erstmalig alle Spalten angezeigt.

Und beim Schließen der Datei werden halt die Spaltenzustände pro User im verborgenen Blatt „Spalten“ gespeichert.

Gruß
Reinhard

In ein Standardmodul z.B. Modul1

Option Explicit
'
Sub Oeffnen()
Dim Spa As Integer, Zei As Long, wks As Worksheet, Such As String
Set wks = Worksheets("Tabelle1")
Such = Environ("Username")
Application.ScreenUpdating = False
wks.Columns.Hidden = False
With Worksheets("Spalten")
 If Application.WorksheetFunction.CountIf(.Columns(1), Such) Then
 Zei = Application.WorksheetFunction.Match(Such, .Columns(1), 0) + 1
 For Spa = 1 To 256
 wks.Columns(Spa).Hidden = .Cells(Zei, Spa)
 Next Spa
 End If
End With
wks.[a1].Select
Application.ScreenUpdating = True
End Sub
'
Sub Schliessen()
Dim Spa As Integer, Zei As Long, wks As Worksheet, Such As String
Set wks = Worksheets("Tabelle1")
Such = Environ("Username")
With Worksheets("Spalten")
 If Application.WorksheetFunction.CountIf(.Columns(1), Such) Then
 Zei = Application.WorksheetFunction.Match(Such, .Columns(1), 0) + 1
 Else
 Zei = IIf(.Cells(1, 1) = "", 0, .Range("A" & Rows.Count).End(xlUp).Row) + 2
 .Cells(Zei - 1, 1) = Such
 End If
 For Spa = 1 To 256
 .Cells(Zei, Spa) = wks.Columns(Spa).Hidden
 Next Spa
End With
End Sub

In DieseArbeitsmappe:

Option Explicit
'
Private Sub Workbook\_BeforeClose(Cancel As Boolean)
Call Schliessen
End Sub
'
Private Sub Workbook\_Open()
Call Oeffnen
End Sub
'