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 
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
'