Tipps & Tricks 08.11.2016, 07:00 Uhr

Excel VBA: Anzahl Dezimalstellen abhängig von Zeilentitel

Sie haben in Spalte 1 vier verschiedene Messwertbezeichnungen. Excel soll in Spalte 2 bei den Werten je nach Bezeichnung eine andere Anzahl Kommastellen verwenden. Zwei Lösungen!
Angenommen, Sie hätten «Messwert 1», den Sie immer auf vier Stellen nach dem Komma brauchen (z.B. «0.7732»), «Messwert 2» soll auf ganze Zahlen gerundet werden (z.B. «2»), der «Messwert 3» auf eine Kommastelle (z.B. «1.1») und der «Messwert 4» soll zwei Kommastellen zeigen (z.B. «2.34»). Excel soll also je nach in Spalte 1 stehender Messwertbezeichnung die Zahl in der zweiten Spalte etwas anders darstellen.
Vorausgeschickt: Das ginge grundsätzlich auch ohne Makro, und zwar mit bedingten Formatierungen. Kurzfassung am Beispiel von «Messwert 1»: Klicken Sie die oberste Zelle mit dem ersten zu formatierenden Wert an, z.B. die Zelle B2. Gehen Sie bei Start/Bedingte Formatierung zu Neue Regel/Formel zur Ermittlung der zu formatierenden Zellen verwenden. Als Formel tragen Sie ein: =$A2="Messwert 1". Klicken Sie dahinter auf Formatieren. Wählen Sie bei Zahlen/Benutzerdefiniert die Formatierung 0.0000. Immer noch in Zelle B2 geben Sie auf gleichem Weg auch die drei anderen Messwertnamen mit den zugehörigen Formaten ein. Fertig? Klicken Sie nun B2 erneut an, benutzen Sie aber jetzt im Reiter Start bei Zwischenablage den Formatierpinsel und markieren Sie danach die darunter liegenden Zellen. 
Kein Makro nötig; das packt auch eine bedingte Formatierung noch
Das kann auf Dauer etwas anstrengend sein, weil das Eintippen der Formatbedingungen halt auch wieder Zeit beansprucht. Mit einem Makro können Sie das in andere Tabellenblätter übernehmen. Passen Sie das Makro einfach bei Bedarf an die Gegebenheiten Ihrer Tabelle an.
Sub Kommastellen()
Set bereich = Range("A1:A100")
For Each zelle In bereich
If zelle = "Messwert 1" Then nf = "0.0000"
If zelle = "Messwert 2" Then nf = "0"
If zelle = "Messwert 3" Then nf = "0.0"
If zelle = "Messwert 4" Then nf = "0.00"
rz = zelle.Row
Cells(rz, 2).NumberFormat = nf
Next zelle
End Sub
Wichtig: Passen Sie in der zweiten Makrozeile den Bereich an, in dem die Namen der Messwerte liegen, hier zum Beispiel A1:A100. Anstelle von «Messwert 1», «Messwert 2» etc. stehen natürlich Ihre richtigen Messwertbezeichnungen. In der drittletzten Zeile des Makros ist mit «(rz, 2)» angegeben, in welcher Spalte Excel die Werte nach den gegebenen Kriterien runden bzw. darstellen soll.
Das Makro im VBA-Editor
Achten Sie auch darauf, dass Sie die auf Ihrem System üblichen Dezimalzeichen verwenden, also den Punkt oder – falls Sie Kommas verwenden – natürlich das Komma. (PCtipp-Forum)


Kommentare
Es sind keine Kommentare vorhanden.