Bereiche innerhalb einer Tabelle mit einem Faktor multiplizieren

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:

Excel - Werte Tabellen übergreifend multiplizieren
Excel – Werte Tabellen übergreifend multiplizieren

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:

Excel - Wertebereiche in  Tabellen  multiplizieren
Excel – Wertebereiche in Tabellen multiplizieren

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:

Umrechnungskurse
Umrechnungskurse

Die Änderungen in den nachfolgenden Tabellen sind analog zu dieser Änderung vorzunehmen:

Währung
Währung

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:

Umrechnung erfolgreich
Umrechnung erfolgreich

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

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert