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, 5850 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
Router & Routing

192.168er Adresse im öffentlichen Netz

(2)

Erfahrungsbericht von visco-c zum Thema Router & Routing ...

Ä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 ...

Datenbanken
Access 2010 - Filter für Datum funkioniert nicht VBA (4)

Frage von Dr.Cornwallis zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Zusammenarbeit
Als Administrator im Großraumbüro (29)

Frage von Dopamin85 zum Thema Zusammenarbeit ...

Exchange Server
Test-ActiveSyncConnectivity Error nach neuem Zertifikat (22)

Frage von Driphex zum Thema Exchange Server ...

Hyper-V
HYPER V und USB (16)

Frage von Hendrik2586 zum Thema Hyper-V ...

SAN, NAS, DAS
Backupserver für KMU (14)

Frage von Leo-le zum Thema SAN, NAS, DAS ...