Thema Datum  Von Nutzer Rating
Antwort
04.08.2011 15:52:35 Werner
NotSolved
Blau Zelle A1 und B1 Löschen wenn der Inhalt in Zelle C1 geändert wird
07.08.2011 11:05:21 Holger
Solved

Ansicht des Beitrags:
Von:
Holger
Datum:
07.08.2011 11:05:21
Views:
631
Rating: Antwort:
 Nein
Thema:
Zelle A1 und B1 Löschen wenn der Inhalt in Zelle C1 geändert wird

Hallo Werner,

es ist nicht klar, ob du diese Änderungen in Spalte C herbeiführst.

Erzeugst du sie unmittelbar oder durch eine externe Verknüpfung, kannst du einfach das Worksheet-Change-Ereignis auswerten:

In einem Modul definierst du: public c_alt()

Im Code der relavanten Tabelle legst du an:

Private Sub Worksheet_Activate()
lz = Cells(Rows.Count, 3).End(xlUp).Row
ReDim c_alt(lz)
For i = 1 To lz
    c_alt(i) = Cells(i, 3)
Next i
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("c1:c50")) Is Nothing Then
    If c_alt(Target.Row) <> Cells(Target.Row, 3) Then
        Cells(Target.Row, 1) = ""
        Cells(Target.Row, 2) = ""
        c_alt(Target.Row) = Cells(Target.Row, 3)
    End If
End If
End Sub

Wenn diese Änderung aber durch eine Formel in C1 bis C50 oder durch ein anderes Makro erfolgt, funktioniert das nicht. Dann kannst du den Bereich dauernd überwachen. Das belastet aber die CPU!

Im Code der Tabelle oder unter anderem Namen in einem Modul. Das Makro läuft so lange, die das Workbook geladen ist oder Strg+Pause gedrückt wird.

Private Sub Worksheet_Activate()
WBN = ActiveWorkbook.FullName
lz = Cells(Rows.Count, 3).End(xlUp).Row
Do While WBN = ActiveWorkbook.FullName
    ReDim c_alt(lz)
    For i = 1 To lz
        c_alt(i) = Cells(i, 3)
    Next i
    Do While WBN = ActiveWorkbook.FullName
        lza = lz
        lz = Cells(Rows.Count, 3).End(xlUp).Row
        If lza <> lz Then
            Cells(lz, 1) = ""
            Cells(lz, 2) = ""
            Exit Do
        End If
        For i = 1 To lz
            If c_alt(i) <> Cells(i, 3) Then
                Cells(i, 1) = ""
                Cells(i, 2) = ""
                c_alt(i) = Cells(i, 3)
                Exit For
            End If
        Next i
        DoEvents
    Loop
Loop
End Sub

Gruß

Holger


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
04.08.2011 15:52:35 Werner
NotSolved
Blau Zelle A1 und B1 Löschen wenn der Inhalt in Zelle C1 geändert wird
07.08.2011 11:05:21 Holger
Solved