Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

VBA Werktage in Zellen eintragen

Frage Entwicklung VB for Applications

Mitglied: Avalon1

Avalon1 (Level 1) - Jetzt verbinden

18.08.2010 um 20:18 Uhr, 5822 Aufrufe, 2 Kommentare

Hy

mit den Werktage ist das so eine Sache, wie man zw. 2 Datumseinträge die Werktage
auslesen kann, geht ja, aber ich bräuchte eine etwas andere Funktion,
und zwar habe ich in einem Worksheet in Zelle "A2" ein Datum stehen
von dem lese ich das Monat aus und speichere dies in eine Variable.

Jetzt hätt ich gerne dass VBA jetzt erkennt welche Tage von diesem Monat
Werktage sind und die soll mir VBA in ein anderes Worksheet in Spalte "A"
eintragen.

Dann würde eine Formel greifen die sich auf die Spalte "A" bezieht.

ich hoffe das kann man realisieren...

lg
ava
Mitglied: bastla
18.08.2010 um 20:55 Uhr
Hallo Avalon1!

Könnte etwa so aussehen:
01.
Sub Werktage() 
02.
AbZeile = 2 'erste Zeile Zieltabelle 
03.
Spalte = "A" 'Spalte Zieltabelle 
04.
Datum = Worksheets("Tabelle1").Range("A2").Value 
05.
Von = DateSerial(Year(Datum), Month(Datum), 1) 'erster Tag des Monats 
06.
Bis = DateAdd("m", 1, Von) - 1 'erster Tag des nächsten Monats - 1 = letzter Tag dieses Monats 
07.
Zeile = AbZeile 
08.
With Worksheets("Tabelle2") 
09.
    For D = Von To Bis 'Schleife für alle Tage des Monats 
10.
        If Weekday(D) <> vbSunday And Weekday(D) <> vbSaturday Then ' wenn Tag weder So noch Sa ist, ... 
11.
            .Cells(Zeile, Spalte) = D '... Datum eintragen 
12.
            Zeile = Zeile + 1 
13.
        End If 
14.
    Next 
15.
End With 
16.
End Sub
Um Feiertage musst Du Dich natürlich zusätzlich kümmern ...

Grüße
bastla
Bitte warten ..
Mitglied: 76109
19.08.2010 um 13:01 Uhr
Hallo Avalon1 und Hallo bastla!

...wobei sich die Feiertage und sonstige Ausschlusstage (Brückentage...) z.B. in Tabelle 3 Range(A2:L7) in einer Tabelle befinden könnten.

In Zeile 2 sind die Monate von 1-12 und ab Zeile 3 die Tage in den entsprechenden Monatsspalten eingetragen
A B C D E F G H I J K L
2 ##blue | 1 ## ##blue | 2 ## ##blue | 3 ## ##blue | 4 ## ##blue | 5 ## ##blue | 6 ## ##blue | 7 ## ##blue | 8 ## ##blue | 9 ## ##blue | 10 ## ##blue | 11 ## ##blue | 12 ##
3 ##red | 1 ## ##red | 2 ## ##red | 1 ## ##red | 3 ## ##red | 3 ## ##red | 1 ## ##red | 25 ##
4 ##red | 6 ## ##red | 5 ## ##red | 13 ## ##red | 26 ##
5 ##red | 24 ##
6
7
und mit diesem Code wird diese Tabelle dann auf Ausschlusstage geprüft:
01.
Const SheetHoliday = "Tabelle3" 
02.
Const RangeHoliday = "A2:L7" 
03.
 
04.
Private Function IsHoliday(ByVal Datum As Date) As Boolean 
05.
    Dim V As Variant, i As Integer 
06.
     
07.
    V = Sheets(SheetHoliday).Range(RangeHoliday).Value 
08.
         
09.
    For i = 2 To UBound(V, 1) 
10.
        If Not IsEmpty(V(i, Month(Datum))) Then 
11.
            If Day(Datum) = V(i, Month(Datum)) Then IsHoliday = True:  Exit Function 
12.
        End If 
13.
    Next 
14.
End Function
Das ließe sich dann in bastlas Codezeile 10 in etwa so mit einbinden:
... And IsHoliday(D) = False Then ....

Gruß Dieter

PS. Die Tabelle kann natürlich auch ausgeblendet werden
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
VB for Applications
gelöst Excel VBA Eine oder mehrere Zellen Verschieben (2)

Frage von batchnewbie zum Thema VB for Applications ...

VB for Applications
gelöst VBA Zellen dublizieren plus Wenn Dann Funktion (4)

Frage von grasihuepfer zum Thema VB for Applications ...

VB for Applications
gelöst Wie mittels VBA beim Import von CSV dateien das Format aller Zellen auf "Zahl" ändern? (2)

Frage von Glibber4 zum Thema VB for Applications ...

VB for Applications
Excel VBA Sortierung von Daten (4)

Frage von easy4breezy zum Thema VB for Applications ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (18)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...