Hallo liebe Forumexperten,
ich habe leider nur geringe Grundkenntnisse in VBA und habe eine Aufgabe zu erledigen.
Ich habe in einer Exceldatei eine Tabelle1 mit 2 Spalten (Hersteller und Bestand) und x Zeilen (nicht mehr als 50) und eine zweite Tabelle2 mit 3 Spalten (Datum, Hersteller und Anzahl), hier wird die Anzahl der Zeilen je nach Verbrauch fortwährend vermehrt.
Tabelle1:
Hersteller Bestand
A 1
B 3
C 2
...
Tabelle2:
Datum Hersteller Anzahl
12.05 B 2
06.06 A 1
Heute C 1
...
Nun sollte das VBA-Programm folgendes machen:
Die Spalten "Hersteller" der beiden Tabellen vergleichen und die Zeilen mit dem gleichen Index berechnen, d.h. Bestand = Bestand - Anzahl, aber unter der Bedingung, dass es gleicher Hersteller (Index/ID) ist und das Datum nicht in Vergangenheit liegt.
=> Z.B. Bestand (Hersteller A) - Anzahl (Hersteller A) und Datum von heute
=> 1 - 1 = 0, das wäre der neue Bestand, der in Tabelle1 den "alten" Bestand überschreibt.
Bisher habe ich nicht viel auf die Reihe gebracht, ich kann nur alle Zeilen berechnen und alle Zeilen vergleichen, aber der Hersteller wird nicht zugeordnet.
Sortieren der Tabelle2 ist ausgeschlossen, da diese nach Datum gepflegt ist.
Mein Code:
Private Sub CommandButton3_Click() 'Bestand aktualisieren
For i = 2 To Worksheets("Tonerbestand").UsedRange.Rows.Count
For j = 2 To Worksheets("Tonerbestand").UsedRange.Columns.Count
Worksheets("Tonerbestand").Cells(i, 3).Value = Worksheets("Tonerbestand").Cells(i, 2).Value ' _
Speichere alten Bestand in Spalte Bestand_alt
Next
Next
For i = 2 To Worksheets("Tonerbestand").UsedRange.Rows.Count
For j = 2 To Worksheets("Tonerbestand").UsedRange.Columns.Count
If Worksheets("Tonerbestand").Cells(i, 1).Text = Worksheets("Tonerausgabe").Cells(i, 1).Text _
Then
Worksheets("Tonerbestand").Cells(i, j).Value = Worksheets("Tonerbestand").Cells(i, j).Value - _
_
_
_
_
Worksheets("Tonerausgabe").Cells(i, j).Value
Else
MsgBox ("ID nicht gefunden!")
End If
Next
Next
End Sub
Ich wäre euch sehr dankbar über jegliche Hilfestellung!