Clever-Excel-Forum

Normale Version: vereinfachende Darstellung im Makro
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Tag den Helfenden,

ich habe in einem Makro etliche gleichlautende Befehle (Ein bzw. Ausblenden) für verschiedene Spalten eingetragen.
Geht das auch vereinfachend mit 2 Befehlen?
Also sozusagen eine Zusammenfassung in 2 Ausführungsvarianten.

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim S As Integer
S = Target.Column
Z = Target.Row

If S = 13 Then
    Columns("O:AH").Hidden = False
End If
If S = 14 Then
    Columns("O:AH").Hidden = True
End If
If S = 45 Then
    Columns("AU:BC").Hidden = False
End If
If S = 46 Then
    Columns("AU:BC").Hidden = True
End If

End Sub

Vorstellung oder so ähnliches Zusammengefasstes:
If S={13;45} Then {Columns("O:AH";Columns("AU:BC")}.Hidden =False
If S ={14;46} Then {Columns("O:AH";Columns("AU:BC")}.Hidden = True

Leider sind es noch wesentlich mehr als diese beiden Beispiele (und mein Kumpel konnte mir auch nicht helfen) .


Freundliche Grüße
Stephan


Ergänzung: Manchmal sieht man den Wald vor lauter Bäumen nicht.
Bestimmt geht es nicht einfacher als so, und dann sollte es erledigt sein.

If S = 13 Then Columns("O:AH").Hidden = False
If S = 14 Then Columns("O:AH").Hidden = True

Ich kann mich selber ....

 Trotzdem Dank für andere Möglichkeiten


Freundlichen Gruß  
Stephan

Hallo Stephan,

versuche es mal so:

Code:
Option Explicit

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    Select Case Target.Column
        Case 13
            Columns("O:AH").Hidden = False
        Case 14
            Columns("O:AH").Hidden = True
        Case 45
            Columns("AU:BC").Hidden = False
        Case 46
            Columns("AU:BC").Hidden = True
    End Select
End Sub
Hallo Stephan,

(03.02.2022, 12:21)Stephan schrieb: [ -> ]Bestimmt geht es nicht einfacher als so, und dann sollte es erledigt sein.

doch:

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  Dim S As Long
  S = Target.Column
  Columns("O:AH").Hidden = Switch(S = 13, False, S = 14, True)
  Columns("AU:BC").Hidden = Switch(S = 45, False, S = 46, True)
End Sub

Gruß Uwe
Hallo Klaus-Dieter, hallo Uwe,

danke für die Vorschläge. Haben beide was für sich, der eine übersichtlicher, der andere kürzer.
Mit dem Befehl "Case" werde ich mich wohl mal intensiver beschäftigen müssen, scheint ein gewaltiges 'Instrument' zu sein.
Beide auf jeden Fall besser, als mein Wissen es hergegeben hat.
Danke'

Freundliche Grüße
Stephan