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

VBA Bedingung aufstellen

VBA Bedingung aufstellen
23.06.2019 11:48:55
Pit
Hallo Zusammen,
ich habe folgendes Anliegen:
Bei der Einteilung des Dienstes sollte ein definierter Prozentsatz aus dem Arbeitsblatt 3 - Zeile(D6) anstelle des absoluten "x" berücksichtigt werden, da sonst keine gleichmäßige und faire Anzahl an Diensten bei längerer Abwesenheit erfolgt.
Der %-Prozentsatz muss sich um jeden Tag (jede Schleife) um dem Wert 1 reduzieren.
Ich hatte bislang keinen großen Erfolg bei diesem Problem.
Für jeden Einsatz möchte ich mich bereits bedanken!
https://www.herber.de/bbs/user/130543.txt
Sub erstelleplan()
Call faerbeliste
Call uebertrageDienste
End Sub
Private Sub faerbeUrlaubsliste()
Dim zelleDatum, mitarbeiter As Variant, intRow As Long
Dim mRow, mAnz, anzahl As Long
Tabelle2.Range("A4:A10").Value = 0
For Each zelleDatum In Tabelle2.Range("C3:NO3")
anzahl = 2
If zelleDatum.Value  "" And Weekday(zelleDatum) Then
For intRow = 1 To anzahl
mRow = 4: mAnz = 1000
For Each mitarbeiter In Tabelle2.Range("B4:B" & Tabelle2.Cells(Rows.Count, 2).  _
_
End(xlUp).Row)
If Tabelle2.Cells(mitarbeiter.Row, zelleDatum.Column).Value  "x" Then
If Tabelle2.Cells(mitarbeiter.Row, 1).Value  3 Then
mAnz = Tabelle2.Cells(mitarbeiter.Row, 1).Value
mRow = mitarbeiter.Row
End If
End If
Next mitarbeiter
Tabelle2.Cells(mRow, 1).Value = mAnz + 1
Tabelle2.Cells(mRow, zelleDatum.Column).Interior.ColorIndex = 3
Next intRow
End If
Next zelleDatum
End Sub
Private Sub uebertrageDienste()
Dim rng As Range, lastTab2 As Integer
Dim i As Integer, j As Integer, k As Integer, l As Integer: j = 2: l = 2
Set rng = Tabelle2.Range("C3:NO3")
lastTab2 = Tabelle2.Cells(Rows.Count, 2).End(xlUp).Row
For i = 1 To rng.Cells.Count Step 1
If Weekday(rng.Cells(i).Value) = rng.Cells(i).Value  "" Then
Tabelle1.Cells(j, 1).Value = rng.Cells(i).Value
For k = 4 To lastTab2 Step 1
If Tabelle2.Cells(k, rng.Cells(i).Column).Interior.ColorIndex = 3 Then
Tabelle1.Cells(j, l).Value = Tabelle2.Cells(k, 2).Value
l = l + 1
Tabelle2.Cells(k, rng.Cells(i).Column).Value = "D"
End If
Next
l = 2
j = j + 1
End If
Next
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Bedingung aufstellen
23.06.2019 13:08:25
Hajo_Zi
ich konnte in der Txt Datei keine Zelle D6 feststellen, liegt es vielleicht daran dasa es keine Excel Datei ist?
Die meisten bauen Deine Datei nicht nach. Die Zeit hat schon jemand investiert.
Ein Nachbau sieht meist anders aus als das Original. Darum sollte das Original verlinkt werden.
Die meisten möchten es am Original testen um den gleichen Fehler zu erhalten.
Benutze hier im Forum die Funktion zum hochladen. Falls Du die nicht benutzen möchtest beachte, von unsicheren Servern wie z.B. www.file-upload.net lade ich keine Datei runter. (lt. Einschätzung meines Virenprogramms)

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Die Beiträge werden auch ignoriert, es erfolgt keine Antwort.
Anzeige
AW: VBA Bedingung aufstellen
23.06.2019 14:12:55
Hajo_Zi
Ich kann Dir nicht helfen , was wohl daran liegt
 aus dem Arbeitsblatt 3 - Zeile(D6) 

das ich dies nicht finden konnte.
Viel Erfolg noch.
Gruß Hajo
AW: VBA Bedingung aufstellen
23.06.2019 14:42:34
Pit
Hallo Hajo,
für meine Inkompetenz möchte ich mich entschuldigen.
Anbei die Version von mir.
https://www.herber.de/bbs/user/130545.xlsm
Anzeige
AW: VBA Bedingung aufstellen
23.06.2019 16:53:12
Piet
Hallo Pit
interessanter Name, ich habe die Aufgabenstellung leider nicht verstanden. Vor allem was prozentual berücksichtigt werden soll/muss, da stehe ich komplett auf dem Schlauch. Kannst du bitte ein Beispiel mit einer Lösungsvorgabe von Hand hochladen, damit ich es von der Logik her verstehen kann.
Ich nehme an die Lösung bezieht sich nur auf das Blatt Samstagsdienste? Müssen bei der Lösung Stammdaten oder die Urlaubs "x" bei den Mitarbeitern berücksichtigt werden? Mir faellt auf das im Beispiel für "Mitarbeiter A" fast die ganze Zeile 4 mit "x" ausgefüllt ist. Das kann m.E. kein Urlaub sein, aber Abwesenheit. Ist das richtig?
Was bedeutet die Kennzahl, muss die berücksichtigt werden? Und wie genau ist die prozentuale Verteilung gedacht?
Wenn ich das logisch verstehe kann man das Makro entsprechend anpassen.
mfg Piet
Anzeige
AW: VBA Bedingung aufstellen
23.06.2019 18:09:00
Pit
Hallo Piet,
vielen Dank für deine Antwort.
Ein Parameter wird für die Begrenzung der Dienste von bestimmtem Mitarbeiter benötigt, da sonst ein „Aufholungseffekt" bei längerer Abwesenheit durch Excel erfolgt. Bei einem Beschäftigungsverhältnis in Teilzeit (z.B. 3 Tage in der Woche) findet automatisch über mehrere hintereinander folgende Tage die Zuordnung statt, damit eine gleichmäßige Summe der Dienste am Ende des Jahrs von allen Mitarbeitern erzielt wird, obwohl diese nur 3 Tage im Einsatz ist.
Ziel der Sache ist eine gleichmäßige und faire Verteilung auf die zu dem berücksichtigten Parameter (Abwesenheit/Beschäftigungsverhältnis).
Das "X" steht für den Status = Nicht verfügbar (Urlaub, Krank, Fortbildung, usw.), daher findet keine Einteilung der Person statt.
Nach meinem derzeitigen Gedankengang sollte nur der %-Satz (Kennzahl) oder Ziffer für Max.Dienste als weiterer Parameter bei der Einteilung des Dienstes implementiert werden. Mit jedem Tag sollte sich dier Wert um 1 reduzieren (neuen Zuordnung).
Großes Danke für den Einsatz
https://www.herber.de/bbs/user/130550.xlsm
Anzeige
AW: VBA Bedingung aufstellen
23.06.2019 18:14:51
Pit
Die prozentuale Verteilung ist bislang nicht komplett durchdacht.
Die Implemenierung des Parameter ins Makro stellt ein größeres Problem dar
AW: VBA Bedingung aufstellen
25.06.2019 20:55:48
Piet
Hallo Pit
trotz mehrerer Versuche das Programm zu verbessern ist es mir nicht gelungen eine Lösung zu finden. Schade .... tut mir leid.
mfg Piet

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige