Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen

VBA Summieren mit Bedingung

Betrifft: VBA Summieren mit Bedingung von: Kelem Tursin
Geschrieben am: 29.10.2014 18:09:24

Hallo liebe Community,

ich bin mit einer Aufgabe konfrontiert, die ich leider mit meinen bescheidenen VBA-Kenntinissen nicht lösen kann. Was ich gerne erreichen möchte, ist folgendes:

Ich habe eine Bestandstabelle mit zwei Spalten. In der erten Spalte A, die beliebig viele Zeilen haben kann, habe ich die Artikelbezeichnung, in der zweiten Spalte B habe ich die dazugehörige Stückzahl. Daneben, d.h. in Spalten D und E habe ich eine weitere Tabelle, die ähnlich aufgebaut ist wie die in Spalten A und B. Nun möchte ich die erste Bestandstabelle aktualisieren können und zwar so, dass mein Makro sich die Artikelbezeichnungen aus der zweiten Tabelle anschaut, diese mit den Bezeichnungen aus der ersten Bestandstabelle vergleicht und bei Übereinstimmungen die Stückzahl aus der ersten Tabelle genau um die Stückzahl erhöht, die in der zweiten Tabelle zu finden ist.

Kurz zusammengefasst - die erste Tabelle soll einfach aktualisiert werden, indem sie sich auf die Daten aus der zweiten Tabelle bezieht (eventuell ein Update CommandButton?).

Wird die erste Tabelle aktualisiert, so sollen die Daten aus der zweiten Tabelle automatisch gelöscht werden, damit ich dort manuell erneut Daten eintragen kann, die später ebenfalls der ersten Bestandstabelle zugeordent werden können. Es wäre auch ganz toll, wenn ich mittels eines Reset-Buttons auf die Ausgangswerte in der Bestandstabelle zurückkehren könnte. Diese werden von mir manuell eingetragen. Sie sind fix und sollten einfach aktualisiert werden.

Ich hoffe, dass ich mein Problem ausführlich, jedoch nicht ganz verwirrend schildern konnte. Ich bedanke mich ganz herzlich für Ihre Hilfe im Voraus!!!

P.S: zum besseren Verständis habe ich die Excel-Datei angehängt (https://www.herber.de/bbs/user/93455.xlsx)

Vielen lieben Dank!!!

Kelem

  

Betrifft: AW: VBA Summieren mit Bedingung von: Beverly
Geschrieben am: 30.10.2014 11:22:45

Hi Kelem,

zu Teil 1:

Sub Summieren()
    Dim lngZeile As Long
    Dim lngZiel As Long
    Dim lngLetzte As Long
    lngLetzte = IIf(IsEmpty(Cells(Rows.Count, 4)), Cells(Rows.Count, 4).End(xlUp).Row, Rows. _
Count)
    For lngZeile = 2 To lngLetzte
        If Not IsError(Application.Match(Cells(lngZeile, 4), Columns(1), 0)) Then
            lngZiel = Application.Match(Cells(lngZeile, 4), Columns(1), 0)
            Cells(lngZiel, 2) = Cells(lngZiel, 2) + Cells(lngZeile, 5)
        End If
    Next lngZeile
    Range(Cells(2, 4), Cells(lngLetzte, 5)).ClearContents
End Sub
zu Teil 2: wenn du die Ausgansdaten wieder herstellen willst, musst du sie vor der Veränderung irgendwo "archivieren", denn nach dem Summieren sind die Ausgangswerte ja weg.


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: VBA Summieren mit Bedingung von: Kelem Tursin
Geschrieben am: 30.10.2014 11:46:24

Vielen Dank, Beverly!!!

Ich werde jetzt versuchen den Code nachzuvollziehen!

Was mir gerade einfällt.. Wenn ich die Ausgangsdaten archivieren muss, und das mach ich auf jeden Fall, könnte ich da nicht die Zahlen, die durch Addition aktualisiert werden, durch Subtraktion anschließend auf die Ausgangswerte zurückbringen? Obwohl, wenn ich beispielsweise 2-3 mal hintereinander ein Update durchführe, müsste ich das mehrmals subtrahieren, oder? War nur ein Vorschlag, ich habe nicht so viel Wissen wie schwer das bei der Umsetzung ist. Sprich, wenn das extrem schwierig sein sollte, kann ich mir das auch erspraren. Aber Deine Meinung würde mich schon interessieren :)

Vielen Dank für den Code! Ich weiß deine Hilfe zu schätzen!

Gruß
Kelem


  

Betrifft: AW: VBA Summieren mit Bedingung von: Beverly
Geschrieben am: 30.10.2014 12:08:42

Hi Kelem,

du kannst - aus meiner Sicht - 2 Wege gehen: 1. du archivierst die Ausgangsdaten (irgendwo im Tabellenblatt), damit du sie wieder zurückholen kannst, oder 2. du archivierst (irgendwo im Tabellenblatt) die Summe der Werte, die du zu den Ausgangsdaten addiert hast, damit du am Ende diese von den Enddaten subtrahieren kannst. Wesentlich einfacher ist Variante 1.


GrußformelBeverly's Excel - Inn


  

Betrifft: AW: VBA Summieren mit Bedingung von: Kelem Tursin
Geschrieben am: 30.10.2014 12:29:18

Hi, Beverly!

Danke! Ich werde mich für die Variante 1 entscheiden :) Danke für Deine Hilfe!


 

Beiträge aus den Excel-Beispielen zum Thema "VBA Summieren mit Bedingung"