Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

VBA Kalender ohne Feiertage und Wochenenden





Frage

Hi Leute! Folgendes Problem,ich habe zwei DTPicker, in dem einen steht das Anfangsdatum in dem anderen das Enddatum. Das Datum wird dann in B10, C10, D10 usw. eingetragen. Mein Problem ist das Feiertage bzw. Wochenenden überspringer werden müssen. Hat irgendwer diesbezüglich eine Idee? Gruß AF

Antwort 1 von Saarbauer

Hallo,

da die Angaben etwas mager sind, nur ein grundsätzliche Anmerkung. Dein Problem ist für die Wochenende unter nutzung der Funktion Wochentag() lösbar, aber bei den Feiertagen wird es schwieriger, da diese entsprechend erfass werden müssen. Für feste Feiertage kein grösseres Problem. Ausserdem sind regionlae Feiertage zusätzlich zu beachten.

Könntest vielleicht eine Beispieldatei hier einstellen

http://www.netupload.de/

und Link hier hinterlegen

Gruß

Helmut

Antwort 2 von VBA_Anfänger

Hi,

kann die Datei leider aus Sicherheitsgründen nicht hochladen.

Mein Code schaut bis jetzt folgendermaßen aus.

Public Sub wert()

Dim i As Long
Dim e As Integer
Dim n As Long

Dim d As String
Dim names As String
Dim tabelle1 As String

tabelle1 = Cells(3, 1).Value



ActiveWorkbook.Sheets(tabelle1).Activate
For e = 11 To 200 Step 1

If Cells(e, 1) = Empty Then

Exit For

End If

Next e

´e = ActiveSheet.Cells(6, 1).Value
e = e - 1


´ComboBox1.Value = Empty

i = ComboBox1.Value
a = 1

For b = 11 To e Step 1

j = ActiveSheet.Cells(b, a).Value

If i = j Then
ActiveSheet.Cells(b, a).Select

Exit For
End If

Next b

t1 = DTPicker1.Value
t2 = DTPicker2.Value

ActiveSheet.Range("B10:IV10").Clear

For z = 3 To 60 Step 1

t = ActiveSheet.Cells(10, z).Value
tt = (t1 - t2)

If t = "" Then


ActiveSheet.Cells(10, 2).Select
ActiveSheet.Cells(10, 2) = t1

t3 = tt + 2

Exit For

End If


Next z

For t4 = 3 To t3 Step 1


If t4 <> t3 Then

t1 = t1 - 1
ActiveSheet.Cells(10, t4).Select
ActiveSheet.Cells(10, t4) = t1


End If
´Exit For


Next t4

t4 = t4 - 1

ActiveSheet.Cells(10, t4).Select
ActiveSheet.Cells(10, t4) = t2


For sp = 2 To 255 Step 1

If Cells(10, sp) = Empty Then
Exit For
End If

Next sp

adr = Cells(10, sp).Address

If sp > 26 Then
adr = Mid(adr, 2, 2)
Else
adr = Mid(adr, 2, 1)
End If

ActiveSheet.Range(adr & "10:IV" & e).Clear


´sp = endspalte

s = Charts.Count

For s = s To 50

If Charts.Count = 0 Then
Exit For
End If

Application.DisplayAlerts = False
Charts(s).Delete
Application.DisplayAlerts = True

Next s

d = adr

ActiveSheet.Cells(b, 1).Select
n = ActiveSheet.Cells(b, 1).Value
names = n



Charts.Add
ActiveChart.ChartType = xlLine
ActiveChart.SetSourceData Source:=Sheets(tabelle1).Range("B" & b & ":" & d & b), _
PlotBy:=xlRows
ActiveChart.SeriesCollection(1).XValues = Sheets(tabelle1).Range("B10:" & d & "10")
ActiveChart.SeriesCollection(1).Name = names
ActiveChart.Location Where:=xlLocationAsNewSheet
With ActiveChart
.HasAxis(xlCategory, xlPrimary) = True
.HasAxis(xlValue, xlPrimary) = True
End With
ActiveChart.Axes(xlCategory, xlPrimary).CategoryType = xlCategoryScale
With ActiveChart.Axes(xlCategory)
.HasMajorGridlines = False
.HasMinorGridlines = False
End With
With ActiveChart.Axes(xlValue)
.HasMajorGridlines = False
.HasMinorGridlines = False
End With
ActiveChart.HasLegend = False


m = Charts.Count
Charts(m).Select
Charts(m).Name = names
Sheets(names).Move after:=Sheets(tabelle1)

ActiveWorkbook.Sheets(tabelle1).Select
ActiveSheet.Cells(1, 1).Select

End Sub


Private Sub Ausführen_Click()
Call wert

End Sub


In A3 steht der Tabellname, in B5 bis D7 ist die Combobox über die die Nummer ausgewählt wird (A11 bis A87) und über die eine Grafik erstellt werden soll. In A11 bis A87 stehen die Nummern über die die Grafik erstellt werden soll und in B10,C10 steht das Datum. In Spalte B11 bis B87 werden jeden Tag neue Werte eingespielt und die alten verschieben sich nach C11 bis C87. Nachdem aber nur an Arbeitstagen Daten zur Verfügung stehen funktioniert das ganze leider nicht. Feiertage wären für uns Östereicher 26.10, 2.11,8.12,24.12,25.12, 26.12.

Vielleicht kannst du mir weiterhelfen.

Danke im Voraus

AF

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: