Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Inhalte automatisch löschen
#1
Hallo,

Ich habe ein Excel Dokument in welchem ich mir anzeigen lasse welchen Kontostand mein Girokonto täglich haben muss.
Sprich es gibt eine Spalte unterteilt in 12 Abschnitte welche wieder für jeden Tag eingeteilt ist. Die Tage liegen wie bei einem Kalender nur unter einander.
In der Spalte J Kann ich den Aktuellen Kontostand Eintragen (J24 entspricht dem 01 Januar bis J388dem 31 Dezember)
Nun möchte ich aber die eingetragenen Daten nicht jedes mal manuell löschen sondern, dass sie beim Monatswechsel automatisch gelöscht werden.
Das ganze sollte mit einem Makro Befehl eigentlich funktionieren. Nur bekomme ich es nicht hin.

Zur Info:
J24 bis J54 soll gelöscht werden wenn der Wert in A25 Falsch ist
J55 bis J82 soll gelöscht werden wenn der Wert in A56 Falsch ist
J83 bis J113 soll gelöscht werden wenn der Wert in A84 Falsch ist
J114 bis J143 soll gelöscht werden wenn der Wert in A115 Falsch ist
J144 bis J174 soll gelöscht werden wenn der Wert in A145 Falsch ist
J175 bis J204 soll gelöscht werden wenn der Wert in A176 Falsch ist
J205 bis J235 soll gelöscht werden wenn der Wert in A206 Falsch ist
J236 bis J277 soll gelöscht werden wenn der Wert in A237 Falsch ist
J278 bis J196 soll gelöscht werden wenn der Wert in A279 Falsch ist
J297 bis J327 soll gelöscht werden wenn der Wert in A298 Falsch ist
J328 bis J357 soll gelöscht werden wenn der Wert in A329 Falsch ist
J358 bis J388 soll gelöscht werden wenn der Wert in A359 Falsch ist

Wichtig ist, es sollen nur die Inhalte aber nicht dir Formatierung der Felder gelöscht werden.

Falls mir da einer weiter helfen kann wäre ich super glücklich.

Lieben Gruß Mathias
Antworten Top
#2
Schlechter Tabellenaufbau, denn schon nächstes Jahr wird es dir den Code durcheinanderwürfeln ab dem März.
Wäre mit Sicherheit eleganter mit einer 3-fach verschachtelten Schleife, war mir aber grad zu blöd, mir darüber den Kopf zu zerbrechen. Daher auf ganz pinschige Weise so:

Code:
Sub loeschen()
Dim S As Integer    'Variable für Schaltjahr

With Tabelle1    'Tabellenname ggf. anpassen
    If IsDate(.Range("I389")) And Day(.Range("I389")) = 31 Then S = 1
    If .Cells(25, 1) = "Falsch" Then .Range("J24:J54").ClearContents
    If .Cells(56 + S, 1) = "Falsch" Then .Range(.Cells(55 + S, 10), .Cells(82 + S, 10)).ClearContents
    If .Cells(84 + S, 1) = "Falsch" Then .Range(.Cells(83 + S, 10), .Cells(113 + S, 10)).ClearContents
    If .Cells(115 + S, 1) = "Falsch" Then .Range(.Cells(114 + S, 10), .Cells(143 + S, 10)).ClearContents
    'usw. usw.
End With
End Sub

Die restlichen 8 Monate kriegst du selber hin. Zur Erklärung: Ich bin für das Beispiel davon ausgegangen, dass in Spalte I das eigentliche Datum steht - musst du ggf. anpassen, Im Falle eines Schaltjahrs wird zum Bereich einfach eins dazugezählt. Abgefragt wird vorher, ob in Zelle I389 ein Datum steht und ob der Tag darin 31 ist. Wenn das so ist, handelt es sich um ein Schaltjahr.
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • ABZO
Antworten Top
#3
Dankeschön sehr lieb

Das Jahr ändert sich nicht. Soll Dauerhaft auf 2022 bleiben. Dient ja nur als persönliche Übersicht.

