Entwickeln gegenseitiger Konvertierungsformeln (Microsoft Excel)
Jeremy warf ein Problem auf, das auf zwei Zellen basiert, A1 und C1. Diese Zellen sind so ausgelegt, dass sie Zoll bzw. Millimeter enthalten.
Jeremy möchte, dass jemand einen Wert in A1 eingibt und dieser in C1 in Millimeter umgerechnet wird. Umgekehrt könnten sie in C1 einen Wert eingeben, der in A1 in Zoll umgewandelt wird.
Die Konvertierung ist natürlich nicht das eigentliche Problem. Das Problem ist, dass, wenn jemand einen Wert in A1 eingibt, dieser Wert jede Formel überschreibt, die sich möglicherweise in dieser Zelle befindet, und bedeutet, dass ein nachfolgender Wert, der in Zelle C1 eingegeben wird, nicht die erforderliche Konvertierung in dem zuvor überschriebenen A1 ergibt.
Es gibt verschiedene Möglichkeiten, wie dies angegangen werden kann. Wenn es Ihnen nichts ausmacht, Ihr Arbeitsblattdesign um zwei weitere Zellen zu erweitern, können diese Zellen ausschließlich für die Eingabe und die Zellen A1 und C1 ausschließlich für die Ausgabe verwendet werden. Eine der Eingabezellen könnte den zu konvertierenden Wert enthalten, und die andere könnte die Maßeinheit des Eingabewerts enthalten (z. B. in oder mm).
Wenn Sie sich wirklich auf zwei Zellen beschränken möchten, müssen Sie natürlich Makros verwenden, um die eigentliche Konvertierung durchzuführen. Sie können ein Arbeitsblattereignis verwenden, das jedes Mal ausgelöst wird, wenn ein Zellenwert geändert wird, und der Ereignishandler kann überprüfen, ob die zu ändernde Zelle entweder A1 oder C1 ist. Das folgende Makro gibt ein Beispiel dafür, wie dies funktionieren könnte:
Private Sub Worksheet_Change(ByVal Target As Range) Application.EnableEvents = False With ActiveSheet If Target = .[A1] Then .[C1].Value = .[A1].Value * 25.4 ElseIf Target = .[C1] Then .[A1].Value = .[C1].Value / 25.4 End If End With Application.EnableEvents = True End Sub
Beachten Sie, dass Sie in den Zellen A1 oder C1 keine Formeln haben müssen. Die Formeln befinden sich im Makro selbst. Wenn sich Zelle A1 ändert (Zoll werden vom Benutzer eingegeben), wird der Wert in Zelle C1 vom Makro geändert. Wenn sich in Zelle C1 etwas ändert (Millimeter werden vom Benutzer eingegeben), wird der Wert in Zelle A1 ebenfalls vom Makro geändert.
Eine Änderung in einer anderen Zelle als A1 oder C1 wird vom Makro ignoriert.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (9581) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: