Hallo ich bräuchte mal etwas Unterstützung.
Ich bastle gerade eine Tabelle mit der ich Projekte überwachen möchte.
Das Ganze ist ein Sub Worksheet_Change.
Bei Änderung einer einer Zelle im definierten Bereich (Änderung des Projektfortschritts) werde automatisch in anderen Tabelleblättern Einträge vorgenommen
den Bereich definiere ich in der Zeile "Set RaBereich = Range(Cells(firstRowblock, firstColBlock), Cells(lastRowBlock, lastColBlock))"
Dann über Intersect wird geprüft ob die geänderte Zelle im definiertene Bereich liegt.
Für einen Fixen Bereich funktioniert das Ganze bisher gut, ich möchte aber nicht nur einen Zeilenblock (ist ein Projekt) RaBereich überwachen sondern nach Möglichkeit beliebig viele Projekte untereinander. Jedes Projekt hat immer 6 Zeilen, deshalb würde ich den Block immer um 6 Zeilen verschieben (firstRowblock = firstRowblock + 6 / lastRowBlock = lastRowBlock + 6)
Problem, ich weiß nicht wie ich die DoWhile/Do Until Schliefe schreiben muss damit diese so lange läuft bis RaBereich ein Treffer hat.
Wenn Es keine Schnittmenge zw. RaBereich und dem geänderten Feld (a.Adress) gibt ist der Wert von RaBereich = NOTHING
Habt ihr einen Tipp für mich?
?????Do While RaBereich Is ????
Set RaBereich = Range(Cells(firstRowblock, firstColBlock), Cells(lastRowBlock, lastColBlock))
Set RaBereich = Intersect(RaBereich, Range(a.Address))
firstRowblock = firstRowblock + 6
lastRowBlock = lastRowBlock + 6
Loop
If Not RaBereich Is Nothing Then
Application.ScreenUpdating = False
Application.EnableEvents = False
ZelleRow = ActiveCell.Row
ZelleCol = ActiveCell.Column
Tabelle2.Cells(ZelleRow, ZelleCol) = Date
Tabelle3.Cells(ZelleRow, ZelleCol) = Environ("username")
Application.ScreenUpdating = True
Application.EnableEvents = True
End If
|