Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Schleife - Zwei Zellen multiplizieren

Schleife - Zwei Zellen multiplizieren
01.07.2019 17:07:55
Georg
Hallo,
ich würde gern zwei Zellen miteinander multiplizieren.
Jedoch erhalte ich den Laufzeitfehler '13': Typen unverträglich.
Mein Code ist folgender:
For i = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
Cells(i, 5).FormulaLocal = Cells(i, 3).Value * Cells(i, 4).Value
Next
Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
bei mir kommt kein Fehler ... owT
01.07.2019 17:18:18
Matthias
AW: Schleife - Zwei Zellen multiplizieren
01.07.2019 17:21:18
onur
Wieso .FormulaLocal?
Cells(i, 5).VALUE = Cells(i, 3).Value * Cells(i, 4).Value
AW: Schleife - Zwei Zellen multiplizieren
01.07.2019 17:25:34
Daniel
Hi
in welcher Zeile des Durchlaufs tritt denn der Fehler auf?
schon beim allerersten oder erst später?
welchen Wert hat dann dein i?
Welche Werte stehen in den betroffenen Zellen?
dass du Text nicht miteinander multiplizieren kannst, sollte klar sein.
steht bei dir in Zeile 1 vielleicht eine Überschrift?
solche Aufgaben kann man oft mit Formeln besser erledigen als mit schleifen:
With Range("E1:E" & Cells(Rows.count, 1).end(xlup).row)
.FormulaR1C1 = "=RC3*RC4"
.Formula = .Value
End with
Gruß Daniel
Anzeige
AW: Schleife - Zwei Zellen multiplizieren
01.07.2019 19:29:13
Georg
Hallo,
FormulaLocal, da Kommazahlen berechnet werden.
Ich packe euch mal eine Beispiel-Datei rein. Da sollte mein Problem deutlich werden.
https://www.herber.de/bbs/user/130680.xlsx
Wenn ich per Hand in der Zelle E4 "=(44,44-0)*C4" eintippe, wird der Wert richtig berechnet.
VG
Anzeige
AW: Schleife - Zwei Zellen multiplizieren
01.07.2019 19:43:08
onur
Cells(i, 3).Value * Cells(i, 4).Value ?
Spalte 3 enthält nur einen Faktor und Spalte 4 einen Text !
Wie kommst du auf ein Ergebnis von 44,44 ?
Ausserdem: Wo ist denn dein Makro?
AW: Schleife - Zwei Zellen multiplizieren
01.07.2019 19:53:55
Georg
Neuer Versuch:
https://www.herber.de/bbs/user/130681.xlsm
Die Ergebnisse aus in der Spalte E erhalte ich durch die erste Formel.
Die auskommentierte Formel beinhaltet den Faktor (die nicht funktioniert).
Anhand dessen, dass die erste Formel funktioniert, sieht man ja das Excel sich nichts draus macht, dass Spalte D Text ist. Oder?
Anzeige
AW: Schleife - Zwei Zellen multiplizieren
01.07.2019 20:25:12
onur
Ich habe zwar keine Ahnung, wozu du die Spalte 4 (Rechenweg) brauchst, aber wenn du unbedingt das Ergebnis mit Spale 3 multiplizieren willst, dann geht es so (allerdings ist dann die Formel weg):
Sub DA11()
'Variablen definieren
Dim i As Integer
For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
Cells(i, 5).FormulaLocal = "=" & Cells(i, 4).Value
Cells(i, 5) = Cells(i, 5) * Cells(i, 3)
Next
End Sub

Wenn du aber die Formel noch brauchst - so:
Sub DA11()
'Variablen definieren
Dim i As Integer
For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
Cells(i, 5).FormulaLocal = "=" & "C" & i & "*" & Cells(i, 4).Text
Next
End Sub

Anzeige
AW: Schleife - Zwei Zellen multiplizieren
01.07.2019 20:38:03
Daniel
Hi
naja was in Spalte D steht, ist jetzt keine Zahl, die du direkt in einer Berechnung verwenden kannst, sondern ein einfacher Text.
wenn du damit Rechnen willst, hast du zwei möglichkeiten:
a) du lässt dir den Text als Formel berechnen. Innerhalb von VBA gibts dafür die Funktion EVALUATE
allerdings benötgit die dann wieder das amerikansische Zahlenformat:
    Cells(i, 5).Value = Evaluate(Replace(Cells(i, 4).Value, ",", ".")) * Cells(i, 3).Value

