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

Forumthread: Multiplizieren mit VBA

Multiplizieren mit VBA
12.08.2004 23:31:29
AndréL.
Hallo Excel-Profis,
ich habe mir in den Kopf gesetzt, eine Multiplikation über einen Spaltenbereich
durchzuführen. Und zwar soll jeder Wert mit dem nächsten Wert „mal genommen“
werden. z.B. U4xU5xU6… bis U74. Das Problem ist, dass die meisten Zellen
leer sind, und deswegen funzt irgendwie keine, mir bekannte, Formel.
Zumal die zu berechnenden Zellen variabel gefüllt werden.
Also, dachte ich mir, mach es doch mit VBA!! Tolle Idee, bei meinen spärlichen
Kenntnissen. Nach drei Stunden des Suchens(Recherche) und Fummeln mit
„geklauten“ Codes, gebe ich aber nicht auf, sondern ich frage Euch.
Hat zu diesem irrwitzigen Vorhaben jemand eine Idee?
Gruß
AndréL.
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Multiplizieren mit VBA
12.08.2004 23:47:42
joel
hallo andré

Sub Multiplizieren
'multipliziert den selektierten bereich
dim c as range
dim dProdukt as double
dProdukt = 1
for each c in tabelle1.range("U4:u74")
if (isnumeric(c) AND c.value<>"") then
dProdukt =dProdukt *c.value
end if
next c
End Sub

gruss joel
ps: code nicht getestet, sollte aber funzen
Anzeige
AW: Multiplizieren mit VBA
AndréL.
Hallo Joel,
Danke für die schnelle Antwort, aber das läuft nicht.
Wo würde denn eigentlich das Ergebnis stehen?
Gruß
AndréL.
AW: Multiplizieren mit VBA
13.08.2004 00:23:59
joel
hallo andré
das ergebnis steht in der variablen dProdukt
kannst ja noch vor end sub eine zeile einfügen
tabelle1.range("U75").value = dProdukt
gruss joel
ps: was läuft sonst noch nicht? fehlermeldungen?
Anzeige
AW: Multiplizieren mit VBA
AndréL.
Hallo Joel,
jetzt habe ich im Feld U75 das Ergebnis "1".
Das ist leider nicht richtig.
Es kam vorher auch keine Fehlermeldung, es passierte einfach nichts.
Danke noch mal.
Gruß
AndréL.
AW: Multiplizieren mit VBA
13.08.2004 00:42:21
joel
hallo andré
heisst deine tabelle im vba-editor wirklich tabelle1? wenn ja, gehe den code mal schritt für schritt durch (beliebige zelle anklicken und dann mehrere male F8)
alternativ kannst du auch in der if-abfrage mal die bedingung isnumeric(c) rauslöschen
ansonsten schick mir das file schnell
gruss joel
Anzeige
habs schnell getestet, funzt bei mir
13.08.2004 00:44:45
joel

Sub Multiplizieren()
'multipliziert den selektierten bereich
Dim c As Range
Dim dProdukt As Double
dProdukt = 1
For Each c In Tabelle1.Range("a1:a10")
If (IsNumeric(c) And c.Value <> "") Then
dProdukt = dProdukt * c.Value
End If
Next c
Tabelle1.Range("A11").Value = dProdukt
End Sub

