AW: Liste A nach Liste B kopieren (aktualisieren)
06.06.2006 13:43:39
fcs
Hallo Stefan,
diese Funktionalität ist im Makro enthalten und hat bei meinen Tests auch funktioniert.
Mieter mit Rückständen, die im aktuellen Monat erstmalig erscheinen, sollten in der Liste aus dem Vormonat am Ende der Liste eingefügt werden und in der Spalte "Veränderung" den Eintrag "neu" haben.
Führe das Makro im Schrittmodus aus oder markiere an der kritischen Stelle des Makros einen Haltepunkt,setzte das Makro im Schrittmodus fort (Taste F8) und beobachte was das Makro macht, wenn es den neuen erstmaligen Eintrag in die Liste Eintragen soll.
Weiter kann ich dir ohne reale Daten leider nicht helfen.
'Wohneinheiten aus aktueller Monatsliste in der Vormonatsliste suchen und Daten aktualisieren
With wksAlt
' Für die nachfolgende Zeile einen Haltepunkt setzen um zu sehen was das Makro macht.
For I = ZeileN To wksNeu.UsedRange.Row + wksNeu.UsedRange.Rows.Count - 1
' mit den nachfolgenden Code-Zeilen wird gesucht, ob ein Mieter aus der aktuellen
'Monatsliste in der Liste des Vormonats enthalten ist. Wenn nicht, dann wird am Ende der Liste
'ein neuer Eintrag mit Daten des Mieters,der erstmals Rückstand aufweist, am Ende der
'Liste eingefügt.
Set Finden = .Columns(SpID_NrA).Find(what:=wksNeu.Cells(I, SpID_NrN).Value, LookIn:=xlValues, lookat:=xlWhole)
If Finden Is Nothing Then 'Mieter hat im Vormonat keinen Rückstand
' Zeile mit Daten wird am Ende der Liste eingetragen
Zeile = .UsedRange.Row + .UsedRange.Rows.Count
.Cells(Zeile, SpID_NrA).Value = wksNeu.Cells(I, SpID_NrN)
.Cells(Zeile, 2).Value = wksNeu.Cells(I, 2) 'ObjektNr
.Cells(Zeile, 3).Value = wksNeu.Cells(I, 3) 'Mieternummer
.Cells(Zeile, 4).Value = wksNeu.Cells(I, 4) 'Mietername
.Cells(Zeile, SpRueckA).Value = wksNeu.Cells(I, SpRueckN) 'Mietrückstand
.Cells(Zeile, SpVorM).Value = 0 'Mietrückstand Vormonat
.Cells(Zeile, SpVeraend).Value = "Neu"
Else
'Wohneinheit ist in aktueller Monatsliste enthalten
Zeile = Finden.Row
'Rückstand aus Vormonat in andere Spalte eintragen
.Cells(Zeile, SpVorM).Value = .Cells(Zeile, SpRueckA).Value
'Neuen Rückstand in Tabelle eintragen
.Cells(Zeile, SpRueckA).Value = wksNeu.Cells(I, SpRueckN).Value
'Vergleich des Rückstands zum Vormonat
Select Case .Cells(Zeile, SpVorM).Value - .Cells(Zeile, SpRueckA).Value
Case 0 'keine Veränderung
.Cells(Zeile, SpVeraend).Value = "keine Veränderung"
Case Is < 0 'Rückstand zum Vormonat vorgrößert
.Cells(Zeile, SpVeraend).Value = "Rückstand hat sich vergrößert"
Case Is > 0 'Rückstand zum Vormonat verkleinert
.Cells(Zeile, SpVeraend).Value = "Rückstand hat sich verkleinert"
End Select
End If
Next
End With
wbNeu.Close SaveChanges:=False 'Datei mit Daten des aktuellen Monats wird geschlossen
wbAlt.Save 'Aktualisierte Datei wird gespeichert
End Sub
mfg
Franz