Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Differenz per VBA ausrechnen

Differenz per VBA ausrechnen
29.03.2006 13:18:43
Ronaldo
Hallo,
habe ein Problem, das ich nur mit VBA lösen möchte. Wahrscheinlich ist die Lösung für die VBA-Experten mega leicht. Also:
Mein Tabellenblatt hat 3 Spalten. A= Januar05 B=Janaur 06 C=Differenz
Die Menge der Zeilen ist unterschiedlich!
Ich muss die Spalte C (also die Differenz) per VBA ausrechnen lassen, da nicht immer die gleiche Menge an Zeilen in der Tabelle sein werden. Die Excel-Formel ist leicht und ich kann sie auch per Makro aufzeichnen. Allerdings weiss ich nicht, wie man dann sagen kann, dass die Differenz nur dann errechnet werden soll, wenn die Zellen gefüllt sind.
Ich benötige hier ein VBA-Befehl, da in den nicht gefüllten Zellen auch keine Formeln erscheinen dürfen.
Wie gesagt, wahrscheinlich ist es ein einfacher VBA-Befehl. Würde mich freuen, wenn mir jemand helfen könnte !
Vielen Dank
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Differenz per VBA ausrechnen
29.03.2006 13:24:42
Reinhard
Hi Ronaldo,
meinst du das so:?
Option Explicit
Sub tt()
Dim zei
For zei = 1 To Range("A65536").End(xlUp).Row
If Cells(zei, 1) <> "" And Cells(zei, 2) <> "" Then Cells(zei, 3) = Cells(zei, 1) - Cells(zei, 2)
Next zei
End Sub

Gruß
Reinaldo :-)
ps: Ich freue mich über eine Rückmeldung ob diese Antwort hilfreich war oder nicht..
Anzeige
AW: Differenz per VBA ausrechnen
29.03.2006 13:30:37
Ronaldo
Hallo Reinhardo ! :-)
Vielen Dank für die Antwort. Das funktioniert soweit. Allerdings löscht er mir auch die Spaltenbeschriftung "Differenz" in Spalte C. Wie kann ich das vermeiden ?
Schöne Grüße
AW: Differenz per VBA ausrechnen
29.03.2006 13:39:21
Reinhard
Hi Ronaldo,
mach aus der 1 eine 2 in
For zei = ...
Gruß
Reinhard
AW: Differenz per VBA ausrechnen
29.03.2006 13:41:29
Ronaldo
Hallo Reinhard,
jetzt funktionierts auch mit Deinem Befehl !
Auch Dir vielen Dank !
Schöne Grüße
Anzeige
AW: Differenz per VBA ausrechnen
29.03.2006 13:32:51
UweD
Hallo
so...

Sub Summe()
On Error GoTo Fehler
Dim RR%, TB1, i
Set TB1 = ActiveSheet
RR = TB1.Cells.SpecialCells(xlCellTypeLastCell).Row 'Letzte Zeile
For i = 2 To RR
If TB1.Cells(i, 1) <> "" And TB1.Cells(i, 2) Then
TB1.Cells(i, 3) = TB1.Cells(i, 2) - TB1.Cells(i, 1)
End If
Next
Fehler:
If Err.Number <> 0 Then MsgBox "Fehler: " & Err.Number & vbLf & Err.Description
End Sub

Gruß UweD
(Rückmeldung wäre schön)
Anzeige
AW: Differenz per VBA ausrechnen
29.03.2006 13:39:39
Ronaldo
Hallo Uwe,
vielen Dank, jetzt gehts ! Super !
Schöne Grüße
;
Anzeige
Anzeige

Infobox / Tutorial

Differenzberechnung in Excel mit VBA


Schritt-für-Schritt-Anleitung

Um die Differenz zwischen zwei Spalten in Excel per VBA auszurechnen, kannst du folgende Schritte befolgen:

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu: Klicke auf Einfügen > Modul.

  3. Kopiere und füge den folgenden VBA-Code ein:

    Option Explicit
    Sub BerechneDifferenz()
       Dim zeile As Long
       For zeile = 2 To Range("A65536").End(xlUp).Row
           If Cells(zeile, 1) <> "" And Cells(zeile, 2) <> "" Then
               Cells(zeile, 3) = Cells(zei, 1) - Cells(zei, 2)
           End If
       Next zeile
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel.

  5. Führe das Makro aus: Drücke ALT + F8, wähle BerechneDifferenz und klicke auf Ausführen.

Dieser Code berechnet die Differenz zwischen den Werten in den Spalten A und B und gibt das Ergebnis in Spalte C aus. Achte darauf, dass die Zeilenanzahl variabel ist.


Häufige Fehler und Lösungen

Fehler: Der VBA-Code löscht die Spaltenüberschrift in Spalte C.
Lösung: Ändere die Startzeile von 1 auf 2 im Schleifenbefehl:

For zeile = 2 To Range("A65536").End(xlUp).Row

Alternative Methoden

Falls du keine VBA-Lösung verwenden möchtest, kannst du die Differenz auch direkt in Excel mit einer Formel berechnen:

  1. Gehe zu Zelle C2.

  2. Gib die folgende Formel ein:

    =WENN(UND(A2<>""; B2<>""); A2-B2; "")
  3. Ziehe die Formel nach unten, um sie auf die restlichen Zeilen anzuwenden.

Diese Formel berechnet die Differenz nur, wenn beide Zellen gefüllt sind.


Praktische Beispiele

Angenommen, du hast folgende Werte in den Spalten:

A B C
100 80
200 150
50

Nach Ausführung des Makros oder der Formel in Spalte C erhältst du:

A B C
100 80 20
200 150 50
50

Tipps für Profis

  • Fehlerbehandlung: Füge eine Fehlerbehandlung in deinen VBA-Code ein, um unerwartete Probleme zu vermeiden:

    On Error GoTo Fehler
  • Datenüberprüfung: Stelle sicher, dass die Daten in den Spalten A und B die richtigen Datentypen haben (z.B. Zahlen), um Berechnungsfehler zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich das Makro automatisch ausführen, wenn ich neue Daten eingebe?
Du kannst das Makro in das Worksheet_Change-Ereignis einfügen, um es automatisch auszuführen, wenn die Daten geändert werden.

2. Was mache ich, wenn mein Excel nicht die gleiche Zeilenanzahl hat?
Der VBA-Code ist so konzipiert, dass er die tatsächliche Anzahl der Zeilen ermittelt, sodass du dir keine Sorgen machen musst. Er funktioniert unabhängig von der Zeilenanzahl.

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