![]() |
Betrifft: UDF verschiedene Bereiche ändern
von: Rolf Buchholz
Geschrieben am: 12.06.2003 - 11:45:45
Hallo,
unten angegebene Funktion habe ich definiert und in der Celle B3 stehen =Scharnier(B1). In den einzelnen Case Abschnitten möchte ich aber auch andere Bereich der Tabelle ändern, z.B. Range("B4").Value = c. Das funktioniert aber nicht.
Hat jemand eine Lösung?
Viele Grüße
Rolf
Function Scharnier(b)
' b = Kastenbreite
' a = Abstand zum Rand
' c = Abstand zwischen den Scharnieren
Dim a
Dim c
a = Range("B2").Value
Select Case b
Case 1 To 800
c = b - 2 * a
Scharnier = c
Case 801 To 1350
c = (b - 2 * a) / 2
Scharnier = c
Case 1351 To 1800
c = (b - 2 * a) / 3
Scharnier = c
Case Else
MsgBox ("Kastenbreite |" & b & "| ist nicht definiert")
End Select
End Function
![]() ![]() |
Re: UDF verschiedene Bereiche ändern
von: Knut
Geschrieben am: 12.06.2003 - 11:51:14
Sowas kann eine UDF nicht.
Knut
![]() ![]() |
Re: UDF verschiedene Bereiche ändern
von: Nike
Geschrieben am: 12.06.2003 - 13:10:40
Hi,
mal einen Zellbereich an die Funktion übergeben
und dann mit offset von dieser Zelle wegrücken...
Function Scharnier(rngBezug As Range)
'rngBezug ist ein Zellbereich
' b = Kastenbreite
' a = Abstand zum Rand
' c = Abstand zwischen den Scharnieren
Dim a
Dim c
a = Range("B2").Value
Select Case rngBezug.Value
Case 1 To 800
c = rngBezug.Value - 2 * a
Scharnier = c
Case 801 To 1350
c = (rngBezug.Value - 2 * a) / 2
Scharnier = c
Case 1351 To 1800
c = (rngBezug.Value - 2 * a) / 3
Scharnier = c
Case Else
'Zwei Zellen rechts neben der Urspungszelle wird der Wert eingetragen...
rngBezug.Offset(0, 2) = "Kastenbreite |" & rngBezug.Value & "| ist nicht definiert"
End Select
End Function
Bye
Nike
![]() ![]() |
Re: UDF verschiedene Bereiche ändern
von: Rolf Buchholz
Geschrieben am: 12.06.2003 - 13:20:56
Danke Nike,
aber das funktioniert leider auch nicht.
Mit Debugger geprüft. Die Funktion wird in der Zeile
rngBezug.Offset(0, 2) = "Kastenbreite |" & rngBezug.Value & "| ist nicht definiert"
einfach beendet.
Rückgabewert ist dann #WERT!
Rolf
![]() ![]() |
Re: UDF verschiedene Bereiche ändern
von: Nike
Geschrieben am: 12.06.2003 - 13:46:55
Hi,
shit, ich glaub da hab ich mich schon mal vertan,
dan wohl eher mit ner normalen Prozedur, in etwa so:
Public Sub Scharnier()
Dim rngBezug As Range
Dim rngNeu As Range
Set rngBezug = Range("B2")
Application.Volatile
Set rngNeu = rngBezug.Offset(0, 2)
rngNeu.Address = "Kastenbreite |" & rngBezug.Value & "| ist nicht definiert"
End Sub
Bye
Nike
![]() ![]() |
Re: UDF verschiedene Bereiche ändern
von: Rolf Buchholz
Geschrieben am: 12.06.2003 - 14:18:47
Nike,
es geht nicht, trotzdem danke.
rolf
![]() |