Excel verschwinden

... komplette Frage anzeigen

1 Antwort

am einfachsten mit VBA. Das geht so:

Du drückst die Tastenkombination "ALT + F11" damit kommst du in den VBA Editor. Wenn Du links schaust, siehst du in einer Exploreransicht einen Knoten "Diese Arbeitsmappe" da klickst Du drauf, dann erscheint ein Fenster: Wenn Du alles richtig gemacht hast steht da oben:

(Allgemein) und (Deklarationen)

Bei der Kombobox wo "Allgemein steht" gehst Du auf "Workbook" dann sollte sich eine Sub "Open" erstellen wo du den Code einfügen kannst.

hier der Code den Du noch anpassen musst (schnell und schmutzig):

Private Sub Workbook_Open()

If Date = "01.01.2014" Then

ActiveSheet.Rows(1).Delete

End If

End Sub

Wenn es für jedes jahr gehen sollte musst du natürlich etwas trickreicher sein als ich hier.

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von Iamiam
27.08.2013, 23:06

@Hahle:
"die 1 in den zellen" : Was sind das für Einsen? Doch keine Zeugnisnoten? sind die eingetragen worden? und wozu dienen sie? sind es Formelergebnisse? Und warum löscht Du sie nicht einfach raus mit Entf (Delete)?

@ geri3d: dieser Code löscht beim Öffnen im Neuen Jahr die erste Zeile, bei jedem Öffnen wieder. Beides dürfte nicht erwünscht sein: Weder das Löschen der Zeile als Zeile noch das bei jedem Öffnen wieder. Das wäre gefährlich. Wenn, dann müsste das heissen

ActiveSheet.Rows(1).Entirerow.clear
oder
Selection.clear
oder
Worksheets("Tabelle15").Range("A2:K5").clear

(oder nur .clearcontents, wenn die Formate bleiben sollen). Aber auch das würde bei jedem Öffnen wiederholt. Ist allerdings nicht ganz so gefährlich, weil es sich auf das Leeren der adressierten Zellen beschränkt, die werden dadurch aber immerhin unbrauchbar.

Wegen obiger Fragen kann ich aber leider keine positive AW geben.

Normalerweise setzt man ein Flag, sprich, man schreibt nach erfolgter Aktion in eine definierte Zelle einen Eintrag, und wenn der abgefragt wird, "merkt" das Makro, dass die Aktion schon erledigt ist und stoppt. Würde hier heissen: Benenne eine Zelle als "Grenze", schreib dahinein das Datum, wann gelöscht werden soll, und lösche diese Zelle durch das Makro gleich mit. Dann fehlt der Eintrag, das Makro macht entweder einen Fehler oder- wenns richtig programmiert ist, steigt sofort wieder aus.
Beispiel:

    Private Sub Workbook_Open()  

    If Names("Grenze").value < today And Names("Grenze").value > 0 Then  

    ActiveSheet.Range("A2:K5").clear

        Names("Grenze").clearcontents  

        end if

        End Sub

Du kannst dann jedes Jahr wieder den 1.1.JJJJ (oder ein anderes Datum) als neues Grenzdatum einsetzen, nach dessen Erreichen alles im genannten Bereich gelöscht wird.

1

Was möchtest Du wissen?