Anzeige
Suuuuper..... :-)
AndréL.
Hallo Joel,
ich bin ein Dösbaddel(sagt man so bei uns im Norden).
Natürlich läuft das. Klasse!!
Lag daran, das ich den Code einfach kopiert habe.
Bei mir war es Tabelle3.
Vielen Dank jetzt kann ich beruhigt schlafen!?
Gruß
AndréL.
AW: Suuuuper..... :-)
13.08.2004 01:04:06
joel
na dann gute nacht :-)
gruss aus der schweiz
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Multiplizieren mit VBA in Excel


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor:

    • Drücke ALT + F11, um den VBA-Editor in Excel zu öffnen.
  2. Füge ein neues Modul hinzu:

    • Klicke im Menü auf Einfügen und dann auf Modul.
  3. Kopiere den folgenden Code:

    Sub Multiplizieren()
       'multipliziert den selektierten Bereich
       Dim c As Range
       Dim dProdukt As Double
       dProdukt = 1
       For Each c In Tabelle1.Range("U4:U74")
           If (IsNumeric(c) And c.Value <> "") Then
               dProdukt = dProdukt * c.Value
           End If
       Next c
       Tabelle1.Range("U75").Value = dProdukt
    End Sub
  4. Passe die Tabellennamen an:

    • Stelle sicher, dass der Tabellenname (Tabelle1) im Code mit dem Namen deiner Tabelle übereinstimmt. Wenn deine Tabelle anders heißt, ändere den Namen im Code.
  5. Führe das Makro aus:

    • Kehre zu Excel zurück, drücke ALT + F8, wähle Multiplizieren und klicke auf Ausführen.

Häufige Fehler und Lösungen

  • Problem: Ergebnis ist "1"
    Lösung: Überprüfe, ob die Tabelle im VBA-Editor tatsächlich Tabelle1 heißt. Wenn nicht, passe den Code entsprechend an.

  • Problem: Keine Fehlermeldung, aber das Makro funktioniert nicht
    Lösung: Gehe den Code Schritt für Schritt durch, indem du eine Zelle auswählst und mehrmals F8 drückst, um zu sehen, wo der Code möglicherweise nicht wie erwartet funktioniert.

  • Problem: Leere Zellen im Bereich
    Lösung: Der Code ignoriert leere Zellen. Stelle sicher, dass es genügend numerische Werte gibt, um eine sinnvolle Multiplikation zu erzielen.


Alternative Methoden

Wenn du keine VBA-Lösungen verwenden möchtest, kannst du auch Excel-Formeln verwenden. Zum Beispiel:

  • Verwende die Funktion Produkt:
    =PRODUKT(U4:U74)

    Diese Funktion multipliziert alle Werte im angegebenen Bereich, ignoriert jedoch leere Zellen nicht.


Praktische Beispiele

  • Beispiel 1: Multipliziere die Werte in den Zellen U4 bis U10 und gebe das Ergebnis in U11 aus.

    Sub Beispiel1()
      Dim c As Range
      Dim dProdukt As Double
      dProdukt = 1
      For Each c In Tabelle1.Range("U4:U10")
          If (IsNumeric(c) And c.Value <> "") Then
              dProdukt = dProdukt * c.Value
          End If
      Next c
      Tabelle1.Range("U11").Value = dProdukt
    End Sub
  • Beispiel 2: Multipliziere die Werte in den Zellen A1 bis A10 und gebe das Ergebnis in A11 aus.

    Sub Beispiel2()
      Dim c As Range
      Dim dProdukt As Double
      dProdukt = 1
      For Each c In Tabelle1.Range("A1:A10")
          If (IsNumeric(c) And c.Value <> "") Then
              dProdukt = dProdukt * c.Value
          End If
      Next c
      Tabelle1.Range("A11").Value = dProdukt
    End Sub

Tipps für Profis

  • Nutze die Option Explicit-Anweisung am Beginn deines Codes, um sicherzustellen, dass alle Variablen deklariert sind. Das hilft, Fehler zu vermeiden.
  • Experimentiere mit verschiedenen Bereichen und Tabellennamen, um deine VBA-Fähigkeiten zu verbessern.
  • Verwende Kommentare im Code, um die Funktionsweise zu erklären und deinen Code für andere verständlicher zu machen.

FAQ: Häufige Fragen

1. Wie kann ich das Ergebnis in einer anderen Zelle anzeigen?
Ändere einfach die Zeile Tabelle1.Range("U75").Value = dProdukt auf die gewünschte Zielzelle, z.B. Tabelle1.Range("A1").Value = dProdukt.

2. Kann ich das Makro auch für andere Bereiche verwenden?
Ja, du kannst den Bereich in Tabelle1.Range("U4:U74") nach Belieben anpassen, um andere Zellen oder Bereiche zu multiplizieren.

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