Makros optimieren so das keine 480 notwendig sind
25.11.2024 16:24:29
LSG?
ich bastel gerade an deinem Sitzplan. Bestehend aus 240 Sitzplätzen.
Was macht das Makro: beim anklicken einer Cklickbox wird die Zelle rot, schreibt eine Zahl in eine weitere Zelle zum zählen,
blendet die Klickbox aus und blendet eine neue an der selben Stelle ein und schreibt den Platz in eine Zeile in der alle gewählen Plätze
aufgelistet werden.
Wenn ich dann auf die neue Klickbox drücke, wird die Zelle wieder weiß bzw. grau(jede zweite Reihe grau anstatt weiß), löscht die Zahl zum Rechnen,
schreibt "nichtPlatz" und blendet sch aus und blendet die erste Klickbox wieder ein.
Der Sitzplan sieht so aus, das ich 11 Plätze habe und 22 Reihen. Aktuell habe ich 33 Plätze fertig, da ich pro Platz zwei Makros benötige.
Geht das auch einfacher??
Vielleicht hat ja jemand eine Idee.
Sub Makro23()
ActiveSheet.Shapes("Check Box 23").Select
If Selection.Value = xlOn Then
ActiveSheet.Shapes("Check Box 23").Select
Selection.Value = xlOff
ActiveSheet.Shapes.Range(Array("Check Box 23")).Visible = msoFalse
Range("D6").Select Achtung die Spalten A-C benötige ich für andere Sachen und die 11 Plätze zwischendrin gehen bis Spalte Q da zwischendrin ebenfalls Leerspalten sind
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("T6").Select
ActiveCell.FormulaR1C1 = "1"
Range("T1").Select
Range("C3").Value = Range("C3").Value + "/P23"
ActiveSheet.Shapes.Range(Array("Check Box 255")).Visible = msoTrue
End If
End Sub
Sub Makro255()
ActiveSheet.Shapes("Check Box 255").Select
If Selection.Value = xlOn Then
ActiveSheet.Shapes("Check Box 255").Select
Selection.Value = xlOff
ActiveSheet.Shapes.Range(Array("Check Box 255")).Visible = msoFalse
Range("D6").Select
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Range("T6").Select
ActiveCell.FormulaR1C1 = "0"
Range("T1").Select
Range("C3").Value = Range("C3").Value + "/nichtP23"
ActiveSheet.Shapes.Range(Array("Check Box 23")).Visible = msoTrue
End If
End Sub
Anzeige