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

Worksheet_SelectionChange

Worksheet_SelectionChange
Rainer
Hallo,
Kann man das nachfolgende Makro vereinfachen? Falls Spalten gelöscht oder eingefügt werden,
ist hier immer "Handarbeit" notwendig.
Makro ist dazu da, dass bei Klick auf z.Bsp. Zelle D1 alle Spalten, bis auf D1; nächste Spalte; _
letzte Spalte sowie die ersten 4 Spalten, ausgeblendet werden.

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$D$1" Or Target.Address = "$F$1" Or Target.Address = "$H$1" _
Or Target.Address = "$J$1" Or Target.Address = "$L$1" Or Target.Address = "$N$1" _
Or Target.Address = "$P$1" Or Target.Address = "$R$1" Or Target.Address = "$T$1" _
Or Target.Address = "$V$1" Or Target.Address = "$X$1" Or Target.Address = "$Z$1" _
Or Target.Address = "$AB$1" Or Target.Address = "$AD$1" Or Target.Address = "$AF$1" _
Or Target.Address = "$AH$1" Or Target.Address = "$AJ$1" Or Target.Address = "$AL$1" _
Or Target.Address = "$AN$1" Or Target.Address = "$AP$1" Or Target.Address = "$AR$1" _
Or Target.Address = "$AT$1" Or Target.Address = "$AV$1" Or Target.Address = "$AX$1" _
Or Target.Address = "$AZ$1" Or Target.Address = "$BB$1" Or Target.Address = "$BD$1" _
Or Target.Address = "$BF$1" Or Target.Address = "$BH$1" Or Target.Address = "$BJ$1" _
Or Target.Address = "$BL$1" Or Target.Address = "$BN$1" Or Target.Address = "$BP$1" _
Or Target.Address = "$BR$1" Or Target.Address = "$BT$1" Or Target.Address = "$BV$1" _
Or Target.Address = "$BX$1" Or Target.Address = "$BZ$1" Or Target.Address = "$CB$1" _
Or Target.Address = "$CD$1" Or Target.Address = "$CF$1" Or Target.Address = "$CH$1" _
Or Target.Address = "$CJ$1" Or Target.Address = "$CL$1" Or Target.Address = "$CN$1" _
Or Target.Address = "$CP$1" Or Target.Address = "$CR$1" Or Target.Address = "$CT$1" _
Or Target.Address = "$CV$1" _
Then Call SpaltenAusblenden
End Sub


Sub SpaltenAusblenden()
Application.ScreenUpdating = False
Dim Spalte As Long
Spalte = 4
While Spalte 

Gruß, Rainer

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Worksheet_SelectionChange
12.04.2011 14:13:19
Rudi
Hallo,
das geht einfacher. Klick auf gerade Spalten>3 (C) in Zeile 1
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row = 1 Then
If Target.Column > 3 And Target.Column Mod 2 = 0 Then
Spalten_ausblenden Target
End If
End If
End Sub
Sub Spalten_ausblenden(Target As Range)
Range(Cells(1, 4), Cells(1, Columns.Count)).EntireColumn.Hidden = True
Target.Resize(, 2).EntireColumn.Hidden = False
Columns("CX").Hidden = False
End Sub
Gruß
Rudi
AW: Worksheet_SelectionChange
12.04.2011 14:28:14
Rainer
Hallo Rudi,
vielen Dank, funktioniert einwandfrei. Eine letzte Frage: falls ich Spalten (immer 2) einfüge, verschiebt sich auch die letzte Spalte im Arbeitsbereich, d.h. Spalte CX ist dann nicht mehr die letzte. Können wir das noch berücksichtigen?
Sub Spalten_ausblenden(Target As Range)
Range(Cells(1, 4), Cells(1, Columns.Count)).EntireColumn.Hidden = True
Target.Resize(, 2).EntireColumn.Hidden = False
Columns("CX").Hidden = False
End Sub

Anzeige
AW: Worksheet_SelectionChange
12.04.2011 14:47:55
Rudi
Hallo,
Können wir das noch berücksichtigen?

vom Prinzip her ja.
Wodurch wird die festgelegt? Letzte Spalte mit Überschrift?
cells(1, columns.count).end(xltoleft).EntireColumn.Hidden=False
Gruß
Rudi
AW: Worksheet_SelectionChange
12.04.2011 14:53:59
Rainer
Hallo Rudi,
habe es selbst herausgefunden und Makro wie folgt geändert:
Sub Spalten_ausblenden(Target As Range)
Range(Cells(1, 4), Cells(1, Columns.Count)).EntireColumn.Hidden = True
Target.Resize(, 2).EntireColumn.Hidden = False
'Columns("CX").Hidden = False
n = Target.CurrentRegion.Columns.Count
Cells(1, n).EntireColumn.Hidden = False
End Sub
Nochmals vielen Dank für die Hilfe.
Gruß,
Rainer
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige