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-ID: 340856

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

Ausgedruckt am: 22.11.2024 um 17:11 Uhr

Juweee
Juweee 18.06.2017 um 11:52:08 Uhr
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