juweee
Goto Top

Formelergebnis in Variable speichern

Moin,

Ich bastel gerade an einem Excelvorlage zum Erstellen eines rudimentären Dienstplan.
So habe ich z.B. in Tabelle 1 A1 eine "Liste" mit Früh, Spät, Frei. In Tabelle 2 stehen die passenden Zeiten dazu.
Nun möchte ich in der z.B. "Früh" auswählen und in die jeweils aktive Zelle die passende Zeit schreiben.
Diese hole ich mir mit SVerweis.
Das Makro löse ich, wider besseren Wissens, mit F2 aus. Ein bessere Lösung ist mir nicht eingefallen.

Im Modul1 habe ich:
Sub WriteVal()

Dim oVal As Variant
Dim rAC As Range

Set rAC = ActiveCell

    oVal = Application.Evaluate("=SVERWEIS(Tabelle1!A1;Tabelle2!A1:B3;2;FALSCH)")  
    rAC.Value = oVal
   
Set rAC = Nothing

End Sub

Unter "Arbeitsmappe" hab ich das eingedost:
Private Sub Workbook_Open()
Application.OnKey "{F2}", "WriteVal"  
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Application.OnKey "{F2}"  
End Sub

Grundsätzlich funktioniert das soweit, außer daß ich beim Auslösen des Makros in der aktiven Zelle ein #WERT! erhalte.
Was mache ich falsch bzw. gibt es hierfür einen anderen Lösungsweg?

Lieben Dank im Voraus und Grüße,
Juweee

Content-Key: 340856

Url: https://administrator.de/contentid/340856

Printed on: April 23, 2024 at 18:04 o'clock

Member: Juweee
Juweee Jun 18, 2017 at 09:52:08 (UTC)
Goto Top
 '=SVERWEIS(Tabelle1!A1;Tabelle2!A1:B3;2;FALSCH)  
    oVal = Application.WorksheetFunction.VLookup(Tabelle1.Range("A1"), Tabelle2.Range("A1:B3"), 2, FALSCH)  

So klappt's dann wie gewünscht face-smile