Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

WORKDAY in VBA nutzen

Forumthread: WORKDAY in VBA nutzen

WORKDAY in VBA nutzen
19.10.2012 12:39:06
Maximilian
Hallo,
ich möchte die Funktion WORKDAY in meinem VBA Code nutzen. Nun habe ich etwas gegoogelt und rausgefunden, dass ich einen Verweis auf die Datei ATPVBAEN.XLA in meinem Code einbeinden muss.
Kann mir jemand kurz sagen, wie das genau geht und wie ich das Workday dann nutze?
Danke

Anzeige

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: WORKDAY in VBA nutzen
19.10.2012 12:49:01
Sonnenpeter
Hallo,
ich denke WorksheetFunction.WorkDay-Methode funktioniert auch mit Office 2003?
Gruß SP

AW: WORKDAY in VBA nutzen
19.10.2012 12:53:04
hary
Hallo
Wechseln zum Visual Basic-Editor
Extras/Verweise
"atpvbaen.xls" Haken setzen
OK
gruss hary

AW: WORKDAY in VBA nutzen
19.10.2012 13:05:20
Maximilian
Funktioniert irgendwie nicht :-( ....
Private Sub CommandButton1_Click() TextBoxBis.Text = WorksheetFunction.Workday(CDate(TextBoxVon.Text), 0, 5) End Sub

Anzeige
und Weekday ?
19.10.2012 13:11:16
Matthias
Hallo Maximilian
Wenn Du nur den Wochentag prüfen willst, kannst Du es mal so probieren
Tabelle1

 AB
1Fr. 19.10.2012Wochentag
2Sa. 20.10.2012 
3So. 21.10.2012 
4Mo. 22.10.2012Wochentag
5Di. 23.10.2012Wochentag
6Mi. 24.10.2012Wochentag
7Do. 25.10.2012Wochentag
8Fr. 26.10.2012Wochentag
9Sa. 27.10.2012 
10So. 28.10.2012 
11Mo. 29.10.2012Wochentag


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Code:
Dim x&
For x = 1 To 11
If Weekday(Cells(x, 1), vbMonday) 

Anzeige
AW: und Weekday ?
19.10.2012 13:12:54
Maximilian
ich brauche ab dem Tag X den fünften Wochentag, also ubnedingt Workday("01.01.2012",0,5)

Nachgefragt ...
19.10.2012 13:19:51
Matthias
Hallo
Meinst Du so?
Tabelle1

 AB
1Fr. 19.10.2012 
2Sa. 20.10.2012 
3So. 21.10.2012 
4Mo. 22.10.2012 
5Di. 23.10.2012 
6Mi. 24.10.2012ab x 5 Wochentage
7Do. 25.10.20121
8Fr. 26.10.20122
9Sa. 27.10.2012 
10So. 28.10.2012 
11Mo. 29.10.20123
12Di. 30.10.20124
13Mi. 31.10.20125
14Do. 01.11.2012 
15Fr. 02.11.2012 
16Sa. 03.11.2012 
17So. 04.11.2012 
18Mo. 05.11.2012 
19Di. 06.11.2012 


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Wenn Tag(X) z.B Samstag ist soll der kommende Freitag als Ergebnis dienen ?
Gruß Matthias

Anzeige
AW: Nachgefragt ...
19.10.2012 13:28:39
Maximilian
richtig. ich will den wert nur berechnen. ich habe ein datum, z.b. 19.10.2012. Ich will das datum fünf werktage später, also 26.10.2012

Vorschlag
19.10.2012 13:43:06
Matthias
Hallo
Dann mach doch eine Schleife mit einer Variable(AS Long)
Zähl diese Variable hoch und wenn der Wochentag kein Sa. und kein So. ist erhöhe die Variable um +1
Wenn die Variable den Wert 5 erreicht machst Du ein Exit For
Gruß Matthias

Anzeige
AW: so?
19.10.2012 14:05:22
hary
Hallo
Teste mal. Boxen Namen anpassen.
TextBox1 = Format(WorksheetFunction.WorkDay(CDate(TextBox2.Text), 5), "DD.MM.YY")

gruss hary

AW: so?
19.10.2012 14:15:36
Maximilian
Wenn ich WorksheetFunction. mache schlägt er mir die Methode "WorkDay" nicht vor, er kennt die nicht. Ich verstehs nicht.....

Anzeige
AW: so?
21.10.2012 14:16:43
Hajo_Zi
die Funktion gibt es wohl in 2003 wohl nicht.

AW: so?
21.10.2012 17:48:15
Maximilian
verflixt. Aber in den Zellen kann ich "=WORKDAY" nutzen.... hmhmhm. dann mach ichs einfach über den umweg oder? Eine Tabelle als Formel setzen und die Value dann auslesen?
Anzeige
;
Anzeige

Infobox / Tutorial

WORKDAY in VBA effektiv nutzen


Schritt-für-Schritt-Anleitung

  1. Verweis auf die ATPVBAEN.XLA hinzufügen:

    • Öffne den Visual Basic-Editor (ALT + F11).
    • Gehe zu Extras > Verweise.
    • Setze ein Häkchen bei atpvbaen.xls und klicke auf OK.
  2. Nutzung der WORKDAY-Funktion:

    • Du kannst die WORKDAY-Funktion in deinem VBA-Code wie folgt verwenden:
      Dim result As Date
      result = Application.WorksheetFunction.Workday(DateValue("19.10.2012"), 5)
      MsgBox result
  3. Zugriff auf die Funktion:

    • Verwende WorksheetFunction.Workday oder Application.WorksheetFunction.Workday, um den fünften Werktag ab einem gegebenen Datum zu berechnen.

Häufige Fehler und Lösungen

  • Fehler 1: Methode nicht gefunden:

    • Wenn der Fehler auftritt, dass die Methode WorkDay nicht erkannt wird, stelle sicher, dass du die richtige Excel-Version verwendest. Die Funktion ist möglicherweise in älteren Versionen wie Excel 2003 nicht verfügbar.
  • Fehler 2: Falsches Datum:

    • Wenn du ein Datum als String übergibst, stelle sicher, dass es im richtigen Format vorliegt. Verwende CDate zur Konvertierung:
      Dim result As Date
      result = Application.WorksheetFunction.Workday(CDate("19.10.2012"), 5)

Alternative Methoden

  • Berechnung über Schleifen:

    • Eine alternative Methode zur Berechnung von Werktagen ist die Verwendung einer Schleife. Hier ein Beispiel:
      
      Dim startDate As Date
      Dim workdays As Long
      Dim currentDate As Date
      startDate = CDate("19.10.2012")
      workdays = 5
      currentDate = startDate

    Do While workdays > 0 currentDate = currentDate + 1 If Weekday(currentDate, vbMonday) < 6 Then ' Montag bis Freitag workdays = workdays - 1 End If Loop MsgBox currentDate


Praktische Beispiele

  • Beispiel 1: Fünfter Werktag ab einem Datum:

    Private Sub CommandButton1_Click()
       TextBoxBis.Text = Format(Application.WorksheetFunction.Workday(CDate(TextBoxVon.Text), 5), "DD.MM.YY")
    End Sub
  • Beispiel 2: Wochentag prüfen:

    • Um den Wochentag eines Datums zu prüfen, kannst du die Weekday-Funktion verwenden:
      Dim weekday As Integer
      weekday = Weekday(CDate("19.10.2012"), vbMonday)
      MsgBox "Der Wochentag ist: " & weekday

Tipps für Profis

  • Verwende Named Ranges:

    • Um deine Formeln lesbarer zu gestalten, könntest du Named Ranges in Excel verwenden. So wird die Nutzung in VBA einfacher und klarer.
  • Fehlerbehandlung einbauen:

    • Implementiere eine Fehlerbehandlung in deinem Code, um unerwartete Eingaben zu managen:
      On Error Resume Next
      result = Application.WorksheetFunction.Workday(CDate(TextBoxVon.Text), 5)
      If Err.Number <> 0 Then
      MsgBox "Bitte gib ein gültiges Datum ein."
      Err.Clear
      End If

FAQ: Häufige Fragen

1. Kann ich die WORKDAY-Funktion in Excel nutzen, wenn ich sie in VBA nicht finde? Ja, du kannst die WORKDAY-Funktion direkt in den Zellformeln von Excel verwenden, auch wenn sie in VBA nicht verfügbar ist.

2. Wie kann ich die Anzahl der Werktage zwischen zwei Daten berechnen? Verwende die Funktion NETWORKDAYS in Excel oder implementiere eine Schleife in VBA, um die Werktage manuell zu zählen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige