Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1376to1380
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Problem bei Monatsaddierung

Problem bei Monatsaddierung
13.08.2014 16:26:54
Thomas
Hallo zusammen,
ich würde gerne eine Schaltfläche erzeugen, die auf Knopfdruck Monate hinzuaddiert und immer auf das Monatsende springt.
Leider schaffe ich es nur, die Monate hochzuzählen. Sobald Feburar erreicht ist und der 28. drinnen steht tut sich allerdings nichts mehr in die andere Richtung :(
Habt ihr da eine Idee?
Hier mein Versuch, allerdings funktioniert es so nicht. Dabei wird nämlich auch vom 28.Feburar subtrahiert.
  • Private Sub AbschlussWartung_Click()
    l = Cells(a, 2)
    m = Cells(a, 13)
    n = Cells(a, 4)
    k = MsgBox("Sicher das die Wartung abgeschlossen ist?", vbYesNo + vbQuestion, "Wartung abschließ _
    en")
    If k = vbNo Then
    Exit Sub
    Else
    Worksheets("Datenbank").Activate
    With ActiveSheet
    dtnewdate = DateAdd("m", m, l)
    Cells(a, 2) = dtnewdate
    End With
    With ActiveSheet
    ' nur Tage anpassen, wenn schaltjahr(februar) oder 6 monatige Prüfung
    If Month(n) + Cells(a, 13) = 1 Or 3 Or 5 Or 7 Or 8 Or 10 Or 12 Then
    o = DateSerial(Year(n), Month(n) + Cells(a, 13), Day(n) - 1)
    Cells(a, 4) = o
    End If
    If Month(n) + Cells(a, 13) = 4 Or 6 Or 9 Or 11 Then
    o = DateSerial(Year(n), Month(n) + Cells(a, 13), Day(n) - 2)
    Cells(a, 4) = o
    End If
    If Month(n) + Cells(a, 13) = 2 Then
    o = DateSerial(Year(n), Month(n) + Cells(a, 13), Day(n) - 5)
    Cells(a, 4) = o
    End If
    With ActiveSheet
    e = Columns(1).Find(What:=ListBox1.Text, LookAt:=xlWhole).Row
    Wartung.Text = Cells(e, 2).Value
    End With
    With ActiveSheet
    f = Columns(1).Find(What:=ListBox1.Text, LookAt:=xlWhole).Row
    KarenzWartung.Text = Cells(f, 4).Value
    End With
    i = MsgBox("Änderungen gespeichert!", vbOKOnly, "Änderungen übernommen")
    Exit Sub
    End With
    End If
    End Sub
    


  • Vielen Dank schonmal!
    Gruß
    Thomas

    6
    Beiträge zum Forumthread
    Beiträge zu diesem Forumthread

    Betreff
    Datum
    Anwender
    Anzeige
    AW: Problem bei Monatsaddierung
    13.08.2014 18:10:29
    Tino
    Hallo,
    versuch mal zu erklären was Du genau machen willst, am besten an einer Beispieldatei.
    Dein Code läuft bei mir so überhaupt nicht,
    keine Variablen deklariert, keine Werte zugeordnet usw…
    Gruß Tino

    AW: Problem bei Monatsaddierung
    13.08.2014 18:44:24
    Thomas
    Hi,
    sorry, dass ich mich so kompliziert und ungenau ausgedrückt habe :(
    ich arbeite gerade an einer Übersichtsliste für unsere Geräte auf der Arbeit.
    Diese werden zum Teil jährlich, halbjährlich oder in einem anderen Zeitraum gewartet.
    Ich würde gerne einen Button einbauen, der nach Abschluss der Wartung in einer Textbox automatisch auf das nächste Wartungsdatum springt. Außerdem haben wir ein Karenzdatum (also bis wann die Wartung spätestens erledigt sein soll), dafür habe ich auch eine Textbox (hier ist das Problem mit dem Monatsende). Hier soll das gleiche passieren.
    https://www.herber.de/bbs/user/92082.xlsm
    Wäre echt cool, wenn mir da jemand weiter helfen könnte.
    Falls weitere Fragen sind, ich versuche mich so schnell und präzise wie möglich auszudrücken.
    Vielen Dank!
    Ich habe mal die wesentlichen Felder in eine neue Datei kopiert und angefügt.

    Anzeige
    AW: Problem bei Monatsaddierung
    13.08.2014 19:16:56
    Tino
    Hallo,
    wenn du den letzten Tag im Monat haben willst, könntest Du es so versuchen.
    Beispiel:
    Dim nDate As Date
    nDate = CDate(TextBox2)
    'letzter Tag im Monat
    nDate = DateSerial(Year(nDate), Month(nDate) + 1, 0)
    
    Dein Code in Deiner Tabelle läuft bei mir immer auf Fehler?!
    Gruß Tino

    AW: Problem bei Monatsaddierung
    13.08.2014 19:19:16
    Thomas
    Ja, bei mir läuft er ja auch auf Fehler. Deshalb hab ich ja um Hilfe gebeten, aber ich versuchs jetzt nochmal.
    Danke!
    Falls du noch weitere Eingebungen hast, bin nicht abgeneigt ;-)

    AW: Problem bei Monatsaddierung
    13.08.2014 19:45:46
    Tino
    Hallo,
    hier mal ein Code der das Datum vom Monatsende einträgt!
    kommt als Code in UserForm1
    Option Explicit 
     
    Private Sub UserForm_Activate() 
        With ActiveSheet 
            TextBox1.Text = Cells(2, 2).Value 
            TextBox2.Text = Cells(2, 4).Value 
        End With 
    End Sub 
     
    Private Sub CommandButton1_Click() 
    Dim DateWartung As Date, DateKarenz As Date 
    If IsDate(TextBox1) Then 
        If IsDate(TextBox2) Then 
            DateWartung = CDate(TextBox1) 
            DateKarenz = CDate(TextBox2) 
             
            Cells(2, 2).Value = DateSerial(Year(DateWartung), Month(DateWartung) + 1, 0) 
            Cells(2, 4).Value = DateSerial(Year(DateKarenz), Month(DateKarenz) + 1, 0) 
        Else 
            MsgBox "Fehler Datum Karenzzeit" 
        End If 
    Else 
        MsgBox "Fehler Datum Wartung" 
    End If 
    End Sub 
     
    
    Gruß Tino

    Anzeige
    AW: Problem bei Monatsaddierung
    13.08.2014 19:46:27
    Thomas
    Hi,
    habe das ganze nochmal überarbeitet:
    https://www.herber.de/bbs/user/92084.xlsm
    Jetzt sollte der Code funktionieren und mein Problem klar werden.
    Wenn ich von August auf Feburar springe klappt das noch mit dem Monatsende, allerdings von Feburar auf August bleibt der 28. stehen und im Schaltjahr funktioniert das auch nicht. (Das habe ich aber auch nicht berücksichtigt, habt ihr auch hier eine Idee?)
    Noch eine Frage könnt ihr mir erklären, wo der Fehler im Code ist, da die beiden Daten nicht beim aktivieren der UserForm angezeigt werden?
    Vielen Dank, hoffe jetzt ist es verständlich.
    Gruß
    Thomas
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige