Wir wünschen allen Forenteilnehmern ein frohes Fest und einen guten Rutsch ins neue Jahr. x

Zellenformel(n)
#1
Hi, bin gerade am experimentieren. Aber finde darauf keine Lösung.

Immer wenn AC2 einen Wert aus der Spalte H aufweist, dann soll in AC4 für ca.5 Sekunden „erledigt“ stehen und in AC 18 ebenfalls für einen kurzen Augenblick „beendet“ stehen. Dann aber wieder aus der Zelle gelöscht werden.
Ist sowas mit einer Zellenformel möglich?

Kann mir ewer weiterhelfen?
 
Gruß und Danke Markus
Antworten Top
#2
Moin!
Nein!
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
[-] Folgende(r) 1 Nutzer sagt Danke an RPP63 für diesen Beitrag:
  • Maximus
Antworten Top
#3
ok, danke!

mit Hilfe habe ich diesen VBA Code
(kleine Änderung: AA2 soll mit der Spalte AF verglichen werden. Wenn Übereinstimmung, dann in
AA4 "erledigt" und in AA18 "beendet" für ein paar Sekunden dann wieder weg.) Klappt leider nicht.
Weiss wer warum nicht?

Gruß Markus
.xlsm   Test.xlsm (Größe: 41,7 KB / Downloads: 2)

Code:
Sub MarkAsCompleted()
    Dim ws As Worksheet
    Dim LastRow As Long
    Dim Cell As Range
    Dim TargetValue As Variant

    ' Ändern Sie den Blattnamen und den Zielwert entsprechend.
    Set ws = ThisWorkbook.Sheets("GEWINNER")
    TargetValue = ws.Range("AA2").Value

    LastRow = ws.Cells(ws.Rows.Count, "AF").End(xlUp).Row

    Dim flag As Boolean
    flag = False

    Application.ScreenUpdating = False ' Bildschirmaktualisierung deaktivieren

    For Each Cell In ws.Range("AF2:AF" & LastRow)
        If Cell.Value = TargetValue Then
            flag = True
            Exit For ' Beenden Sie die Schleife, wenn ein übereinstimmender Wert gefunden wurde.
        End If
    Next Cell

    If flag Then
        ws.Range("AA4").Value = "erledigt"
        ws.Range("AA18").Value = "beendet"
        Application.OnTime Now + TimeValue("00:00:05"), "RemoveMarkings"
    Else
        ws.Range("AA4").ClearContents
        ws.Range("AA18").ClearContents
    End If

    Application.ScreenUpdating = True ' Bildschirmaktualisierung wieder aktivieren
End Sub

Sub RemoveMarkings()
    ' Ändern Sie den Blattnamen entsprechend.
    ThisWorkbook.Sheets("GEWINNER").Range("AA4").ClearContents
    ThisWorkbook.Sheets("GEWINNER").Range("AA18").ClearContents
End Sub
Antworten Top
#4
Hallo Markus,

wenn du AC2 mit der Spalte H vergleichen möchtest, dann solltest du auch mit der "Spalte H" vergleichen
und nicht mit der "Spalte AF".

Beachte auch den Speicherort der Makros

Code:
Private Sub Worksheet_Change(ByVal Target As Range)

'Dieses Makro in das Sheets("GEWINNER")

    Dim ws As Worksheet
    Dim LastRow As Long
    Dim Cell As Range
    Dim TargetValue As Variant
    Dim flag As Boolean

    If Intersect(Target, Range("AC2")) Is Nothing Then Exit Sub
    Application.EnableEvents = False    ' Die Auto- Makros deaktivieren
    Application.ScreenUpdating = False  ' Bildschirmaktualisierung deaktivieren

    ' Ändern Sie den Blattnamen und den Zielwert entsprechend.
    Set ws = ThisWorkbook.Sheets("GEWINNER")
    TargetValue = ws.Range("AC2").Value
    LastRow = ws.Cells(ws.Rows.Count, "AF").End(xlUp).Row
    flag = False

    ' Prüfen ob AC2 (TargetValue), einen Wert aus der Spalte H enthält
    For Each Cell In ws.Range("H2:H" & LastRow)
        If Cell.Value = TargetValue Then
            flag = True
            Exit For ' Beenden Sie die Schleife, wenn ein übereinstimmender Wert gefunden wurde.
        End If
    Next Cell

    If flag Then
        ws.Range("AC4").Value = "erledigt"
        ws.Range("AC18").Value = "beendet"
        Application.OnTime Now + TimeValue("00:00:05"), "RemoveMarkings"
    Else
        ws.Range("AC4,AC18").ClearContents
    End If

    Application.EnableEvents = True     ' Die Auto- Makros wieder aktivieren
    Application.ScreenUpdating = True   ' Die Bildschirmaktualisierung wieder aktivieren

End Sub

Code:
Sub RemoveMarkings()

    ' Dieses Makro in ein eingefügtes Modul
    ' Ändern Sie den Blattnamen entsprechend.
   
    ThisWorkbook.Sheets("GEWINNER").Range("AC4,AC18").ClearContents

End Sub
Gruß Karl
Antworten Top
#5
Hallo Markus,

schreibe doch gleich, dass es bei den beiden Zellen, um verbundene Zellen geht, welche beschrieben und Zeitversetzt wieder geleert werden sollen, dazu wird (MergeArea) benötigt.
Ohne (MergeArea), erfolgt eine Fehlermeldung.

Habe dir die Datei angehängt!


Angehängte Dateien
.xlsm   Wert in verbundene Zellen eintragen und Zeitversetzt wieder löschen (mit MergeArea).xlsm (Größe: 43,19 KB / Downloads: 1)
Gruß Karl
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste