Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

text verschwindet in zelle nach bestimmter zeit ?





Frage

ist es möglich, dass in einer zelle ein text nach einer bestimmten zeit automatisch gelöscht wird ? mfg ponscho

Antwort 1 von coros

Moin Ponschonovi ,

da musst Du schon mal etwas genauer deklarieren, was Du mit

Zitat:
bestimmten zeit


meinst. Anzahl wie oft die Datei geöffnet wurde, ein Datum, abgelaufene Tage, oder, oder, oder? Ansonsten kann man nur sagen, ja das ist möglich.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 2 von Ponschonovi

in spalte B habe ich texte stehen unter anderem "neu".
und "neu" soll nach 3 wochen (21 tagen) auto matisch verschwinden ohne das ich es per hand löschen muss…

Antwort 3 von coros

Hi Ponschonovi ,

was soll man mit solch kurzen Antworten und entsprechend wenig Infos anfangen. Du hättest ja wenigstens noch irgendwie schreiben können, ob Du die Eingabe in Spalte B schon Zeitlich erfasst.

Kopiere nachfolgenden Code in das VBA Projekt "DieseArbeitsmappe".

Private Sub Workbook_Open()
Dim Letzte_Zeile As Long, Wiederholungen As Long
Application.EnableEvents = False
Letzte_Zeile = Sheets("Tabelle1").Range("B65536").End(xlUp).Offset(1, 0).Row
For Wiederholungen = 1 To Letzte_Zeile
If Date - Sheets("Tabelle1").Cells(Wiederholungen, 256) >= 21 Then
Sheets("Tabelle1").Cells(Wiederholungen, 2).ClearContents
End If
Next
Application.EnableEvents = True
End Sub


Dieser Code prüft beim Öffnen der Datei über eine Schleife, ob die Datumswerte in Blatt "Tabelle1" in Spalte IV älter sind als 21 Tage. Sind sie älter als die 21 tage, wird der Wert in der gleichen Zeile in Spalte B gelöscht. Damit der Datumswert überprüft werden kann, ist natürlich Bedingung, dass in Spalte IV die Datumswerte eingetragen werden, wenn in Spalte B ein Eintrag getätigt wird. Entweder machst Du das per Hand oder Du läßt das mit nachfolgendem Code automatisch erledigen. Der VBA Code muss in das VBA Projekt der tabelle kopeirt werden, in der die Werte in Spalte B geprüft und gelöscht werden sollen.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 Then
Cells(Target.Row, 256) = Date
End If
End Sub


Der Code prüft nach jeder Eingabe, ob eine Eintragung in Spalte B vorgenommen wurde. Wurde ein Eintrag in Spalte B vorgenommen, wird in der gleichen zeile in Spalte IV das aktuelle Datum eingetragen.

Ich hoffe, Du kommst klar. Sollte das nicht das richtige sein, dann solltest Du schon etwas mehr schreiben. Wenn Du dann sowieso am schreiben bist, kannst Du auch gleich ein Hallo am Anfang und einen Gruß ans Ende setzen. Mit den beiden Worten sieht so ein Beitrag gleich viel netter aus.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 4 von Ponschonovi

hallo coros,

*rotwerd*
eigentlich bin ich ja ein ganz netter und höfflicher, entschuldigung !
vorhin war ich auf dem sprung, musste meinen vaterpflichten nachkommen, deswegen schnell eingetippt und deswegen hallo und gruss vergessen ;o)… sorry…

da ich in VBA nicht der hellste bin wusste ich nicht, welche angaben nötig sind. aber du hast recht, da hätte sogar ich drauf kommen können zwecks "zeitlicher erfassung".

deine makros funktionieren perfekt, danke dafür !

kann man diese auch nur auf das wort neu (wie oben angegeben ;o) beschränken ? sonst löscht er mir alles in der spalte.

mfg
Ponscho

Antwort 5 von coros

Hi Ponscho,

wenn Du das nur auf das Wort "Neu" begrenzen möchtest, dann sieht der Code für das Workbook_Open Ereignis folgendermaßen aus:

Private Sub Workbook_Open()
Dim Letzte_Zeile As Long
Application.EnableEvents = False
Letzte_Zeile = Sheets("Tabelle1").Range("B65536").End(xlUp).Offset(1, 0).Row
For Wiederholungen = 1 To Letzte_Zeile
If Date - Sheets("Tabelle1").Cells(Wiederholungen, 256) >= 21 _
And Sheets("Tabelle1").Cells(Wiederholungen, 2) = "Neu" Then
Sheets("Tabelle1").Cells(Wiederholungen, 2).ClearContents
End If
Next
Application.EnableEvents = True
End Sub


Tausche den alten gegen den neuen Code aus und es sollten Dir nur die Zelleninhalte der Zellen gelöscht werden, in denen das Wort "Neu" steht und die älter als 21Tage sind.

Ich hoffe, so hast Du es gemeint. Ansonsten, weißt ja, melde Dich.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.

Antwort 6 von Ponschonovi

n´ abend coros,

perfekt genial ;o)

hiermit danke ich dir und allen die uns "nicht VBA´ler" so aufopferungsvoll und voller hingabe helft und eure zeit opfert ohne jegliche gegenleistung.

ihr seid einfach dufte…

mfg
Ponscho

Antwort 7 von coros

Moin Ponscho,

freut mich, dass Du mit den Lösungen etwas anfangen konntest. Danke Dir auch für die Rückmeldung.

MfG,
coros
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein
Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.