Hallo zusammen
Beim Zeilen prüfen resp. kopieren schmeist mein XLSM einen Laufzeitfehler '9'. Ich habe pro Kalenderwoche ein Arbeitsblatt (Spalten A-Q) mit folgendem Namen: z.B 20-11-W49 (Jahr 2-stellig/Monat/Kalenderwoche). (Scahde, dass ich keine Screenshots beifügen kann). In der Spalte A habe ich jeweils das entsprechende Datum, da ich pro Arbeitstag 8 Einträge habe.
Also etwa so:
|
|
Arbeitsübersicht |
W45 2020 |
02.11.2020 |
Montag, 2. November 2020 |
HKr |
HKbe |
HKko |
Bel |
Kb |
Kf |
Tit |
mm |
Bag |
Stance |
HKP |
N&T |
FD |
PTex |
Konstruktion |
Spezial |
Form |
Keil |
Termin |
02.11.2020 |
S |
x |
x |
x |
x |
x |
x |
x |
0,4 |
2 |
550/590 |
SS |
Med/Med |
|
white |
BX-Titanal-TC3W (bb22.1.16) |
Ptex |
|
|
01.09.2020 |
02.11.2020 |
BX5 |
x |
x |
x |
x |
x |
x |
x |
0,4 |
2 |
540 |
SS |
ADN/Med |
|
Cvlies |
BX-Titanal-TC3W (bb22.1.16) |
Perlatec |
|
|
02.09.2020 |
02.11.2020 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
02.11.2020 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
02.11.2020 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
02.11.2020 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
02.11.2020 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
02.11.2020 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
03.11.2020 |
Dienstag, 3. November 2020 |
HKr |
HKbe |
HKko |
Bel |
Kb |
Kf |
Tit |
mm |
Bag |
Stance |
HKP |
N&T |
FD |
PTex |
Konstruktion |
Spezial |
Form |
Keil |
Termin |
03.11.2020 |
A |
x |
x |
x |
x |
x |
x |
x |
0,4 |
2 |
550/590 |
ST |
Med/Comp |
|
white |
BX/FX Carbon/Titanal Männer (bb6.3.12) |
Ptex, TC3 |
|
|
01.09.2020 |
03.11.2020 |
B |
x |
x |
x |
x |
x |
x |
x |
0,4 |
1 |
540 |
SS |
Med/Med |
|
Cvlies |
BX-Titanal-TC3W (bb22.1.16) |
|
|
|
02.09.2020 |
03.11.2020 |
C |
x |
x |
x |
x |
x |
x |
x |
0,4 |
2 |
470 +AF |
01 |
|
|
black |
RG/RS Titanal (bb21.2.20) |
|
|
280 |
02.09.2020 |
Ich möchte einen Zeile aus der Kalenderwoche 45 auf den 1. Dezember in der Kalenderwoche 49 verschieben. Anbei der Code für die Prüf-Funktion.
Besten Dank schon im Voraus Matthias
'======================================================================================================================
' Datum prüfen ob frei
'======================================================================================================================
Private Sub Pruefen_Click()
Dim WorkYear As String
Dim SearchDate As Date
Dim WYk As String
Dim WMk As String
Dim KW As Date
Dim WsNew As String
Dim DIN_KW As String
Dim ZelleDate As Range
Dim rngDate As Range
Dim zNew As Long
Dim RowCount As Integer
Dim DayCount As Integer
WorkYear = Worksheets("Grunddaten").Range("C3")
SearchDate = g_datCalendarDate
' SuchDatum prüfen und Name des Blattes bestimmen
'If Year(SearchDate) <> WorkYear Then
' Call MsgBox("Ungültiges Jahr!")
' Exit Sub
'End If
' Name des WorkSheets bestimmen
KW = 4 + SearchDate - Weekday(SearchDate, 2)
DIN_KW = (KW - DateSerial(Year(KW), 1, -6)) \ 7
WYk = Right(SearchDate, 2)
WMk = Month(SearchDate)
' WsNew = WYk & "-" & WMk & "-" & "W" & DIN_KW (Neu wegen Sortiereung der Worksheets
Select Case WMk
Case 1, 2, 3, 4, 5, 6, 7, 8, 9
WMk = "0" & WMk
End Select
Select Case DIN_KW
Case 1, 2, 3, 4, 5, 6, 7, 8, 9
DIN_KW = "0" & DIN_KW
End Select
WsNew = WYk & "-" & WMk & "-" & "W" & DIN_KW
Set rngDate = Worksheets(WsNew).Range("A3:A50")
Set ZelleDate = Suchen(Me.g_datCalendarDate, rngDate)
If Not ZelleDate Is Nothing Then
zNew = ZelleDate.Row
RowCount = 0
With Worksheets(WsNew)
For DayCount = 1 To 9
If WorksheetFunction.CountBlank(.Range(.Cells(zNew, 2), .Cells(zNew, 21))) = 20 Then
RowCount = RowCount + 1
End If
zNew = zNew + 1
Next DayCount
If RowCount <> 0 Then
Call MsgBox("Dieser Tag hat noch '" & RowCount & "' Einträge zur Verfügung!")
Else
Call MsgBox("Verschiebungsdatum ist schon voll belegt!")
End If
End With
Else
Call MsgBox("Verschiebungsdatum '" & g_datCalendarDate & "' nicht gefunden!")
End If
End Sub
|