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, 5947 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 ..
Ähnliche Inhalte
Microsoft Office
gelöst Zellen mit vba verketten bis Bedingung eintritt (2)

Frage von hellas zum Thema Microsoft Office ...

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

Microsoft Office
gelöst Excel VBA In Userform Maske Text nach Eingabe löschen (1)

Frage von kluthi69 zum Thema Microsoft Office ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(11)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (26)

Frage von FA-jka zum Thema Windows 10 ...

LAN, WAN, Wireless
Brauche Hilfe: Mit (schnellem) WLAN Strecke überbrücken (23)

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

Backup
Backup Wochen- Monats- Jahressicherung (13)

Frage von Meterpeter zum Thema Backup ...