Hallo Profis, ich ersuche um Eure Hilfe:
Code Beschreibung:
- in A-Quelle Tabelle sind Produkte (ab Zeile 12) in Spalte A-Artikel Nummer Spalte B-Produkt Name
- Spalte C-Verbrauchte Menge und Spalte D-Summen Beträge
- in B-ZielTabelle wird das ganze addiert, auch ab Zeile A12, nach Lager Häuser.
- In C-LagerHaus Tabelle sind die Artikel Nummer
Der untere Code funktioniert einwandfrei.
Mein Problem ist das die alte Kopf Zeile (A1:F11) sich um eine Zeile verkürzt hat und jetzt ist die neue Kopf Zeile (A1:F10).
Und wenn eine Zeile gelöscht wird dann wird immer der erste Lager Haus übersprungen.
Meines Wissens nach (bin der Anfänger in VBA) habe ich im Code dementsprechend die Veränderung vorgenomen in Zeilen Bereich
Und es wird leider immer der erste Lager Haus übersprungen bzw. es wird nicht dazugezahlt. Da ändere ich im Code;
- Von wksB.Range("C12:D23").ClearContents nach wksB.Range("C11:D22").ClearContents
- Von iRow = 12 nach iRow = 11
- Von For iRow = 12 To 23 nach For iRow = 11 To 22
- Meine Frage an Euch habe ich noch was im SetSums2 ausgelassen?
Und mit dieser Veränderung läuft es nicht mehr richtig bzw. es wird immer der LagerHaus1 übersprungen.
Muß noch was im Code verändert werden sobald man eine Zeile (in Zeilen Bereich A1:F11) löscht dann ist der neue Kopfzeile A1:F10.?
Leider sind meine Kenntnisse in VBA noch extrem begrenzt.
Ich Danke Euch für Euer Mühen
Netten Gruß
Daniel
Sub SetSums()
Dim wksA As Worksheet, wksB As Worksheet, wksC As Worksheet
Dim iRow As Integer, iRowT As Integer
Set wksA = Worksheets("A-Quelle")
Set wksB = Worksheets("B-ZielTabelle")
Set wksC = Worksheets("C-LagerHaus")
wksB.Range("C12:D23").ClearContents
iRow = 12
Do Until Not IsNumeric(wksA.Cells(iRow, 1).Value)
iRowT = wksC.Cells(WorksheetFunction.Match(wksA.Cells(iRow, 1).Value, wksC.Columns(3), -1) _
_
, 1).Value + 2
wksB.Cells(iRowT, 3).Value = wksB.Cells(iRowT, 3).Value + wksA.Cells(iRow, 3).Value
wksB.Cells(iRowT, 4).Value = wksB.Cells(iRowT, 4).Value + wksA.Cells(iRow, 4).Value
iRow = iRow + 1
Loop
For iRow = 12 To 23
If wksB.Cells(iRow, 3).Value = 0 Then
wksB.Rows(iRow).Hidden = True
Else
wksB.Rows(iRow).Hidden = False
End If
Next iRow
End Sub