Lieben Gruß Mathias

Ich bekomme es leider nicht hin

Der schreibt Fehler beim Kompilieren: End sub erwartet

Kann mir vielleicht einer erklären wie ich das Makro erstelle?
Ich habe unter Entwiklertools auf Makros geklickt. Dann einen Beliebigen Namen erstellt. Auf erstellen geklickt. Nun den Code eingefügt. Sobald ich in Visual Basic for Application den Play Button drücke kommt der Fehler.

Was habe ich denn nun falsch gemacht?

Kann mir das vielleich mal einer Schritt für Schritt erklären?

Dankeschön
Lieben Gruß Mathias

Ok Fehler gefunden.
Hab die Letzte Reihe End Sub nicht kopiert.
Allerdungs funktioniert es leider nicht

Lieben Gruß Mathias
Antworten Top
#4
Funktioniert nicht ist absolut nicht hilfreich. Was funktioniert nicht, wo hapert es?
Schöne Grüße
Berni
Antworten Top
#5
Ich Kann das Makro zwar ausführen. Allerdings muss ich es zum Ausführen jedes mal starten.
Es sollte allerdings bei jeder Änderung von Wahr auf Falsch automatisch ausgelöst werden und nicht nur in dem Moment wo ich das Makro starte.
Jedes mal wenn eins Der Felder von Wahr auf Falsch wechselt sollte es ausgelöst werden.
Antworten Top
#6
Das würde ich mir an deiner Stelle GANZ GANZ GANZ genau überlegen, ob du das wirklich willst. Denn ein Zurück gibt es nicht, einmal gelöscht sind die Werte weg. Gibst du also irrtümlich mal "Falsch" ein, hast du Pech gehabt.
Schöne Grüße
Berni
Antworten Top
#7
Das macht in dem Fall nichts aus. Hier geht es um einen persönlichen Prognoseplan. Theoretisch kann der eingegebene Wert auch schon beim nächsten eingeben gelöscht sein. Es geht nur darum einen Betrag einzugeben und er zeigt mir in den Felder Rechts davon an ob mein vor Lohneingang noch im Plus steht, im Dispo Bereich oder unter dem Dispolimit liegt. Sowie den genauen betrag der dann vor Lohneingang meinen Kontostand bildet.
Ich tippe im J Feld des Entsprechenden Tages den Aktuellen Kontostand ein. Er zeigt mir im K Feld den errechneten Kontostand vor Lohneingang an und im N Feld im Ampel Schema Rot, Gelb und Grün an ob Mein Konto dann im Plus, im Dispobereich oder unter dem Limit des Dispos liegt.
Durch dieses Dokument schaffe ich es seid etwa einem halben Jahr nicht mehr mein Konto überzogen zu haben. Allerdings wäre die Automatische Löschung der J Felder noch praktisch.

Lieben Gruß Mathias
Antworten Top
#8
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim S As Integer    'Variable für Schaltjahr

If Not Intersect(Target, Range("A25,A56,A84,A115,A145,A176,A206,A237,A279,A298,A329,A359")) Is Nothing Then Exit Sub
If Selection.Count > 1 Then Exit Sub
With Tabelle1
    If IsDate(.Range("I389")) And Day(.Range("I389")) = 31 Then S = 1
    If .Cells(25, 1) = "Falsch" Then .Range("J24:J54").ClearContents
    If .Cells(56 + S, 1) = "Falsch" Then .Range(.Cells(55 + S, 10), .Cells(82 + S, 10)).ClearContents
    If .Cells(84 + S, 1) = "Falsch" Then .Range(.Cells(83 + S, 10), .Cells(113 + S, 10)).ClearContents
    If .Cells(115 + S, 1) = "Falsch" Then .Range(.Cells(114 + S, 10), .Cells(143 + S, 10)).ClearContents
    'usw. usw.
End With

End Sub
Code gehört in das Modul des betreffenden Tabellenblatts.
Schöne Grüße
Berni
Antworten Top


Gehe zu:


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