b) du berechnest die Formeln nicht in VBA, sondern erstellst aus der Formel in D und der Zahl in C eine entsprechende Formel für die Excelzelle:
    Cells(i, 5).FormulaLocal = "=" & Cells(i, 4).Value & "*" & Cells(i, 3).Value

Gruß Daniel
Anzeige
AW: Schleife - Zwei Zellen multiplizieren
01.07.2019 20:38:04
Daniel
Hi
naja was in Spalte D steht, ist jetzt keine Zahl, die du direkt in einer Berechnung verwenden kannst, sondern ein einfacher Text.
wenn du damit Rechnen willst, hast du zwei möglichkeiten:
a) du lässt dir den Text als Formel berechnen. Innerhalb von VBA gibts dafür die Funktion EVALUATE
allerdings benötgit die dann wieder das amerikansische Zahlenformat:
    Cells(i, 5).Value = Evaluate(Replace(Cells(i, 4).Value, ",", ".")) * Cells(i, 3).Value

b) du berechnest die Formeln nicht in VBA, sondern erstellst aus der Formel in D und der Zahl in C eine entsprechende Formel für die Excelzelle:
    Cells(i, 5).FormulaLocal = "=" & Cells(i, 4).Value & "*" & Cells(i, 3).Value

Gruß Daniel
Anzeige
AW: Schleife - Zwei Zellen multiplizieren
01.07.2019 20:38:04
Daniel
Hi
naja was in Spalte D steht, ist jetzt keine Zahl, die du direkt in einer Berechnung verwenden kannst, sondern ein einfacher Text.
wenn du damit Rechnen willst, hast du zwei möglichkeiten:
a) du lässt dir den Text als Formel berechnen. Innerhalb von VBA gibts dafür die Funktion EVALUATE
allerdings benötgit die dann wieder das amerikansische Zahlenformat:
    Cells(i, 5).Value = Evaluate(Replace(Cells(i, 4).Value, ",", ".")) * Cells(i, 3).Value

b) du berechnest die Formeln nicht in VBA, sondern erstellst aus der Formel in D und der Zahl in C eine entsprechende Formel für die Excelzelle:
    Cells(i, 5).FormulaLocal = "=" & Cells(i, 4).Value & "*" & Cells(i, 3).Value

Gruß Daniel
Anzeige
AW: Schleife - Zwei Zellen multiplizieren
01.07.2019 20:38:05
Daniel
Hi
naja was in Spalte D steht, ist jetzt keine Zahl, die du direkt in einer Berechnung verwenden kannst, sondern ein einfacher Text.
wenn du damit Rechnen willst, hast du zwei möglichkeiten:
a) du lässt dir den Text als Formel berechnen. Innerhalb von VBA gibts dafür die Funktion EVALUATE
allerdings benötgit die dann wieder das amerikansische Zahlenformat:
    Cells(i, 5).Value = Evaluate(Replace(Cells(i, 4).Value, ",", ".")) * Cells(i, 3).Value

b) du berechnest die Formeln nicht in VBA, sondern erstellst aus der Formel in D und der Zahl in C eine entsprechende Formel für die Excelzelle:
    Cells(i, 5).FormulaLocal = "=" & Cells(i, 4).Value & "*" & Cells(i, 3).Value

Gruß Daniel
Anzeige
AW: Schleife - Zwei Zellen multiplizieren
01.07.2019 19:58:19
onur
NOCH EINMAL:
Du willst Spalte 3 mit Spalte 4 multiplizieren und das Ergebnis in Spalte 5 eintragen?
Spalte 3 enthält den Faktor und Spalte 4 einen Text!
Als Excel-Profi müsstest du wissen, dass man Text NICHT mit Zahlen (oder mit sonst was) MULTIPLIZIEREN kann.
AW: Schleife - Zwei Zellen multiplizieren
01.07.2019 22:50:53
Georg
Nabend,
der Trick bestand darin, dass ich für diverse Bereinigungen die Werte als Text ausgeben lasse und vor der Berechnung in Zahlen wandele.
Besten Dank für die Hilfe.
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Zwei Zellen multiplizieren in Excel mit VBA


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und lade die Datei: Stelle sicher, dass die Daten in den Zellen korrekt eingegeben sind. Du solltest zwei Spalten haben, die multipliziert werden sollen.

  2. Öffne den VBA-Editor: Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  3. Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste auf "VBAProject (deineDatei.xlsx)" > Einfügen > Modul.

  4. Gib den folgenden Code ein:

    Sub MultipliziereZellen()
       Dim i As Integer
       For i = Cells(Rows.Count, 1).End(xlUp).Row To 2 Step -1
           Cells(i, 5).Value = Cells(i, 3).Value * Cells(i, 4).Value
       Next i
    End Sub
  5. Führe das Makro aus: Schließe den VBA-Editor und gehe zurück zu Excel. Drücke ALT + F8, wähle "MultipliziereZellen" und klicke auf "Ausführen".

  6. Überprüfe die Ergebnisse: Die Ergebnisse sollten in Spalte 5 erscheinen. Achte darauf, dass die Zellen in Spalte 3 und 4 numerische Werte enthalten, um Laufzeitfehler zu vermeiden.


Häufige Fehler und Lösungen

  • Laufzeitfehler '13': Typen unverträglich: Dieser Fehler tritt auf, wenn eine der Zellen Text anstelle einer Zahl enthält. Stelle sicher, dass in Spalte 3 und 4 nur numerische Werte stehen.

  • Formel nicht korrekt berechnet: Verwende Cells(i, 5).FormulaLocal anstelle von .Value, wenn du eine Formel in die Zelle einfügen möchtest. Zum Beispiel:

    Cells(i, 5).FormulaLocal = "=" & Cells(i, 3).Address & "*" & Cells(i, 4).Address
  • Falsches Zahlenformat: Wenn du mit Kommazahlen arbeitest, achte darauf, das richtige lokale Zahlenformat zu verwenden.


Alternative Methoden

  • Formelansatz: Anstatt VBA zu verwenden, kannst du auch eine Excel-Formel direkt in die Zelle eingeben:

    =C1*D1

    Kopiere diese Formel nach unten, um mehrere Zellen zu multiplizieren.

  • Array-Formel: Für eine schnelle Berechnung ohne VBA kannst du auch eine Array-Formel verwenden. Markiere die Zellen und gib folgendes ein:

    =C1:C10*D1:D10

    Drücke CTRL + SHIFT + ENTER, um die Formel zu aktivieren.


Praktische Beispiele

  • Beispiel 1: Multipliziere zwei Spalten, um einen Gesamtwert zu berechnen. Angenommen, Spalte C enthält die Preise und Spalte D die Mengen. In Spalte E soll das Produkt stehen:

    Cells(i, 5).Value = Cells(i, 3).Value * Cells(i, 4).Value
  • Beispiel 2: Wenn du mehrere Zellen mit einem konstanten Wert multiplizieren möchtest, kannst du den Wert in einer Zelle speichern und dann in der Schleife verwenden:

    Dim faktor As Double
    faktor = 10
    Cells(i, 5).Value = Cells(i, 3).Value * faktor

Tipps für Profis

  • Verwende Evaluate für komplexe Berechnungen: Wenn du Textformeln hast, die berechnet werden müssen, kannst du Evaluate verwenden:

    Cells(i, 5).Value = Evaluate(Replace(Cells(i, 4).Value, ",", ".")) * Cells(i, 3).Value
  • Nutze Named Ranges: Wenn du oft mit denselben Zellbereichen arbeitest, erstelle benannte Bereiche für eine bessere Lesbarkeit in deinem Code.

  • Teste in kleinen Schritten: Beginne mit einer kleinen Datenmenge, um sicherzustellen, dass dein Code wie gewünscht funktioniert, bevor du ihn auf große Datenmengen anwendest.


FAQ: Häufige Fragen

1. Wie multipliziere ich mehrere Zellen gleichzeitig?
Du kannst eine Schleife verwenden, um mehrere Zellen zeilenweise zu multiplizieren, oder eine Array-Formel, um dies in einem Schritt zu erledigen.

2. Was tun, wenn ich mit Text und Zahlen arbeite?
Stelle sicher, dass du nur mit numerischen Werten rechnest. Wenn du Text hast, der in Zahlen umgewandelt werden muss, kannst du Val() oder Evaluate verwenden.

3. Kann ich VBA verwenden, um mehrere Spalten zu multiplizieren?
Ja, du kannst die Schleife so anpassen, dass sie mehrere Spalten gleichzeitig behandelt, indem du die entsprechenden Zellreferenzen im Code änderst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige