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.

Datum schieben mit Befehlsschaltfläche
#1
Hallo liebe Excel-Profis
Ich hoffe, dass ihr mir helfen könnt. Da ich ein absoluter Neuling bei der VBA-Programmierung bin, komme ich leider nicht mehr weiter.
Und zwar habe ich eine Excel-Datei mit welcher ich die Produktion plane. Da ich oft den Start- und Endtermin schieben muss (gleiche Anzahl Tage ins + oder -), habe ich mir eine Befehlsschaltfläche (Button) in der Planungsdatei eingepflanzt. Mit folgendem Code funktioniert das schieben des Start- und Endtermin’s jeweils um 1 Tag.
 
Private Sub CommandButton1_Click()
Range("C4").Value = Range("C4").Value + 1
Range("D4").Value = Range("D4").Value + 1
End Sub
Private Sub CommandButton2_Click()
Range("C4").Value = Range("C4").Value - 1
Range("D4").Value = Range("D4").Value - 1
End Sub
 
Nun habe ich 2 Probleme, welche ich nicht lösen kann:
  1. Ich möchte jeweils nur 1 «+» und «-» Button haben, welcher die aktive Zeile berücksichtigt und nicht wie im Bild zwei Buttons pro Zeile / Auftrag.
  2. Die Wochenenden sollten berücksichtigt werden. D.h. wenn das Datum D4 auf einen Samstag/Sonntag fällt, muss +3/+1 gerechnet werden.


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#2
Hallo P...,

in dem Beispiel bin ich davon ausgegangen, dass die aktuellen Eintäge Werktage sind.

Code:
Private Sub CommandButton1_Click()
Dim lngZeile As Long
lngZeile = Selection.Row
If IsDate(Range("D" & lngZeile).Value) Then
    If Weekday(Range("D" & lngZeile).Value, vbMonday) = 5 Then
        Range("D" & lngZeile).Value = Range("D" & lngZeile).Value + 3
    Else
        Range("D" & lngZeile).Value = Range("D" & lngZeile).Value + 1
    End If
End If
If IsDate(Range("C" & lngZeile).Value) Then
    If Weekday(Range("C" & lngZeile).Value, vbMonday) = 5 Then
        Range("C" & lngZeile).Value = Range("C" & lngZeile).Value + 3
    Else
        Range("C" & lngZeile).Value = Range("C" & lngZeile).Value + 1
    End If
End If
End Sub
helmut

Für mich ist die Möglichkeit in Excel an Zellen und Bereichen Namen zu vergeben die wichtigste Funktionalität.
Sie macht Formeln und den VBA-code verständlicher. Für Makros gilt die Regel: "Nur über benannte Bereiche auf den Inhalt der Zellen zugreifen."
Und wofür sind Regeln da? Um nachzudenken bevor man sie bricht.





Antworten Top
#3
Vielen lieben Dank Ego :100:
Das ist mal schnell gegangen. Ein "Hoch" auf dich.

So funktionierts gut. :17:

Gibt es gute Literatur / Turtorials auf Youtube oder ähnliches wo du mir empfehlen kannst, um VBA zu erlernen?  Ist eine spannende, jedoch nicht ganz einfache Sache.

LG der Planer
Antworten Top


Gehe zu:


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