Hallo Forum,
ich habe erst vor kurzem mitbekommen, dass man benutzerdefinierte Funktionen erstellen kann, die man dann wie normale Funktionen im Excelblatt verwendet.
Ich habe gedacht, ich könnte damit also den Programmaufruf mit Worksheet_Change umgehen und es passiert trotzdem was passieren soll indem man einfach einen Wert ändert.
Im Moment experimentiere ich noch damit rum einfach nur Zellrahmen einzufärben und damnn sieht es aus wie eine Fläche.
Man wählt über ein Dropdown vordefinierte Werte und die Public Function greift diese Zahlen ab. Über Case Select soll je nach Wahl etwas anderes eingefärbt werden.
Die Function und die zugehörigen Subs stehen in einem allgemeinen Modul:
Public Function Wand(Anzahl As Byte) As String
Select Case Anzahl
Case 4
Call Wand4
Case 6
Call Wand6
...
End Select
Wand = "Anzahl Wände"
End Function
Private Sub Wand4()
Worksheets("Tabelle2").Range("J5:P11").Borders.Color = RGB(255, 255, 255)
Worksheets("Tabelle2").Range("J5:P11").BorderAround LineStyle:=xlContinuous, Weight:=xlThin
End Sub
Alles was geht werd ich noch als Variablen umschreiben. Aber bis hierhin soll es erstmal nur funktionieren.
Border.Color wird abgearbeitet und ich erhalte dann eine weiße Fläche (der Hintergrund ist nicht eingefärbt).
BorderAround wird ignoriert. Beim stufenweisen Durchlaufen wird die Zeile auch markiert und dann läuft der Code weiter ohne irgendeine Auswirkung als würde die Zeile ignoriert.
Wenn ich die Sub Wand4() einfach so ausführen lasse, funktioniert die Zeile, nur wenn es über den Umweg der Function läuft, nicht.
Warum ist das so? Liegt es daran, dass Borders eine Eigenschaft und BordersAround eine Methode ist?
Was eine Eigenschaft ist und was eine Methode, ist in meinem Kopf noch ein bisschen Wischiwaschi, bzw. was das für Auswirkungen mit sich bringt.
Ich bin mal gespannt was ihr dazu sagt.
|