Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1968to1972
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

Nur geleistete Stunden in der Zusammenfassung anzeigen

Nur geleistete Stunden in der Zusammenfassung anzeigen
11.03.2024 07:29:38
Nordic
Moin :)
in einer abgeschlossen geglaubten "Funktion" hat sich wohl doch ein Fehler eingeschlichen.
Während alle anderen geleisteten Stunden je TN und Modul richtig ausgelesen werden, wird in Modul 10 (hierzu gehören ggf. auch Einträge "P") durchgehend 0 angezeigt, selbst dann, wenn das Modul 10 nicht gewählt wurde (repräsentiert durch x in E7:O7).
Wo ist der Wurm drin?


Private Sub UserForm_Activate()
Dim ws As Worksheet
Dim currentDate As Date
Dim targetDate As Date
Dim i As Long
Dim j As Long
Dim k As Long
Dim rowIndex As Long
Dim counts()

Set ws = ThisWorkbook.Sheets("Projektplan")
currentDate = Date

With ListBox1
.ColumnCount = 12
.ColumnWidths = "100;30;30;30;30;30;30;30;30;30;30;30"
End With

For i = 7 To gLR
If ws.Cells(i, "S").Value = "" Then
If ws.Cells(i, "R").Value >= currentDate And ws.Cells(i, "D").Value = currentDate Then
rowIndex = ListBox1.ListCount
k = k + 1
ReDim Preserve counts(1 To 12, 1 To k)
counts(1, k) = ws.Cells(i, "B").Value
For j = 2 To 12
If ws.Cells(i, j + 3) = "x" Then
counts(j, k) = Application.WorksheetFunction.CountIf(ws.Range("W" & i & ":NX" & i), j - 1)
End If
Next j
counts(11, k) = counts(11, k) + Application.WorksheetFunction.CountIf(ws.Range("W" & i & ":NX" & i), "P")
End If
End If
Next i
counts = Application.Transpose(counts)
ListBox1.List = counts

End Sub


https://www.herber.de/bbs/user/167922.xlsm

Euch einen guten Start in die neue Woche, Nordic(Uwe)

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

Betreff
Datum
Anwender
Anzeige
AW: Nur geleistete Stunden in der Zusammenfassung anzeigen
11.03.2024 08:45:56
MCO
Moin!

Die Function ist in Ordnung und tut was sie soll.
Du musst nur bei den entsprechenden Teilnehmern nicht nur das Modul 10 eintragen sondern auch terminlich vergeben!
Habe das an Teilnehmer 57 getestet.

Warum allerdings ausgerechnet in der Spalte alle Nullen gezeigt werden und ansonsten (meistens) nicht, hab ich nicht recherchiert.

Gruß, MCO
AW: Nur geleistete Stunden in der Zusammenfassung anzeigen
11.03.2024 09:11:00
Nordic
Moin MCO,
genau darin liegt das Problem: Es wird zwar grundsätzlich überall richtig gezählt (auch bei 10 bzw P) jedoch in der ganzen für 10 zuständigen Spalte eine 0 angezeigt, obgleich von den derzeit aktuellen TN nur 49, 57 und 63 das Modul 10 belegt haben.
Grüße, Uwe
Anzeige
AW: Nur geleistete Stunden in der Zusammenfassung anzeigen
11.03.2024 09:46:11
Alwin Weisangler
Hallo Uwe,

naja, das war ja dein ursprünglicher Wunsch es so auszugeben.

Um dies nicht so zu haben, musst du nur einfach die Zeile 32 auskommentieren.
Falls du es Optional möchtest kann man die Zeile in eine Abfrage einschließen.
diese Zeile auskommentieren:


counts(11, k) = counts(11, k) + Application.WorksheetFunction.CountIf(ws.Range("W" & i & ":NX" & i), "P")


Gruß Uwe
AW: Nur geleistete Stunden in der Zusammenfassung anzeigen
11.03.2024 12:38:12
Nordic
Moin Namesvetter ;)
Ich hab's mal auskommentiert und siehe da: Ich halte das gewünschte Ergebnis :)
Nun ist es in dem speziellen Fall aber so, dass wenn Modul gewählt wurde nicht nur "10" gezählt, sondern ggf. auch "P".
"P" steht für "Praktikum" und zählt zu den 15 Soll-Tage hinzu.
Grüße, Uwe
Anzeige
AW: Nur geleistete Stunden in der Zusammenfassung anzeigen
11.03.2024 15:22:16
Alwin Weisangler
Hallo Uwe,

ändere es so:


Private Sub UserForm_Activate()
Dim ws As Worksheet
Dim currentDate As Date
Dim targetDate As Date
Dim i As Long
Dim j As Long
Dim k As Long
Dim rowIndex As Long
Dim counts()

Set ws = ThisWorkbook.Sheets("Projektplan")
currentDate = Date

With ListBox1
.ColumnCount = 12
.ColumnWidths = "100;30;30;30;30;30;30;30;30;30;30;30"
End With

For i = 7 To gLR
If ws.Cells(i, "S").Value = "" Then
If ws.Cells(i, "R").Value >= currentDate And ws.Cells(i, "D").Value = currentDate Then
rowIndex = ListBox1.ListCount
k = k + 1
ReDim Preserve counts(1 To 12, 1 To k)
counts(1, k) = ws.Cells(i, "B").Value
For j = 2 To 12
If ws.Cells(i, j + 3) = "x" Then
counts(j, k) = Application.WorksheetFunction.CountIf(ws.Range("W" & i & ":NX" & i), j - 1)
If counts(11, k) + Application.WorksheetFunction.CountIf(ws.Range("W" & i & ":NX" & i), "P") > 0 Then
counts(11, k) = counts(11, k) + Application.WorksheetFunction.CountIf(ws.Range("W" & i & ":NX" & i), "P")
End If
End If
Next j
End If
End If
Next i
counts = Application.Transpose(counts)
ListBox1.List = counts
End Sub


Gruß Uwe
Anzeige
AW: Nur geleistete Stunden in der Zusammenfassung anzeigen
12.03.2024 06:57:57
Nordic
Moin Uwe,
löppt!
Vielen lieben Dank und Gruß, Uwe

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige