Herbers Excel-Forum - das Archiv

UDF verschiedene Bereiche ändern

Bild

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




Bild
   Bild

Re: UDF verschiedene Bereiche ändern
von: Knut
Geschrieben am: 12.06.2003 - 11:51:14

Sowas kann eine UDF nicht.
Knut

Bild
   Bild

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

Bild
   Bild

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

Bild
   Bild

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


Bild
   Bild

Re: UDF verschiedene Bereiche ändern
von: Rolf Buchholz
Geschrieben am: 12.06.2003 - 14:18:47

Nike,

es geht nicht, trotzdem danke.

rolf

 Bild
Excel-Beispiele zum Thema "UDF verschiedene Bereiche ändern"
Verstreute Daten in verschiedenen Tabellen zusammenfassen Besuchsliste für Kunden verschiedener Kategorien führen
CommandButtons in verschiedenen Tabellen mit einem Makro Synchronisieren von Optionsfeldern in verschiedenen Blättern
Anzahl von Werten nach verschiedenen Bedingungen. Aus verschiedenen Zellwerten zusammengesetzte Webadresse aufrufen
Wert aus Optionsfelder in verschiedenen Frames auslesen Darstellung der verschiedenen Erscheinungsformen von LixtBoxes
Eintrag von Werten in verschiedene Arbeitsmappen Benutzerdefinierte SVERWEIS-Funktion über mehrere Bereiche