Ich habe ein bestimmt sehr kleines aber für mich schwieriges Problem (ich
habe mit VBA kaum Erfahrungen und die Hilfe funktioniert leider nicht). Ich
will in VBA (von Excel aus) einer Zelle z.B. A4 z.B. den Wert 4,5 zuweisen.
Dieser Wert soll dann in meiner Tabelle bei A4 auch angezeigt werden. Ich
weiß nicht, ob ich irgrndeine Variable dafür definieren muß. Vieleich kann
mir jemand den (möglichst kompletten) Code für dieses Problem mailen oder
posten. Der Code soll in einer "function" verwendet werden (geht das
überhaubt??)
Im Voraus vielen Dank
Micha
die Wertzuweisung geht z.B. so:
Sub WeiseWertZu
ActiveSheet.Range("A4").Value = 4,5
End Sub
Klar geht das auch in einer Function (statt "Sub"), aber mir ist nicht klar,
was Du mit der Function beabsichtigst...
Grüße Dirk
Sub inputbox1()
Dim wert01 As String
wert01 = InputBox("Wert eingeben", "Bitte geben Sie einen Wert ein")
Range("A4").Value = wert01
End Sub
Viele Grüße
Bernd
K-UTEC.CPV schrieb:
Ich möchte im Endeffekt mit der function - Funktion 5 Eingabewerte
übernehmen, rechnen und dann 3 Ergebnisse ausgeben. Die function-Funktion
gibt ja aber immer nur ein Ergebnis aus (oder???)
By Micha
ich habe es noch nicht probiert, aber möglicherweise kannst Du einen Array
mit 3 Werten als Ausgabetyp definieren; bislang brauchte ich keine Arrays,
schau doch mal in der Online-Hilfe nach, indem Du die Schreibmarke auf das
Schlüsselwort DIM stellst und F1 drückst, danach über Datentypen (oder so
ähnlich) weiterhangeln!
5 Werte kannst Du doch an die Funktion übergeben, oder?
Wenn's klappt wird's irgendwie so aussehen:
Function Berechne(Wert1 as Single, Wert2....., Wert5 As Single) As
"ArrayTyp"
cu Dirk
PMFJI (pardon me for jumping in):
grundsätzlich darf eine Funktion nur die Zelle mit ihrem Aufruf
verändern, sonst könnt's Kuddelmuddel geben, wenn mehrere Funktionen
mit einer Zelle unterschiedliches anfangen wollen.
Für mehrere Rückgabewerte benutzt Excel sog. 'Matrixformeln',
diese fassen mehrere Zellen zu einem Ergebnisbereich zusammen.
Dies geschieht, indem vor der Eingabe der entsprechende Zellbereich
markiert und die Eingabe mit <Umschalt><Strg> abgeschlossen wird
(s. online-Hilfe).
Die Formel erscheint danach in geschweiften Klammern (diese also nicht
per Tastatur eingeben).
Hier ein Beispiel:
Function mtrxFormel(vektor1 As Range, param2 As Double) As Variant
Dim Ergeb() As Double
Dim iWert As Integer: Dim anzWert As Integer
anzWert = vektor1.Cells.Count
ReDim Ergeb(1 To anzWert, 1 To 2)
For iWert = 1 To anzWert
Ergeb(iWert, 1) = vektor1.Cells(iWert).Value * param2
Ergeb(iWert, 2) = vektor1.Cells(iWert).Value + param2
Next iWert
mtrxFormel = Ergeb()
End Function
Füge einen Aufruf dieser Formel z.B. in einen Bereich des
Tabellenblattes mit 4 Zeilen und Spalten ein und wähle für den Vektor1
einen Bereich mit 3 Zellen: dann siehst Du, daß die vordere Dimension
von 'Ergeb' die Zeilen und die hintere die Spalten beinhaltet,
in nicht errechneten Zellen erscheint #NV.
Hoffe es hilft, ansonsten melde Dich nochmal.
Hanfred