In diesem Beispiel möchten wir Werte in definierten Bereichen mehrerer Tabellen einer Arbeitsmappe und mit einem Faktor multiplizieren.
Anforderungen:
- Die Faktor steht in jeder Tabelle in der gleichen Zelle. In unserem Beispiel ist das „C4“
- Die Anzahl der Tabellen kann variieren.
- Der Werte in dem Bereich, den wir mit dem Faktor multiplizieren möchten, ist in jeder Tabelle gleich.
Die Tabelle sieht in unserem Beispiel folgendermaßen aus:
Der Code
Option Explicit Sub BereichMultiplizieren1() Dim Bereich As Range Dim Zelle As Range Dim Faktor As Variant Dim i As Integer ' Die Tabellenblätter werden der Reihe nach, ausgehend vom letzten Tabellenblatt, durchgezählt For i = ActiveWorkbook.Sheets.Count To 1 Step -1 ' Der Bereich für die Multiplikation mit dem Faktor wird definiert Set Bereich = Sheets(i).Range("d8:g10") ' Der Faktor wird in jedem Tabellenblatt aus der Zelle C4 geholt Faktor = Sheets(i).Range("c4") ' Jede Zelle innerhalb der Excel Arbeitsmappe wird mit dem jeweiligen Faktor aus Zelle C4 multipliziert For Each Zelle In Bereich If IsNumeric(Zelle.Value) Then Zelle.Formula = Zelle.Value * Faktor End If Next Zelle Next i End Sub
Führt man das Makro aus, dann erhält man folgendes Ergebnis:
Code-Abwandlungen
Möchtet ihr den Faktor für jedes Tabellenblatt lieber manuell eingeben, anstatt diesen aus einer definierten Zelle zu holen, dann ist der Code so abzuändern.
Sub BereichMultiplizieren2() Dim Bereich As Range Dim Zelle As Range Dim Faktor As Variant Dim i As Integer ' Die Tabellenblätter werden der Reihe nach, ausgehend vom letzten Tabellenblatt, durchgezählt For i = ActiveWorkbook.Sheets.Count To 1 Step -1 ' Der Bereich für die Multiplikation mit dem Faktor wird definiert Set Bereich = Sheets(i).Range("d8:g10") ' Der Faktor wird in jedem Tabellenblatt aus der Zelle C4 geholt 'Faktor = Sheets(i).Range("c4") Faktor = InputBox("Gib den Faktor für die Multiplikation für die Tabelle " & i & "ein.") ' Jede Zelle innerhalb der Excel Arbeitsmappe wird mit dem jeweiligen Faktor aus Zelle C4 multipliziert For Each Zelle In Bereich If IsNumeric(Zelle.Value) Then Zelle.Formula = Zelle.Value * Faktor End If Next Zelle Next i End Sub
Code Abwandlung
Nehmen wir für dieses Beispiel an, dass in den jeweiligen Tabellen unterschiedliche Währungen stehen, die wir in EUR umrechnen möchten.
Die Umrechnungskurse schreiben wir alle in eine zentrale Tabelle „Umrechnung“ in unserer Arbeitsmappe und setzten diese an Stelle 1.
In unseren Tabellen fügen wir noch einen Eintrag hinzu, der die jeweilige Währungsabkürzung anzeigt.
Die Tabelle mit den Umrechnungskursen sieht folgendermaßen aus:
Die Änderungen in den nachfolgenden Tabellen sind analog zu dieser Änderung vorzunehmen:
Wir können nu in die Zellen C4 einen SVERWEIS schreiben, der uns aus unserer Tabelle „Umrechnung“ den jeweiligen Wechselkurs abholt und dann die Werte in unserem definierten Bereich damit umrechnet.
Da wir ja bereits das tolle Makro verwenden, soll der SVERWEIS auch mit Hilfe eines Makros eingefügt werden.
Sub Formelkopieren() Dim Bereich As Range Dim Zelle As Range Dim i As Integer ' Die Tabellenblätter werden der Reihe nach, ausgehend vom letzten Tabellenblatt, durchgezählt ' Da das erste Tabellenblat Umrechnung ist und dort keine Formel eingefügt werden soll, stoppen wir das Durchzählen ' der Tabellen bei der zweiten Tabelle von links For i = ActiveWorkbook.Sheets.Count To 2 Step -1 ' Fügt in jedem Tabellenblatt den SVERWEIS in die Zelle C4 ein, ausgenommen unsere Umrechnungstabelle If Sheets(i).Range("c4") = "" Then Sheets(i).Range("c4").FormulaLocal = "=SVERWEIS(c2;'Umrechnung'!c4:e14;3;0)" End If Next i ' Ruft das Makro für die Multiplikation des definierten Bereichs auf Call BereichMultiplizieren3 End Sub Sub BereichMultiplizieren3() Dim Bereich As Range Dim Zelle As Range Dim Faktor As Variant Dim i As Integer ' Die Tabellenblätter werden der Reihe nach, ausgehend vom letzten Tabellenblatt, durchgezählt ' Da im erste Tabellenblatt keine Multiplikation erfolgen soll, stoppen wir das Durchzählen ' der Tabellen bei der zweiten Tabelle von links For i = ActiveWorkbook.Sheets.Count To 2 Step -1 ' Der Bereich für die Multiplikation mit dem Faktor wird definiert Set Bereich = Sheets(i).Range("d8:g10") ' Der Faktor wird in jedem Tabellenblatt aus der Zelle C4 geholt Faktor = Sheets(i).Range("c4") ' Jede Zelle innerhalb der Excel Arbeitsmappe wird mit dem jeweiligen Faktor aus Zelle C4 multipliziert For Each Zelle In Bereich If IsNumeric(Zelle.Value) Then Zelle.Formula = Zelle.Value * Faktor End If Next Zelle Next i End Sub
Das Ergebnis unseres Makros sieht so aus:
Beispieldatei zum herunterladen
Hier könnt ihr die Beispiel-Datei mit den Makros auf euren PC herunterladen und ausprobieren. Die Datei wurde mit Excel 2010 erstellt.
➡ Bereiche innerhalb einer Tabelle mit einem Faktor multiplizieren

ist absolut technik-begeistert und großer Fan von Linux und Open Source. Raspberry Pi Bastler der ersten Stunde und nach wie vor begeistert von dem kleinen Stück Hardware, auf dem er tolle Projekte umsetzt. Teilt hier seine Erfahrungen mit Nextcloud, Pi-hole, YubiKey, Synology und openmediavault und anderen spannenden IT-Themen. Nutzt Markdown und LaTeX zum Dokumentieren seiner Projekte und Gitea zum Versionieren. Sitzt vor einem 49“ Monitor, nutzt Windows und MacOS zum Arbeiten, Linux auf seinen Servern und virtuellen Maschinen und hört dabei Spotify und MP3s und Radio-Streams über seinen RadioPi.