Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

vereinfachende Darstellung im Makro
#1
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

Antworten Top
#2
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
Viele Grüße
Klaus-Dieter
Der Erfolg hat viele Väter, 
der Misserfolg ist ein Waisenkind
Richard Cobden
[-] Folgende(r) 1 Nutzer sagt Danke an Klaus-Dieter für diesen Beitrag:
  • Stephan
Antworten Top
#3
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
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Stephan
Antworten Top
#4
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
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste