Anzeige
Archiv - Navigation
1624to1628
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Worksheet_Change zusammenfassen aber wie?

Worksheet_Change zusammenfassen aber wie?
24.05.2018 19:32:31
mcbunki@gmx.de
Hallo,
ich habe eine Datei, in welcher mehrere Mitglieder eingetragen sind.
Nun habe ich in den Code des Arbeitsblatt folgendes eingetragen (es handelt sich um eine kurze Fassung, Datei enthält mehr Mitglieder):
Private Sub Worksheet_Change(ByVal Target As Range)
' ############################################################################################## _
' WENN sich am Urlaub etwas ändert, DANN Makros ausführen
' ############################################################################################## _
' Start     Urlaub für Mitglied 1 eintragen
If Not Application.Intersect(Target, Range("L13:AN13")) Is Nothing Then
Call UrlaubMitglied1
End If
' Ende     Urlaub für Mitglied 1 eintragen
' Mitglied 2
If Not Application.Intersect(Target, Range("L14:AN14")) Is Nothing Then
Call UrlaubMitglied2
End If
' Mitglied 3
If Not Application.Intersect(Target, Range("L15:AN15")) Is Nothing Then
Call UrlaubMitglied3
End If
' Mitglied 4
If Not Application.Intersect(Target, Range("L16:AN16")) Is Nothing Then
Call UrlaubMitglied4
End If
End Sub

Wie kann ich dies zusammenfassen?
MfG
Nils Bunkowski

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Worksheet_Change zusammenfassen aber wie?
24.05.2018 20:00:18
Gerd
Moin!
Private Sub Worksheet_Change(ByVal Target As Range)
' ############################################################################################## _
_
' WENN sich am Urlaub etwas ändert, DANN Makros ausführen
' ############################################################################################## _
_
' Start     Urlaub für Mitglied 1-4 eintragen
If Not Application.Intersect(Target, Range("L13:AN16")) Is Nothing Then
Application.Run CStr("UrlaubMitglied" & (Target.Cells(1).Row - 12))
End If
' Ende     Urlaub für Mitglied 1-4 eintragen
End Sub

Gruß Gerd
Anzeige
AW: Worksheet_Change zusammenfassen aber wie?
24.05.2018 20:16:14
mcbunki@gmx.de
Hi Gerd,
ich danke dir schonmal. Vielleicht kannst du mir das auf Basis dieses Codes nochmal für die Mitglieder 1 bis 4 zusammenfassen.
Ich breche mir sonst einen ab bis das geht und schön aussieht.
Private Sub Worksheet_Change(ByVal Target As Range)
' Start     Urlaub für Mitglied 1 eintragen
If Not Application.Intersect(Target, Range("O14:AQ14")) Is Nothing Then
With Worksheets("Urlaub")
' für Urlaub 1
If .Range("O14").Value = .Range("P14").Value Then
Call UrlaubMitglied1
End If
If .Range("O14").Value  "" And .Range("P14").Value  "" Then
Call UrlaubMitglied1
End If
' für Urlaub 2
If .Range("R14").Value = .Range("S14").Value Then
Call UrlaubMitglied1
End If
If .Range("R14").Value  "" And .Range("S14").Value  "" Then
Call UrlaubMitglied1
End If
' für Urlaub 3
If .Range("U14").Value = .Range("V14").Value Then
Call UrlaubMitglied1
End If
If .Range("U14").Value  "" And .Range("V14").Value  "" Then
Call UrlaubMitglied1
End If
' für Urlaub 4
If .Range("X14").Value = .Range("Y14").Value Then
Call UrlaubMitglied1
End If
If .Range("X14").Value  "" And .Range("Y14").Value  "" Then
Call UrlaubMitglied1
End If
' für Urlaub 5
If .Range("AA14").Value = .Range("AB14").Value Then
Call UrlaubMitglied1
End If
If .Range("AA14").Value  "" And .Range("AB14").Value  "" Then
Call UrlaubMitglied1
End If
' für Urlaub 6
If .Range("AD14").Value = .Range("AE14").Value Then
Call UrlaubMitglied1
End If
If .Range("AD14").Value  "" And .Range("AE14").Value  "" Then
Call UrlaubMitglied1
End If
' für Urlaub 7
If .Range("AG14").Value = .Range("AH14").Value Then
Call UrlaubMitglied1
End If
If .Range("AG14").Value  "" And .Range("AH14").Value  "" Then
Call UrlaubMitglied1
End If
' für Urlaub 8
If .Range("AJ14").Value = .Range("AK14").Value Then
Call UrlaubMitglied1
End If
If .Range("AJ14").Value  "" And .Range("AK14").Value  "" Then
Call UrlaubMitglied1
End If
' für Urlaub 9
If .Range("AM14").Value = .Range("AN14").Value Then
Call UrlaubMitglied1
End If
If .Range("AM14").Value  "" And .Range("AN14").Value  "" Then
Call UrlaubMitglied1
End If
' für Urlaub 10
If .Range("AP14").Value = .Range("AQ14").Value Then
Call UrlaubMitglied1
End If
If .Range("AP14").Value  "" And .Range("AQ14").Value  "" Then
Call UrlaubMitglied1
End If
End With
End If
' Ende     Urlaub für Mitglied 1 eintragen
End Sub

Anzeige
AW: Worksheet_Change zusammenfassen aber wie?
24.05.2018 20:58:30
Gerd
Hallo Nils,
zusammenfassen könnte ich schon irgendetwas. Aber eine Sysematik für Makroaufrufe UrlaubMitglied1 - UrlaubMitglied4 kann ich leider noch nicht erkennen.
Gruß Gerd
AW: Worksheet_Change zusammenfassen aber wie?
24.05.2018 21:30:35
mcbunki@gmx.de
Im den letzten Ausschnitt habe ich nur den Teil für Mitglied 1 geschrieben, da es sonst zu lang wird. Für Mitglied 2, 3 und 4 sieht es genauso aus, außer das die Zeile sich ändern soll und der Makroaufruf.
Mitglied 1: Zeile 14, Markro: UrlaubMitglied1
Mitglied 2: Zeile 15, Markro: UrlaubMitglied2
Mitglied 3: Zeile 16, Markro: UrlaubMitglied3
Mitglied 4: Zeile 17, Markro: UrlaubMitglied4
usw.
Private Sub Worksheet_Change(ByVal Target As Range)
' ############################################################################################## _
' WENN sich am Urlaub für ein Mitglied etwas ändert, DANN Urlaubsmakro für das Mitglied ausfü _
hren
' ############################################################################################## _
' Start     Urlaub für Mitglied 1 eintragen
If Not Application.Intersect(Target, Range("O14:AQ14")) Is Nothing Then
With Worksheets("Urlaub")
' für Urlaub 1
If .Range("O14").Value = .Range("P14").Value Then
Call UrlaubMitglied1
End If
If .Range("O14").Value  "" And .Range("P14").Value  "" Then
Call UrlaubMitglied1
End If
' für Urlaub 2
If .Range("R14").Value = .Range("S14").Value Then
Call UrlaubMitglied1
End If
If .Range("R14").Value  "" And .Range("S14").Value  "" Then
Call UrlaubMitglied1
End If
' für Urlaub 3
If .Range("U14").Value = .Range("V14").Value Then
Call UrlaubMitglied1
End If
If .Range("U14").Value  "" And .Range("V14").Value  "" Then
Call UrlaubMitglied1
End If
' für Urlaub 4
If .Range("X14").Value = .Range("Y14").Value Then
Call UrlaubMitglied1
End If
If .Range("X14").Value  "" And .Range("Y14").Value  "" Then
Call UrlaubMitglied1
End If
' für Urlaub 5
If .Range("AA14").Value = .Range("AB14").Value Then
Call UrlaubMitglied1
End If
If .Range("AA14").Value  "" And .Range("AB14").Value  "" Then
Call UrlaubMitglied1
End If
' für Urlaub 6
If .Range("AD14").Value = .Range("AE14").Value Then
Call UrlaubMitglied1
End If
If .Range("AD14").Value  "" And .Range("AE14").Value  "" Then
Call UrlaubMitglied1
End If
' für Urlaub 7
If .Range("AG14").Value = .Range("AH14").Value Then
Call UrlaubMitglied1
End If
If .Range("AG14").Value  "" And .Range("AH14").Value  "" Then
Call UrlaubMitglied1
End If
' für Urlaub 8
If .Range("AJ14").Value = .Range("AK14").Value Then
Call UrlaubMitglied1
End If
If .Range("AJ14").Value  "" And .Range("AK14").Value  "" Then
Call UrlaubMitglied1
End If
' für Urlaub 9
If .Range("AM14").Value = .Range("AN14").Value Then
Call UrlaubMitglied1
End If
If .Range("AM14").Value  "" And .Range("AN14").Value  "" Then
Call UrlaubMitglied1
End If
' für Urlaub 10
If .Range("AP14").Value = .Range("AQ14").Value Then
Call UrlaubMitglied1
End If
If .Range("AP14").Value  "" And .Range("AQ14").Value  "" Then
Call UrlaubMitglied1
End If
End With
End If
' Ende     Urlaub für Mitglied 1 eintragen
' Start     Urlaub für Mitglied 2 eintragen
If Not Application.Intersect(Target, Range("O15:AQ15")) Is Nothing Then
With Worksheets("Urlaub")
' für Urlaub 1
If .Range("O15").Value = .Range("P15").Value Then
Call UrlaubMitglied2
End If
If .Range("O15").Value  "" And .Range("P15").Value  "" Then
Call UrlaubMitglied2
End If
' für Urlaub 2
If .Range("R15").Value = .Range("S15").Value Then
Call UrlaubMitglied2
End If
If .Range("R15").Value  "" And .Range("S15").Value  "" Then
Call UrlaubMitglied2
End If
' für Urlaub 3
If .Range("U15").Value = .Range("V15").Value Then
Call UrlaubMitglied2
End If
If .Range("U15").Value  "" And .Range("V15").Value  "" Then
Call UrlaubMitglied2
End If
' für Urlaub 4
If .Range("X15").Value = .Range("Y15").Value Then
Call UrlaubMitglied2
End If
If .Range("X15").Value  "" And .Range("Y15").Value  "" Then
Call UrlaubMitglied2
End If
' für Urlaub 5
If .Range("AA15").Value = .Range("AB15").Value Then
Call UrlaubMitglied2
End If
If .Range("AA15").Value  "" And .Range("AB15").Value  "" Then
Call UrlaubMitglied2
End If
' für Urlaub 6
If .Range("AD15").Value = .Range("AE15").Value Then
Call UrlaubMitglied2
End If
If .Range("AD15").Value  "" And .Range("AE15").Value  "" Then
Call UrlaubMitglied2
End If
' für Urlaub 7
If .Range("AG15").Value = .Range("AH15").Value Then
Call UrlaubMitglied2
End If
If .Range("AG15").Value  "" And .Range("AH15").Value  "" Then
Call UrlaubMitglied2
End If
' für Urlaub 8
If .Range("AJ15").Value = .Range("AK15").Value Then
Call UrlaubMitglied2
End If
If .Range("AJ15").Value  "" And .Range("AK15").Value  "" Then
Call UrlaubMitglied2
End If
' für Urlaub 9
If .Range("AM15").Value = .Range("AN15").Value Then
Call UrlaubMitglied2
End If
If .Range("AM15").Value  "" And .Range("AN15").Value  "" Then
Call UrlaubMitglied2
End If
' für Urlaub 10
If .Range("AP15").Value = .Range("AQ15").Value Then
Call UrlaubMitglied2
End If
If .Range("AP15").Value  "" And .Range("AQ15").Value  "" Then
Call UrlaubMitglied2
End If
End With
End If
' Ende     Urlaub für Mitglied 2 eintragen
' Start     Urlaub für Mitglied 3 eintragen
If Not Application.Intersect(Target, Range("O16:AQ16")) Is Nothing Then
With Worksheets("Urlaub")
' für Urlaub 1
If .Range("O16").Value = .Range("P16").Value Then
Call UrlaubMitglied3
End If
If .Range("O16").Value  "" And .Range("P16").Value  "" Then
Call UrlaubMitglied3
End If
' für Urlaub 2
If .Range("R16").Value = .Range("S16").Value Then
Call UrlaubMitglied3
End If
If .Range("R16").Value  "" And .Range("S16").Value  "" Then
Call UrlaubMitglied3
End If
' für Urlaub 3
If .Range("U16").Value = .Range("V16").Value Then
Call UrlaubMitglied3
End If
If .Range("U16").Value  "" And .Range("V16").Value  "" Then
Call UrlaubMitglied3
End If
' für Urlaub 4
If .Range("X16").Value = .Range("Y16").Value Then
Call UrlaubMitglied3
End If
If .Range("X16").Value  "" And .Range("Y16").Value  "" Then
Call UrlaubMitglied3
End If
' für Urlaub 5
If .Range("AA16").Value = .Range("AB16").Value Then
Call UrlaubMitglied3
End If
If .Range("AA16").Value  "" And .Range("AB16").Value  "" Then
Call UrlaubMitglied3
End If
' für Urlaub 6
If .Range("AD16").Value = .Range("AE16").Value Then
Call UrlaubMitglied3
End If
If .Range("AD16").Value  "" And .Range("AE16").Value  "" Then
Call UrlaubMitglied3
End If
' für Urlaub 7
If .Range("AG16").Value = .Range("AH16").Value Then
Call UrlaubMitglied3
End If
If .Range("AG16").Value  "" And .Range("AH16").Value  "" Then
Call UrlaubMitglied3
End If
' für Urlaub 8
If .Range("AJ16").Value = .Range("AK16").Value Then
Call UrlaubMitglied3
End If
If .Range("AJ16").Value  "" And .Range("AK16").Value  "" Then
Call UrlaubMitglied3
End If
' für Urlaub 9
If .Range("AM16").Value = .Range("AN16").Value Then
Call UrlaubMitglied3
End If
If .Range("AM16").Value  "" And .Range("AN16").Value  "" Then
Call UrlaubMitglied3
End If
' für Urlaub 10
If .Range("AP16").Value = .Range("AQ16").Value Then
Call UrlaubMitglied3
End If
If .Range("AP16").Value  "" And .Range("AQ16").Value  "" Then
Call UrlaubMitglied3
End If
End With
End If
' Ende     Urlaub für Mitglied 3 eintragen
' Start     Urlaub für Mitglied 4 eintragen
If Not Application.Intersect(Target, Range("O17:AQ17")) Is Nothing Then
With Worksheets("Urlaub")
' für Urlaub 1
If .Range("O17").Value = .Range("P17").Value Then
Call UrlaubMitglied4
End If
If .Range("O17").Value  "" And .Range("P17").Value  "" Then
Call UrlaubMitglied4
End If
' für Urlaub 2
If .Range("R17").Value = .Range("S17").Value Then
Call UrlaubMitglied4
End If
If .Range("R17").Value  "" And .Range("S17").Value  "" Then
Call UrlaubMitglied4
End If
' für Urlaub 3
If .Range("U17").Value = .Range("V17").Value Then
Call UrlaubMitglied4
End If
If .Range("U17").Value  "" And .Range("V17").Value  "" Then
Call UrlaubMitglied4
End If
' für Urlaub 4
If .Range("X17").Value = .Range("Y17").Value Then
Call UrlaubMitglied4
End If
If .Range("X17").Value  "" And .Range("Y17").Value  "" Then
Call UrlaubMitglied4
End If
' für Urlaub 5
If .Range("AA17").Value = .Range("AB17").Value Then
Call UrlaubMitglied4
End If
If .Range("AA17").Value  "" And .Range("AB17").Value  "" Then
Call UrlaubMitglied4
End If
' für Urlaub 6
If .Range("AD17").Value = .Range("AE17").Value Then
Call UrlaubMitglied4
End If
If .Range("AD17").Value  "" And .Range("AE17").Value  "" Then
Call UrlaubMitglied4
End If
' für Urlaub 7
If .Range("AG17").Value = .Range("AH17").Value Then
Call UrlaubMitglied4
End If
If .Range("AG17").Value  "" And .Range("AH17").Value  "" Then
Call UrlaubMitglied4
End If
' für Urlaub 8
If .Range("AJ17").Value = .Range("AK17").Value Then
Call UrlaubMitglied4
End If
If .Range("AJ17").Value  "" And .Range("AK17").Value  "" Then
Call UrlaubMitglied4
End If
' für Urlaub 9
If .Range("AM17").Value = .Range("AN17").Value Then
Call UrlaubMitglied4
End If
If .Range("AM17").Value  "" And .Range("AN17").Value  "" Then
Call UrlaubMitglied4
End If
' für Urlaub 10
If .Range("AP17").Value = .Range("AQ17").Value Then
Call UrlaubMitglied4
End If
If .Range("AP17").Value  "" And .Range("AQ17").Value  "" Then
Call UrlaubMitglied4
End If
End With
End If
' Ende     Urlaub für Mitglied 4 eintragen
End Sub

Anzeige
AW: Worksheet_Change zusammenfassen aber wie?
25.05.2018 09:09:52
DJRidoo
Hi Gerd,
vergiss den Code den ich als letztes geschrieben habe. Werde versuchen zeitnah einen neuen zu schicken, welcher das Makro bereits enthält. Dies würde mir insgesamt noch mehr Code sparen. Mein Bruder heiratet. Ich Hoffe , dass das zeitnah klappt. Ich danke schon mal.
Gruß
DJRidoo
AW: Worksheet_Change zusammenfassen aber wie?
25.05.2018 11:37:31
DJRidoo
Ich habe es noch geschafft und habe den Code, welcher vereinfacht und gekürzt dargestellt werden soll nun zusammengeschrieben. Den Code auf weitere Mitglieder zu erweitern bekomme ich dann wohl hin.
Es wäre super nett Gerd wenn du mir da helfen könntest. Es würde mich bei meinem privatem Projekt nach vorne bringen.
Private Sub Worksheet_Change(ByVal Target As Range)
' ############################################################################################## _
' WENN sich am Urlaub etwas ändert, DANN Urlaub für Mitglied eintragen
' ############################################################################################## _
' Start    Bildschirmaktualisierung deaktivieren
Application.ScreenUpdating = False
' Ende     Bildschirmaktualisierung deaktivieren
' Start     Urlaub für Mitglied 1 eintragen
If Not Application.Intersect(Target, Range("O14:AQ14")) Is Nothing Then
With Worksheets("Urlaub")
' für Urlaub 1
If .Range("O14").Value = .Range("P14").Value Then
GoTo UrlaubMitglied1
End If
If .Range("O14").Value  "" And .Range("P14").Value  "" Then
GoTo UrlaubMitglied1
End If
' für Urlaub 2
If .Range("R14").Value = .Range("S14").Value Then
GoTo UrlaubMitglied1
End If
If .Range("R14").Value  "" And .Range("S14").Value  "" Then
GoTo UrlaubMitglied1
End If
' für Urlaub 3
If .Range("U14").Value = .Range("V14").Value Then
GoTo UrlaubMitglied1
End If
If .Range("U14").Value  "" And .Range("V14").Value  "" Then
GoTo UrlaubMitglied1
End If
' für Urlaub 4
If .Range("X14").Value = .Range("Y14").Value Then
GoTo UrlaubMitglied1
End If
If .Range("X14").Value  "" And .Range("Y14").Value  "" Then
GoTo UrlaubMitglied1
End If
' für Urlaub 5
If .Range("AA14").Value = .Range("AB14").Value Then
GoTo UrlaubMitglied1
End If
If .Range("AA14").Value  "" And .Range("AB14").Value  "" Then
GoTo UrlaubMitglied1
End If
' für Urlaub 6
If .Range("AD14").Value = .Range("AE14").Value Then
GoTo UrlaubMitglied1
End If
If .Range("AD14").Value  "" And .Range("AE14").Value  "" Then
GoTo UrlaubMitglied1
End If
' für Urlaub 7
If .Range("AG14").Value = .Range("AH14").Value Then
GoTo UrlaubMitglied1
End If
If .Range("AG14").Value  "" And .Range("AH14").Value  "" Then
GoTo UrlaubMitglied1
End If
' für Urlaub 8
If .Range("AJ14").Value = .Range("AK14").Value Then
GoTo UrlaubMitglied1
End If
If .Range("AJ14").Value  "" And .Range("AK14").Value  "" Then
GoTo UrlaubMitglied1
End If
' für Urlaub 9
If .Range("AM14").Value = .Range("AN14").Value Then
GoTo UrlaubMitglied1
End If
If .Range("AM14").Value  "" And .Range("AN14").Value  "" Then
GoTo UrlaubMitglied1
End If
' für Urlaub 10
If .Range("AP14").Value = .Range("AQ14").Value Then
GoTo UrlaubMitglied1
End If
If .Range("AP14").Value  "" And .Range("AQ14").Value  "" Then
GoTo UrlaubMitglied1
End If
End With
End If
UrlaubMitglied1:
' Start     Urlaub für Mitglied eintragen
For Spalte = 12 To 434
Select Case Spalte
Case 43, 44, 74, 75, 107, 108, 139, 140, 172, 173, 204, 205, 237, 238, _
270, 271, 302, 303, 335, 336, 367, 368, 400, 401, 402, 403
' keine Handlung
Case Else
With Worksheets("Jahresplan")
If .Cells(14, Spalte).Value  "U" And .Cells(14, Spalte).Value  "X"  _
And _
Worksheets("HilfeUrlaub").Cells(214, Spalte).Value = True Then
.Cells(14, Spalte).Value = "U"
Else
If .Cells(14, Spalte).Value = "U" And _
Worksheets("HilfeUrlaub").Cells(214, Spalte).Value = False  _
Then
.Cells(14, Spalte).Value = ""
End If
End With
End Select
Next Spalte
' Ende     Urlaub für Mitglied eintragen
GoTo Ende
' Ende     Urlaub für Mitglied 1 eintragen
' Start     Urlaub für Mitglied 2 eintragen
If Not Application.Intersect(Target, Range("O15:AQ15")) Is Nothing Then
With Worksheets("Urlaub")
' für Urlaub 1
If .Range("O15").Value = .Range("P15").Value Then
GoTo UrlaubMitglied2
End If
If .Range("O15").Value  "" And .Range("P15").Value  "" Then
GoTo UrlaubMitglied2
End If
' für Urlaub 2
If .Range("R15").Value = .Range("S15").Value Then
GoTo UrlaubMitglied2
End If
If .Range("R15").Value  "" And .Range("S15").Value  "" Then
GoTo UrlaubMitglied2
End If
' für Urlaub 3
If .Range("U15").Value = .Range("V15").Value Then
GoTo UrlaubMitglied2
End If
If .Range("U15").Value  "" And .Range("V15").Value  "" Then
GoTo UrlaubMitglied2
End If
' für Urlaub 4
If .Range("X15").Value = .Range("Y15").Value Then
GoTo UrlaubMitglied2
End If
If .Range("X15").Value  "" And .Range("Y15").Value  "" Then
GoTo UrlaubMitglied2
End If
' für Urlaub 5
If .Range("AA15").Value = .Range("AB15").Value Then
GoTo UrlaubMitglied2
End If
If .Range("AA15").Value  "" And .Range("AB15").Value  "" Then
GoTo UrlaubMitglied2
End If
' für Urlaub 6
If .Range("AD15").Value = .Range("AE15").Value Then
GoTo UrlaubMitglied2
End If
If .Range("AD15").Value  "" And .Range("AE15").Value  "" Then
GoTo UrlaubMitglied2
End If
' für Urlaub 7
If .Range("AG15").Value = .Range("AH15").Value Then
GoTo UrlaubMitglied2
End If
If .Range("AG15").Value  "" And .Range("AH15").Value  "" Then
GoTo UrlaubMitglied2
End If
' für Urlaub 8
If .Range("AJ15").Value = .Range("AK15").Value Then
GoTo UrlaubMitglied2
End If
If .Range("AJ15").Value  "" And .Range("AK15").Value  "" Then
GoTo UrlaubMitglied2
End If
' für Urlaub 9
If .Range("AM15").Value = .Range("AN15").Value Then
GoTo UrlaubMitglied2
End If
If .Range("AM15").Value  "" And .Range("AN15").Value  "" Then
GoTo UrlaubMitglied2
End If
' für Urlaub 10
If .Range("AP15").Value = .Range("AQ15").Value Then
GoTo UrlaubMitglied2
End If
If .Range("AP15").Value  "" And .Range("AQ15").Value  "" Then
GoTo UrlaubMitglied2
End If
End With
End If
UrlaubMitglied2:
' Start     Urlaub für Mitglied eintragen
For Spalte = 12 To 434
Select Case Spalte
Case 43, 44, 74, 75, 107, 108, 139, 150, 172, 173, 204, 205, 237, 238, _
270, 271, 302, 303, 335, 336, 367, 368, 400, 401, 402, 403
' keine Handlung
Case Else
With Worksheets("Jahresplan")
If .Cells(15, Spalte).Value  "U" And .Cells(15, Spalte).Value  "X"  _
And _
Worksheets("HilfeUrlaub").Cells(215, Spalte).Value = True Then
.Cells(15, Spalte).Value = "U"
Else
If .Cells(15, Spalte).Value = "U" And _
Worksheets("HilfeUrlaub").Cells(215, Spalte).Value = False  _
Then
.Cells(15, Spalte).Value = ""
End If
End With
End Select
Next Spalte
' Ende     Urlaub für Mitglied eintragen
GoTo Ende
' Ende     Urlaub für Mitglied 2 eintragen
' Start     Urlaub für Mitglied 3 eintragen
If Not Application.Intersect(Target, Range("O16:AQ16")) Is Nothing Then
With Worksheets("Urlaub")
' für Urlaub 1
If .Range("O16").Value = .Range("P16").Value Then
GoTo UrlaubMitglied3
End If
If .Range("O16").Value  "" And .Range("P16").Value  "" Then
GoTo UrlaubMitglied3
End If
' für Urlaub 2
If .Range("R16").Value = .Range("S16").Value Then
GoTo UrlaubMitglied3
End If
If .Range("R16").Value  "" And .Range("S16").Value  "" Then
GoTo UrlaubMitglied3
End If
' für Urlaub 3
If .Range("U16").Value = .Range("V16").Value Then
GoTo UrlaubMitglied3
End If
If .Range("U16").Value  "" And .Range("V16").Value  "" Then
GoTo UrlaubMitglied3
End If
' für Urlaub 4
If .Range("X16").Value = .Range("Y16").Value Then
GoTo UrlaubMitglied3
End If
If .Range("X16").Value  "" And .Range("Y16").Value  "" Then
GoTo UrlaubMitglied3
End If
' für Urlaub 5
If .Range("AA16").Value = .Range("AB16").Value Then
GoTo UrlaubMitglied3
End If
If .Range("AA16").Value  "" And .Range("AB16").Value  "" Then
GoTo UrlaubMitglied3
End If
' für Urlaub 6
If .Range("AD16").Value = .Range("AE16").Value Then
GoTo UrlaubMitglied3
End If
If .Range("AD16").Value  "" And .Range("AE16").Value  "" Then
GoTo UrlaubMitglied3
End If
' für Urlaub 7
If .Range("AG16").Value = .Range("AH16").Value Then
GoTo UrlaubMitglied3
End If
If .Range("AG16").Value  "" And .Range("AH16").Value  "" Then
GoTo UrlaubMitglied3
End If
' für Urlaub 8
If .Range("AJ16").Value = .Range("AK16").Value Then
GoTo UrlaubMitglied3
End If
If .Range("AJ16").Value  "" And .Range("AK16").Value  "" Then
GoTo UrlaubMitglied3
End If
' für Urlaub 9
If .Range("AM16").Value = .Range("AN16").Value Then
GoTo UrlaubMitglied3
End If
If .Range("AM16").Value  "" And .Range("AN16").Value  "" Then
GoTo UrlaubMitglied3
End If
' für Urlaub 10
If .Range("AP16").Value = .Range("AQ16").Value Then
GoTo UrlaubMitglied3
End If
If .Range("AP16").Value  "" And .Range("AQ16").Value  "" Then
GoTo UrlaubMitglied3
End If
End With
End If
UrlaubMitglied3:
' Start     Urlaub für Mitglied eintragen
For Spalte = 12 To 434
Select Case Spalte
Case 43, 44, 74, 75, 107, 108, 139, 160, 172, 173, 204, 205, 237, 238, _
270, 271, 302, 303, 335, 336, 367, 368, 400, 401, 402, 403
' keine Handlung
Case Else
With Worksheets("Jahresplan")
If .Cells(16, Spalte).Value  "U" And .Cells(16, Spalte).Value  "X"  _
And _
Worksheets("HilfeUrlaub").Cells(216, Spalte).Value = True Then
.Cells(16, Spalte).Value = "U"
Else
If .Cells(16, Spalte).Value = "U" And _
Worksheets("HilfeUrlaub").Cells(216, Spalte).Value = False  _
Then
.Cells(16, Spalte).Value = ""
End If
End With
End Select
Next Spalte
' Ende     Urlaub für Mitglied eintragen
GoTo Ende
' Ende     Urlaub für Mitglied 3 eintragen
Ende:
' Start    Worksheet_Change aktivieren
Application.EnableEvents = True
' Ende    Worksheet_Change aktivieren
End Sub

Ich danke dir Gerd.
MfG
DJRidoo
Anzeige
AW: Worksheet_Change zusammenfassen aber wie?
25.05.2018 18:48:36
Gerd
Hallo, probier mal.
Private Sub Worksheet_Change(ByVal Target As Range)
' ############################################################################################## _
_
' WENN sich am Urlaub etwas ändert, DANN Urlaub für Mitglied eintragen
' ############################################################################################## _
_
Dim Spalte As Long, Zeile As Range
' Start    Bildschirmaktualisierung deaktivieren
Application.ScreenUpdating = False
' Ende     Bildschirmaktualisierung deaktivieren
Application.EnableEvents = False
' Start     Urlaub für Mitglied 1 - 3 eintragen
If Not Application.Intersect(Target, Range("O14:AQ16")) Is Nothing Then '3 Zeilenbereiche
For Each Zeile In Intersect(Target, Range("O14:AQ16")).EntireRow
For Spalte = 15 To 42 Step 3
If Cells(Zeile.Row, Spalte).Value = Cells(Zeile.Row, Spalte + 1).Value Or _
(Cells(Zeile.Row, Spalte).Value  "" And Cells(Zeile.Row, Spalte + 1).Value  "")  _
Then
Call UrlaubMitglied(Zeile.Row)
Exit For
End If
Next
Next
End If
Application.EnableEvents = True
End Sub
Sub UrlaubMitglied(Z As Long)
Dim Sp As Long
' Start     Urlaub für Mitglied eintragen
For Sp = 12 To 434
Select Case Spalte
Case 43, 44, 74, 75, 107, 108, 139, 140, 172, 173, 204, 205, 237, 238, _
270, 271, 302, 303, 335, 336, 367, 368, 400, 401, 402, 403
' keine Handlung
Case Else
With Worksheets("Jahresplan")
If .Cells(Z, Sp).Value  "U" And .Cells(Z, Sp).Value  "X" _
And Worksheets("HilfeUrlaub").Cells(200 + Z, Sp).Value = True Then
.Cells(Z, Sp).Value = "U"
ElseIf .Cells(Z, Sp).Value = "U" And _
Worksheets("HilfeUrlaub").Cells(200 + Z, Sp).Value = False Then
.Cells(Z, Sp).Value = ""
End If
End With
End Select
Next Spalte
End Sub
Gruß Gerd
Anzeige
AW: Worksheet_Change zusammenfassen aber wie?
25.05.2018 19:41:31
DJRidoo
Probiere ich gleich aus wenn der Nachwuchs schläft und gebe dann ein Feedback. Trotzdem schon mal danke.
Gruß
DJRidoo
AW: Worksheet_Change zusammenfassen aber wie?
26.05.2018 09:14:42
Hajo_Zi
warum Offen, soll jemand vorbei kommen und Helfen?

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige