Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Datum -14 Tage





Frage

Hallo, wie hier zu sehen ist [url]www.computergate.de/excel.JPG [/url] möchte ich das Datum + Text eingeben und unten soll dann das Datum -14 Tagen + Text wieder ausgegeben werden. Der Text bleibt eigendlich immer der gleiche, nur das Datum soll geändert werden. Gibt es da eine möglichkeit??? Vielen dank für jede Hilfe!!!

Antwort 1 von cmkatz

Hallo,

so wie das aussieht, soll es wohl eine Zahlungsfrst darstellen. Bist du dir da sicher, dass es "-" 14 Tage heißen muß und nicht "+" 14 Tage??

Gruß
cmkatz

Antwort 2 von cmkatz

Hallo nochmal,

am einfachsten zu bewerkstelligen ist das mit einem VBA-Code:


Private Sub Worksheet_Change(ByVal Target As Range)
        Cells(3, 1).Select
        Selection.Value = "Text " & Cells(1, 2) - 14 & " Text"
        
End Sub


Dieser Code ist folgendermaßen in die Tabelle zu integrieren:

Unter
Extras - Makro - Visual Basic Editor
den VB-Editor öffnen.
Doppelklick auf "Tabelle1(Tabelle1)", dann dort, wo "Allgemein" steht auf "Worksheet" wechseln und obige Zeilen per Copy&Paste einfügen.

Natürlich mußt du noch die Zellen anpassen:

generell:
Cells(Reihe, Spalte) -> Cells(3,1) bedeutet dann z.B. die Zelle A3

Auch der entsprechende Text ist einzufügen. So, jedes Mal, wenn du jetzt in dem Tabellenblatt Änderungen machst, wird vom Datum in Zelle B2 (zumindest in meinem Beispiel) 14 Tage abgezogen und in der Zelle A3 mit dem "Text" ausgegeben.

Wenn du 14 Tage addieren mußt, die Zeile


        Selection.Value = "Text " & Cells(1, 2) - 14 & " Text"


entsprechend ändern:


        Selection.Value = "Text " & Cells(1, 2) + 14 & " Text"


So, ich hoffe, das war verständlich ausgedrückt.

Gruß
cmkatz

Antwort 3 von Blade2006

Das funktioniert ja wie Sahne!!!
habe da noch 2 kleinigkeiten... ;-)

Kann man bei dem Feld "Cells(3, 1).Select " ein Eingabefeld/Maske einrichten?

Das ganze soll nämlich so aussehen:
"Die Veranstalung findet statt am TT.MM.JJJJ"
also das Datum sollte wenn möglich in dem Text mit reingepackt werden (wie hier Selection.Value = "Text " & Cells(1, 2) - 14 & " Text" ) am besten wäre wie gesagt eine Maske oder sowas in die nur das Datum eingegeben wird. Ich mache das ganze für einen e.V. also muss es möglichst simple sein.....:-)

Und noch eine Frage: Ist es möglich dass wenn man auf Speichern unter... klickt, als Dateiname automatisch die Rechnungs. Nr. steht bzw. der Inhalt einer Zelle???


Und nochmal herzlichen dank für die schnelleund tolle Hilfe!!!

Antwort 4 von cmkatz

Aalso,

zu deinem ersten Problemchen:

hier ist es am Besten, du benutzt zur Datumseingabe eine sog. "Inputbox". Dazu baust auf dein Tabellenblatt einen Button (Befehlsschaltfläche) per "Steuerelement - Toolbox" und beschriftest ihn mit z.B. "Termineingabe".

Jetzt gehst du wieder in den VBA-Editor und wählst statt Worksheet diesmal "CommandButton1" aus und schreibst folgenden Code rein:


Private Sub CommandButton1_Click()
     Dim response As String
    response = InputBox("Bitte geben Sie das Datum ein:", "Veranstaltungstermin")
    
    If response = "" Then
        Call MsgBox("Bitte geben Sie ein gültiges Datum ein.")
    Else
        Cells(3, 1).Value = "Text " & response & " Text"
    End If
End Sub


zu deinem zweiten Problemchen:

Auch hier würde ich zu einem Button raten, den du aber nun mit "Speichern unter..." beschriftest.

Vorgehnsweise wie oben, "CommandButton2" auswählen und weist ihm folgenden Code zu:


Private Sub CommandButton2_Click()
    DatName = Cells(1, 1).Value
    If Len(DatName) = 0 Then
        MsgBox ("Ungültiger Dateiname: Die angegebene Zelle darf nicht leer sein!")
    Else
        ActiveWorkbook.SaveAs Filename:=DatName & ".xls"
    End If
End Sub


Hoffe, auch hier weiter geholfen zu haben.

Gruß
cmkatz

Antwort 5 von cmkatz

Nachtrag:

bei der "Speichern unter..."-Geschichte wird jetzt automatisch ins Standardverzeichnis gespeichert.

Man kann es durchaus so gestalten, dass sich dei Dialogbox öffnet, in der man den Ordner auswählen kann, dies bedarf aber weiterer Einstellungen und Codezeilen.

Wenn du möchtest, kann ich dir da etwas weiterhelfen, aber nicht mehr heut. Ich hau mich nämlich jetzt in die Falle. ;-)

Servus
cmkatz

Antwort 6 von cmkatz

Ok,

nochmal ich

nocheinmal zu deinem Speichern-Problem:

dem CommandButton2 weist du folgenden 3-Zeiler zu:


Private Sub CommandButton2_Click()
Dim Filename As String
Application.GetSaveAsFilename(Cells(1, 1).Value & ".xls", "Micrsoft Excel-Dateien (*.xls),*.xls")
End Sub


Ging wohl doch einfacher und kürzer als ich gedacht habe.

Wie gesagt, Cells() wieder einfach anpassen...

Guten Abend
cmkatz

Antwort 7 von cmkatz

Edit:

"Micrsoft" soll natürlich "Microsoft" heißen...

Wen´s interessiert:
den 3-Zeiler habe ich mir von hier geklaut. *sorry*

Gruß
cmkatz

Antwort 8 von Blade2006

Hallo, die einzelnen Funktionen laufen, wie kann ich jetzt beide Funktionen nutzen?
Einmal Datum nach klick auf Button eingbenen
dann Ausgabe des Datums + Text
und ausgabe des Datums -14 Tage + Text

Hier ein beispiel: www.computergate.de/datum.JPG

Antwort 9 von cmkatz

Hallo,

das läuft dann alles über CommandButton1:



Private Sub CommandButton1_Click()
    Dim response As Date
    response = InputBox("Bitte geben Sie das Datum ein:", "Veranstaltungstermin")
    
    If response = 0 Then
        Call MsgBox("Bitte geben Sie ein gültiges Datum ein.")
    Else
        Cells(3, 1).Value = "Text " & response & " Text"
        Cells(2, 1).Value = "Text " & response + 14 & " Text"
    End If

End Sub


Wie gesagt, Zellen anpassen.

Antwort 10 von cmkatz

sorry, "-" 14 sollte es heißen...