Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1264to1268
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

Networkday

Networkday
Thomas
Und gleich nochmal Hallo!
Ich möchte die Nettoarbeitstage berechnen mit 3 Textboxen.
TextBox1 = Beginn
TextBox2 = Ende
TextBox3 = Nettoarbeitstage.
Gibt es so eine Funktion in VBA? Hilft NettworkDays() weiter? und wie wird es angewandt in den Textboxen. Datediff hab ich ja noch geschafft. Aber bei NettworkDays() scheitere ich bis jetzt.
Werden in dieser Funktion die Feiertage autom. berücksichtigt?
vielen Danke für Eure Hilfe.
@Hajo Danke nochmal für deinen Hinweis!!!

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

Betreff
Benutzer
Anzeige
AW: Networkday
06.06.2012 19:03:07
Christian
Hallo Thomas,
ohne weitere Fehlerabfang zB. so:
Option Explicit
Private Sub CommandButton1_Click()
Dim datStart As Date
Dim datEnd As Date
datStart = CDate(Me.TextBox1.Value)
datEnd = CDate(Me.TextBox2.Value)
Me.TextBox3 = Application.NetworkDays(datStart, datEnd)
End Sub
Freie Tage musst du bei Nettoarbeitstage als 3. Argument angeben - siehe Excel-Hilfe.
Gruß
Christian
AW: Networkday
06.06.2012 21:44:23
Thomas
Hallo Christian!
Funktioniert, jedoch wenn ich die 2 Osterwochen eingebe, so werden 10 Tage angezeigt.
Eigentlich sollten es ja 8 sein. Wie kann ich denn in deiner Anweisung die Feiertage erfassen?
Kannst du mir hier weiterhelfen?
Danke
Thomas
Anzeige
AW: Networkdays
07.06.2012 07:14:26
Christian
´Hallo Thomas,
als 3. Argument kannst du der Funktion "Nettoarbeitstage" eine Liste der Feiertage übergeben.
Me.TextBox3 = Application.NetworkDays(datStart, datEnd, vntHoliday)
Die Werte von vntHoliday können zB.
1) in einer Tabelle stehen
vntHoliday = ThisWorkbook.Sheets("Tabelle1").Range("A2:A15").Value
oder
2) du schreibst die Feiertage gleich in VBA in ein Array.
vntHoliday = Array(Datum1, Datum2, etc)
Dabei müssen die Datumangaben als Zahlenwert (Long) angegeben bzw umgerechnet werden.
In beiden Fällen ist es sinnvoll, die Werte nicht statisch einzutragen, sondern das Datum von Ostern zu ermitteln und die davon abhängigen Feiertage zu berechnen - Siehe Osterformel im Archiv
Gruß
Christian
Anzeige
AW: Networkdays
07.06.2012 18:54:55
Thomas
Hallo Christian!
In einer extra Tabelle werden nun die Feiertage ausgewiesen, und zwar in ("Tabelle1").Range("B2:B15")
Aber wo soll ich nun "vntHoliday = ThisWorkbook.Sheets("Tabelle1").Range("B2:B15").Value" deklarieren?
In einem Modul?
Kannst du mir bitte noch weiterhelfen? Ich glaube ich stehe kurz vorm Ziel!
Danke!
AW: Networkdays
07.06.2012 19:53:37
Thomas
Hallo Christian!
Zur Ergänzung.
Hier ist es hinterlegt. Aber es heißt, die Value-Eigenschaft konnte nicht gesetzt werden.
Private Sub TextBox3_BeforeUpdate(ByVal Cancel As MSForms.ReturnBoolean)
If IsDate(TextBox3) Then
TextBox4 = DatePart("ww", TextBox3)
End If
Dim datStart As Date
Dim datEnd As Date
datStart = CDate(Me.TextBox1.Value)
datEnd = CDate(Me.TextBox3.Value)
vntHoliday = ThisWorkbook.Sheets("Tabelle1").Range("B2:B15").Value
Me.TextBox5 = Application.NetworkDays(datStart, datEnd, vntHoliday)
End Sub

Anzeige
AW: Networkdays
07.06.2012 22:08:39
Thomas
Hallo Christian!
Ich hab´s schon!
Me.TextBox5 = Application.NetworkDays(datStart, datEnd, Sheets("Tabelle1").Range("B2:B15"))

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige