Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA Zellinhalte löschen mit mehreren Bedingungen

VBA Zellinhalte löschen mit mehreren Bedingungen
22.02.2018 13:50:12
Stefan
Moin Moin!
In Tabelle 2 stehen ab A2 die Namen, B2 die Vornamen der ca. 300 Mitarbeiter und ab C1 das Datum für die nächsten 4 Jahre.
Die "Datenbank" wird über ein VBA Code beschrieben, den ich aus diesem Forum habe bzw. durch drag and drop direkt ins Tabellenblatt eingetragen. Wochenenden und Feiertage werden nicht berücksichtigt.
Nun zu meinem Problem:
Die Datenbank diente ausschließlich zum sammeln der Anwesenheit/Abwesenheit und Mitarbeiterdaten. Nun soll aber zusätzlich die Urlaubsberechnung mit dieser "Datenbank" durchgeführt werden.
Wie lösche ich auf dem Tabellenblatt 2 die Werte "Ur" und "Fr" an den Wochenenden und Feiertagen. Die Feiertage stehen im Tabellenblatt3 A25:A90 per VBA, oder gibt es andere Lösungsvorschläge?
Danke für Eure Mühe
Stefan

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Zellinhalte löschen mit mehreren Bedingungen
22.02.2018 14:01:27
UweD
Hallo
in welcher Spalte stehen UR und FR?
Besser wäre Musterdatei
LG UweD
AW: VBA Zellinhalte löschen mit mehreren Bedingungen
22.02.2018 14:36:52
UweD
Hallo
Meine Ananhme:

Tabelle2
 ABCD
1NameVormameDatumStatus
2SchmittPaulaMi 24.01.2018FR
3MüllerHeikeDo 22.02.2018FR
4WeberGerdSo 01.04.2018 
5dsddsdSo 01.04.2018 
6dsddsdDi 03.04.2018FR
7qwqw12w2So 01.04.2018DD
8exdsasSo 01.04.2018 
9wqwqwwSo 01.04.2018UR
10aasSo 01.04.2018 
11asaSo 01.04.2018AL
12asMo 05.03.2018UR
13sadsssSo 01.04.2018FR
14addSo 01.04.2018 
15dddSo 01.04.2018 
16dddSo 01.04.2018 
17wwwqwqwqMo 24.12.2018FR


Tabelle3
 A
2501.01.2018
26 
2724.12.2018
2801.05.2018
29 
30 
31 
32 
33 
34 
35 
http://excel-inn.de/dateien/vba_beispiele/tabellenanzeige_in_html_addin.zip
http://Hajo-Excel.de/tools.htm
XHTML-Tabelle zur Darstellung in Foren, einschl. der neuen Funktionen ab Version 2007
Add-In-Version 21.10 einschl. 64 Bit


Hab den Code variable gehalten
Sub Bereinigen()
    Dim TB2, TB3, LR As Integer, SpD As Integer, SpS As Integer, i As Integer
    Dim St1 As String, St2 As String, Feiertag As Range
    
    Set TB2 = Sheets("Tabelle2")
    Set TB3 = Sheets("Tabelle3") 'Feiertage 
    Set Feiertag = TB3.Range("A25:A90")
    
    SpD = 3 'Spalte mit Datum 
    SpS = 4 'Spalte mit Status 
    St1 = "FR" 'Status1 
    St2 = "UR" 'Status2 
    
    LR = TB2.Cells(TB2.Rows.Count, SpD).End(xlUp).Row 'letzte Zeile der Spalte 
    
    
    For i = LR To 2 Step -1
        If Weekday(TB2.Cells(i, SpD), vbMonday) > 5 Or _
            WorksheetFunction.CountIf(Feiertag, TB2.Cells(i, SpD)) > 0 Then ' Samstag / Sonntag oder Feiertag 
            
                If TB2.Cells(i, SpS) = St1 Or TB2.Cells(i, SpS) = St2 Then 'Status 1 oder 2 
                    
                    TB2.Cells(i, SpS).ClearContents ' Staus löschen 
                
                End If
        End If
    Next
End Sub

LG UweD
Anzeige
VBA Zellinhalte löschen mit mehreren Bedingungen
22.02.2018 15:32:58
Stefan
Danke für die Schnelle Antwort!
Habe mich wohl etwas falsch ausgedrückt, hier nochmal die Ergänzung:
Die Namen stehen in Spalte A2 bis A325
Die Vornamen stehen in der Spalte B2 bis B325
Das Datum steht in der Zeile C1 bis BDR1
AW: VBA Zellinhalte löschen mit mehreren Bedingungen
22.02.2018 16:15:30
UweD
Hallo
dann so...
Sub Bereinigen()
    Dim TB2, TB3, LR As Integer, LC As Integer, ZeD As Integer, i As Integer, j As Integer
    Dim St1 As String, St2 As String, Feiertag As Range
    
    Set TB2 = Sheets("Tabelle2")
    Set TB3 = Sheets("Tabelle3") 'Feiertage 
    Set Feiertag = TB3.Range("A25:A90")
    
    ZeD = 1 'Zeile mit Datum 
    St1 = "FR" 'Status1 
    St2 = "UR" 'Status2 
    
    LR = TB2.Cells(TB2.Rows.Count, 1).End(xlUp).Row 'letzte Zeile der Spalte 
    LC = TB2.Cells(ZeD, TB2.Columns.Count).End(xlToLeft).Column 'letzte Spalte einer Zeile 

    
    For i = 3 To LC
        If Weekday(TB2.Cells(ZeD, i), vbMonday) > 5 Or _
            WorksheetFunction.CountIf(Feiertag, TB2.Cells(ZeD, i)) > 0 Then ' Samstag / Sonntag oder Feiertag 
                For j = 2 To LR
                    If TB2.Cells(j, i) = St1 Or TB2.Cells(j, i) = St2 Then 'Status 1 oder 2 
                        
                        TB2.Cells(j, i).ClearContents ' Status löschen 
                    
                    End If
                Next
        End If
    Next
End Sub

LG UweD
Anzeige
VBA Zellinhalte löschen mit mehreren Bedingungen
23.02.2018 07:55:04
Stefan
Funktioniert, Daaaanke!
Stefan
Danke für die Rückmeldung owT
23.02.2018 08:48:38
UweD

358 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige