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

ComboBoxen mit unterschiedlichen Werten

ComboBoxen mit unterschiedlichen Werten
27.04.2022 13:16:09
Marco
Hallo Zusammen,
Ich habe eine Excel Datei mit mehreren Blättern und einer Kalender Funktion. Grob gesagt möchte ich nun eine Abfrage in Form einer Userform einpflegen. Diese fragt die Verfügbarkeit der einzelnen Mitarbeier pro Tag einer KW ab und listet diese auf. Gleichzeitig schreibt sie die Namen in verschiedene Tabellen. Eine Tabelle existiert pro Arbeitsbereich.
Die Userform zieht sich diese Daten aus den Listen und zeigt in unterschiedlichen Comboboxen die Verfügbarkeit der Mitarbeiter an. Hierbei wird immer der erste Wert aus der Liste angezeigt. Jetzt ist es ja aber so, dass jeder Name nur einmal verwendet werden kann. Jeder Name ist individuell. Ein Name kann aber mehrere Funktionen wahrnehmen. Dh. Ein Name kann in verschiedenen Comboboxeb auftauchen.
Jetzt möchte ich aber, dass das Makro alle Werte bestimmter Comboboxen überprüft. Sollte ein Name mehrmals vorkommen, soll der nächste Name der Liste angezeigt werden. Sollte der Name dann Widerruf ebebenfalls schon vorkommen, soll wieder der nächste Name der Liste angezeigt werden. Am Ende der Liste soll dann der erste Name wieder geprüft werden, bis der ursprünglich ausgewählte Name wieder dran kommt. Sollte dann kein Name mehr frei sein, soll die Combobox leer anzeigen und rot gefärbt werden.
Letztendlich soll das makro automatisch prüfen, ob die kompletten Maschinen durch das verfügbare Personal auch bedient und somit gestellt werden kann.
Als Beispiel hab ich die Datei angehängt:
https://www.herber.de/bbs/user/152700.xlsm
Ich hoffe, ihr wisst was ich meine.
Danke vorab!!!
LG Marco

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: ComboBoxen mit unterschiedlichen Werten
27.04.2022 17:11:59
Oberschlumpf
Hi Marco
hier, probier mal
https://www.herber.de/bbs/user/152704.xlsm
Ich hab deinen Code in UserForm_Initialize ein wenig bereinigt.
Du wiederholtest immer wieder die For/Next-Schleifen für das Befüllen der Comboboxen.
Das hab ich im Makro sbAddInCmb zusammengefasst.
D. h., For/Next muss nur noch 1x geschrieben werden; alle anderen, wichtigen Daten erhält das Makro per Parameter
Dann hab ich das Makro sbChoiceColleague erstellt.
1. zuerst erhalten Combo1 und Combo2 IMMER den 1. Eintrag aus ihren Listen (egal, ob Mo,Di,Mi, usw)
so hattest du es ja auch programmiert
2. für die übrigen Combos 3-6 werden für jeden einzelnen Durchlauf erst mal die angezeigten Einträge aus den schon abgearbeiteten Combos in einer Array-Variablen gesammelt
3. jetzt wird z Bsp für Combo3 seine eigenen Listeinträge mit den Array-Inhalten verglichen
erst, wenn ein Eintrag aus Liste(Combo3) NICHT im Array enthalten, wird genau dieser Eintrag in Combo3 als Auswahl angezeigt
all das wiederholt sich für die übrigen Combos
Beachte auch die Infos (Anleitung) direkt in der Tabelle.
Bei richtiger Befolgung wird, wie gewünscht, Combo4 = rot
Konnte ich helfen?
Ciao
Thorsten
...ach ja, Nachteil bei 1.
Für Combo1 + 2 werden IMMER die jeweils ersten Einträge angezeigt; hier wäre es vllt besser, für Combo1 + 2 die Einträge aus ihren Listen per Zufall auswählen zu lassen...
Anzeige
AW: ComboBoxen mit unterschiedlichen Werten
27.04.2022 20:31:48
Marco
Hallo Thorsten,
geiler scheiß, funktioniert tadellos!!
Über deine Anmerkungen mache ich gleich einen weiteren Beitrag auf, diese Dinge sind dann tatsächlich noch aufgekommen. Das wäre natürlich noch sehr interessant.
Müsste dann vermutlich alles ins Change Ereignis, aber wie der Code dann aussieht - da bin ich definitiv blank.... :/ :D
Herzlichen Dank jetzt schonmal und bis in den nächsten Beitrag :)
Lg Marco
AW: ComboBoxen mit unterschiedlichen Werten
27.04.2022 20:55:06
Marco
Mist, ich war zu schnell, geht doch nicht. Es kommt die Fehlermeldung "typen unverträglich, 13". Markiert wird meine Userform. Den einzigen Bestandteil, den ich nicht übernommen habe, war die automatische Befüllung der Comboboxen. Da bin ich bislang noch bei meinem alten Weg geblieben...
Ansonsten hab ich den Code von Thorsten eingefügt und um die weiteren Wochentage ergänzt.
Weiß jemand, warum er mir die Fehlermeldung bringt?
Hier der Code:

Sub sbChoiceColleague()
Dim liCmb As Integer, liIdx As Integer, larCmbs(), liIdxAR As Integer, lboNOT As Boolean
'******Montag anpassen
With Verfügbarkeit
With .ComboBox1
.Text = .List(0)
End With
With .ComboBox2
.Text = .List(0)
End With
For liCmb = 3 To 28
larCmbs = fcCmbs(liCmb - 2)
With .Controls("ComboBox" & liCmb)
For liIdx = 0 To .ListCount - 1
For liIdxAR = 0 To UBound(larCmbs)
If larCmbs(liIdxAR) = .List(liIdx) Then
lboNOT = True
Exit For
End If
Next
If lboNOT = True Then
lboNOT = False
Else
.Text = .List(liIdx)
Exit For
End If
Next
If .Text = "" Then
.BackColor = vbRed
Else
.BackColor = &H80000005
End If
End With
Next
'*****Dienstag anpassen
With .ComboBox30
.Text = .List(0)
End With
With .ComboBox31
.Text = .List(0)
End With
For liCmb = 32 To 57
larCmbs = fcCmbs(liCmb - 2)
With .Controls("ComboBox" & liCmb)
For liIdx = 0 To .ListCount - 1
For liIdxAR = 0 To UBound(larCmbs)
If larCmbs(liIdxAR) = .List(liIdx) Then
lboNOT = True
Exit For
End If
Next
If lboNOT = True Then
lboNOT = False
Else
.Text = .List(liIdx)
Exit For
End If
Next
If .Text = "" Then
.BackColor = vbRed
Else
.BackColor = &H80000005
End If
End With
Next
'******Mittwoch anpassen
With .ComboBox59
.Text = .List(0)
End With
With .ComboBox60
.Text = .List(0)
End With
For liCmb = 61 To 86
larCmbs = fcCmbs(liCmb - 2)
With .Controls("ComboBox" & liCmb)
For liIdx = 0 To .ListCount - 1
For liIdxAR = 0 To UBound(larCmbs)
If larCmbs(liIdxAR) = .List(liIdx) Then
lboNOT = True
Exit For
End If
Next
If lboNOT = True Then
lboNOT = False
Else
.Text = .List(liIdx)
Exit For
End If
Next
If .Text = "" Then
.BackColor = vbRed
Else
.BackColor = &H80000005
End If
End With
Next
'**** Donnerstag anpassen
With .ComboBox88
.Text = .List(0)
End With
With .ComboBox89
.Text = .List(0)
End With
For liCmb = 90 To 115
larCmbs = fcCmbs(liCmb - 2)
With .Controls("ComboBox" & liCmb)
For liIdx = 0 To .ListCount - 1
For liIdxAR = 0 To UBound(larCmbs)
If larCmbs(liIdxAR) = .List(liIdx) Then
lboNOT = True
Exit For
End If
Next
If lboNOT = True Then
lboNOT = False
Else
.Text = .List(liIdx)
Exit For
End If
Next
If .Text = "" Then
.BackColor = vbRed
Else
.BackColor = &H80000005
End If
End With
Next
'***** Freitag anpassen
With .ComboBox117
.Text = .List(0)
End With
With .ComboBox118
.Text = .List(0)
End With
For liCmb = 119 To 144
larCmbs = fcCmbs(liCmb - 2)
With .Controls("ComboBox" & liCmb)
For liIdx = 0 To .ListCount - 1
For liIdxAR = 0 To UBound(larCmbs)
If larCmbs(liIdxAR) = .List(liIdx) Then
lboNOT = True
Exit For
End If
Next
If lboNOT = True Then
lboNOT = False
Else
.Text = .List(liIdx)
Exit For
End If
Next
If .Text = "" Then
.BackColor = vbRed
Else
.BackColor = &H80000005
End If
End With
Next
'****Samstag anpassen
With .ComboBox146
.Text = .List(0)
End With
With .ComboBox147
.Text = .List(0)
End With
For liCmb = 148 To 173
larCmbs = fcCmbs(liCmb - 2)
With .Controls("ComboBox" & liCmb)
For liIdx = 0 To .ListCount - 1
For liIdxAR = 0 To UBound(larCmbs)
If larCmbs(liIdxAR) = .List(liIdx) Then
lboNOT = True
Exit For
End If
Next
If lboNOT = True Then
lboNOT = False
Else
.Text = .List(liIdx)
Exit For
End If
Next
If .Text = "" Then
.BackColor = vbRed
Else
.BackColor = &H80000005
End If
End With
Next
'***** Sonntag anpassen
With .ComboBox175
.Text = .List(0)
End With
With .ComboBox176
.Text = .List(0)
End With
For liCmb = 177 To 202
larCmbs = fcCmbs(liCmb - 2)
With .Controls("ComboBox" & liCmb)
For liIdx = 0 To .ListCount - 1
For liIdxAR = 0 To UBound(larCmbs)
If larCmbs(liIdxAR) = .List(liIdx) Then
lboNOT = True
Exit For
End If
Next
If lboNOT = True Then
lboNOT = False
Else
.Text = .List(liIdx)
Exit For
End If
Next
If .Text = "" Then
.BackColor = vbRed
Else
.BackColor = &H80000005
End If
End With
Next
End With
End Sub
Function fcCmbs(ByVal anzahl As Integer)
Dim liIdx As Integer, larCmbs()
ReDim larCmbs(0)
For liIdx = 0 To anzahl
With Verfügbarkeit.Controls("ComboBox" & liIdx + 1)
larCmbs(UBound(larCmbs)) = .Text
ReDim Preserve larCmbs(UBound(larCmbs) + 1)
End With
Next
ReDim Preserve larCmbs(UBound(larCmbs) - 1)
fcCmbs = larCmbs
End Function
In der Userform steht:

Private Sub UserForm_Initialize()
Dim rng As Range
Dim crtl As Control
Dim Box As Control
Dim i As Integer
Dim s As Integer
'***ComboBoxen alle leeren
For Each ctrl In Verfügbarkeiten.Controls
If TypeOf ctrl Is MSForms.ComboBox Then
ctrl.Clear
End If
Next ctrl
'***ComboBoxen mit Inhalten füllen und erster Eintrag anzeigen
' SF Mo
For Each rng In Worksheets("Verfügbarkeit").Range("BF4:BF70")
If rng  "" Then ComboBox1.AddItem rng
Next
' SF Di
For Each rng In Worksheets("Verfügbarkeit").Range("BG4:BG70")
If rng  "" Then ComboBox30.AddItem rng
Next
'SF Mi
For Each rng In Worksheets("Verfügbarkeit").Range("BH4:BH70")
If rng  "" Then ComboBox59.AddItem rng
Next
'SF Do
For Each rng In Worksheets("Verfügbarkeit").Range("BI4:BI70")
If rng  "" Then ComboBox88.AddItem rng
Next
'SF Fr
For Each rng In Worksheets("Verfügbarkeit").Range("BJ4:BJ70")
If rng  "" Then ComboBox117.AddItem rng
Next
'SF Sa
For Each rng In Worksheets("Verfügbarkeit").Range("BK4:BK70")
If rng  "" Then ComboBox146.AddItem rng
Next
'SF So
For Each rng In Worksheets("Verfügbarkeit").Range("BL4:BL70")
If rng  "" Then ComboBox175.AddItem rng
Next
ComboBox7.ListIndex = 0
'B Mo
For Each rng In Worksheets("Verfügbarkeit").Range("BM4:BM70")
If rng  "" Then ComboBox2.AddItem rng
If rng  "" Then ComboBox4.AddItem rng
If rng  "" Then ComboBox9.AddItem rng
Next
'B Di
For Each rng In Worksheets("Verfügbarkeit").Range("BN4:BN70")
If rng  "" Then ComboBox31.AddItem rng
If rng  "" Then ComboBox33.AddItem rng
If rng  "" Then ComboBox38.AddItem rng
Next
'B Mi
For Each rng In Worksheets("Verfügbarkeit").Range("BO4:BO70")
If rng  "" Then ComboBox60.AddItem rng
If rng  "" Then ComboBox62.AddItem rng
If rng  "" Then ComboBox67.AddItem rng
Next
'B Do
For Each rng In Worksheets("Verfügbarkeit").Range("BP4:BP70")
If rng  "" Then ComboBox89.AddItem rng
If rng  "" Then ComboBox91.AddItem rng
If rng  "" Then ComboBox96.AddItem rng
Next
' Fr
For Each rng In Worksheets("Verfügbarkeit").Range("BQ4:BQ70")
If rng  "" Then ComboBox118.AddItem rng
If rng  "" Then ComboBox120.AddItem rng
If rng  "" Then ComboBox125.AddItem rng
Next
' Sa
For Each rng In Worksheets("Verfügbarkeit").Range("BR4:BR70")
If rng  "" Then ComboBox147.AddItem rng
If rng  "" Then ComboBox149.AddItem rng
If rng  "" Then ComboBox154.AddItem rng
Next
' So
For Each rng In Worksheets("Verfügbarkeit").Range("BS4:BS70")
If rng  "" Then ComboBox176.AddItem rng
If rng  "" Then ComboBox178.AddItem rng
If rng  "" Then ComboBox183.AddItem rng
Next
etc etc etc
'****Alle Boxen füllen
sbChoiceColleague
End Sub
In Modul 2 steht:

Option Explicit
Sub sbChoiceColleague()
Dim liCmb As Integer, liIdx As Integer, larCmbs(), liIdxAR As Integer, lboNOT As Boolean
'******Montag anpassen
With Verfügbarkeit
With .ComboBox1
.Text = .List(0)
End With
With .ComboBox2
.Text = .List(0)
End With
For liCmb = 3 To 28
larCmbs = fcCmbs(liCmb - 2)
With .Controls("ComboBox" & liCmb)
For liIdx = 0 To .ListCount - 1
For liIdxAR = 0 To UBound(larCmbs)
If larCmbs(liIdxAR) = .List(liIdx) Then
lboNOT = True
Exit For
End If
Next
If lboNOT = True Then
lboNOT = False
Else
.Text = .List(liIdx)
Exit For
End If
Next
If .Text = "" Then
.BackColor = vbRed
Else
.BackColor = &H80000005
End If
End With
Next
'*****Dienstag anpassen
With .ComboBox30
.Text = .List(0)
End With
With .ComboBox31
.Text = .List(0)
End With
For liCmb = 32 To 57
larCmbs = fcCmbs(liCmb - 2)
With .Controls("ComboBox" & liCmb)
For liIdx = 0 To .ListCount - 1
For liIdxAR = 0 To UBound(larCmbs)
If larCmbs(liIdxAR) = .List(liIdx) Then
lboNOT = True
Exit For
End If
Next
If lboNOT = True Then
lboNOT = False
Else
.Text = .List(liIdx)
Exit For
End If
Next
If .Text = "" Then
.BackColor = vbRed
Else
.BackColor = &H80000005
End If
End With
Next
'******Mittwoch anpassen
With .ComboBox59
.Text = .List(0)
End With
With .ComboBox60
.Text = .List(0)
End With
For liCmb = 61 To 86
larCmbs = fcCmbs(liCmb - 2)
With .Controls("ComboBox" & liCmb)
For liIdx = 0 To .ListCount - 1
For liIdxAR = 0 To UBound(larCmbs)
If larCmbs(liIdxAR) = .List(liIdx) Then
lboNOT = True
Exit For
End If
Next
If lboNOT = True Then
lboNOT = False
Else
.Text = .List(liIdx)
Exit For
End If
Next
If .Text = "" Then
.BackColor = vbRed
Else
.BackColor = &H80000005
End If
End With
Next
'**** Donnerstag anpassen
With .ComboBox88
.Text = .List(0)
End With
With .ComboBox89
.Text = .List(0)
End With
For liCmb = 90 To 115
larCmbs = fcCmbs(liCmb - 2)
With .Controls("ComboBox" & liCmb)
For liIdx = 0 To .ListCount - 1
For liIdxAR = 0 To UBound(larCmbs)
If larCmbs(liIdxAR) = .List(liIdx) Then
lboNOT = True
Exit For
End If
Next
If lboNOT = True Then
lboNOT = False
Else
.Text = .List(liIdx)
Exit For
End If
Next
If .Text = "" Then
.BackColor = vbRed
Else
.BackColor = &H80000005
End If
End With
Next
'***** Freitag anpassen
With .ComboBox117
.Text = .List(0)
End With
With .ComboBox118
.Text = .List(0)
End With
For liCmb = 119 To 144
larCmbs = fcCmbs(liCmb - 2)
With .Controls("ComboBox" & liCmb)
For liIdx = 0 To .ListCount - 1
For liIdxAR = 0 To UBound(larCmbs)
If larCmbs(liIdxAR) = .List(liIdx) Then
lboNOT = True
Exit For
End If
Next
If lboNOT = True Then
lboNOT = False
Else
.Text = .List(liIdx)
Exit For
End If
Next
If .Text = "" Then
.BackColor = vbRed
Else
.BackColor = &H80000005
End If
End With
Next
'****Samstag anpassen
With .ComboBox146
.Text = .List(0)
End With
With .ComboBox147
.Text = .List(0)
End With
For liCmb = 148 To 173
larCmbs = fcCmbs(liCmb - 2)
With .Controls("ComboBox" & liCmb)
For liIdx = 0 To .ListCount - 1
For liIdxAR = 0 To UBound(larCmbs)
If larCmbs(liIdxAR) = .List(liIdx) Then
lboNOT = True
Exit For
End If
Next
If lboNOT = True Then
lboNOT = False
Else
.Text = .List(liIdx)
Exit For
End If
Next
If .Text = "" Then
.BackColor = vbRed
Else
.BackColor = &H80000005
End If
End With
Next
'***** Sonntag anpassen
With .ComboBox175
.Text = .List(0)
End With
With .ComboBox176
.Text = .List(0)
End With
For liCmb = 177 To 202
larCmbs = fcCmbs(liCmb - 2)
With .Controls("ComboBox" & liCmb)
For liIdx = 0 To .ListCount - 1
For liIdxAR = 0 To UBound(larCmbs)
If larCmbs(liIdxAR) = .List(liIdx) Then
lboNOT = True
Exit For
End If
Next
If lboNOT = True Then
lboNOT = False
Else
.Text = .List(liIdx)
Exit For
End If
Next
If .Text = "" Then
.BackColor = vbRed
Else
.BackColor = &H80000005
End If
End With
Next
End With
End Sub
Function fcCmbs(ByVal anzahl As Integer)
Dim liIdx As Integer, larCmbs()
ReDim larCmbs(0)
For liIdx = 0 To anzahl
With Verfügbarkeit.Controls("ComboBox" & liIdx + 1)
larCmbs(UBound(larCmbs)) = .Text
ReDim Preserve larCmbs(UBound(larCmbs) + 1)
End With
Next
ReDim Preserve larCmbs(UBound(larCmbs) - 1)
fcCmbs = larCmbs
End Function
Danke vorab!!
Lg Marco
Anzeige
wer anders bitte
27.04.2022 22:11:34
Oberschlumpf
Hi Marco,
ich habe 2 Fragen!
a) warum zeigst du nicht schon in deinem ersten Beitrag eine Bsp-Datei, in der exakt die gleichen Zellbereiche wie im Original verwendet werden?
Wir KÖNNEN NICHT wissen, dass für Combo1 der eigtl richtige Bereich "BF4:BF70" ist!
b) wieso zeigst du jetzt nur deinen angepassten Code (sehr viel!) und nicht all den Code wieder ein (m)einer Bsp-Datei?
Zumindest ich habe keine Lust, deinen ganzen - neuen - Code so lange in meine Bsp-Datei einzubau.....ohhhh!....DAS würde ja eh nicht funktionieren!!
grrr....du zeigst deinen Code, mit dem du versuchst, der sich aber auf Zellbereiche bezieht, die in deiner Bsp-Datei gar nicht verwendet werden!
Ich bin raus.
Sorry, wer eine qualifizierte Lösung erwartet/erhofft...muss erst mal eine qualifizierte Frage stellen
Ciao
Thorsten
Anzeige
AW: wer anders bitte
28.04.2022 06:29:37
Marco
Hallo Thorsten,
Es tut mir wirklich leid wenn ich dich enttäuscht habe. Ich ging davon aus, dass ich deinen Code selbst Mut meinen Bescheidenen VBA Kenntnissen in meine Original Datei einfügen und anpassen kann. Dem ist aber wohl leider nicht so.
Ich wollte eine Datei zum Beispiel geben, die zwar ähnlich aufgebaut, aber deutlich kleiner ist und auch nicht so einen großen Aufwand für den Beantwortenden darstellt. Ich ging ja davon aus, dass ich den Code dann anpassen kann. Wie ja wie bereits gesagt, wohl nicht funktioniert.
Meine Original Datei hat über 3 MB. Selbst wenn ich alle sensiblen Daten raus nehme. Allein die Userform hat 200 Comboboxen. Da wollte ich wie gesagt den Beantworter nicht überschlagen....
Wenn du mir nicht mehr helfen willst kann ich das verstehen. Wollte mich aber erklären.
Tut mir leid.
LG Marco
Anzeige
ok, neuer Versuch
28.04.2022 08:01:14
Oberschlumpf
Hi Marco
auch ich will mich entschuldigen.
Sorry, ich war im ersten Moment wirklich genervt - aber natürlich is auch mir jetzt klar, dass du diese Fehler nich mit böser Absicht gemacht hast - sorry, mir tuts auch leid!
Und ja, du hast recht: 3MB-Datei ist für Upload hier nicht möglich, und 200 Combos sind für ne Testdatei echt zu viel!
Aber ok, neuer Versuch.
Zeig doch bitte eine (kleine) Testdatei per Upload, die das hier beinhaltet:
- Namen der Mitarbeiter in DEN Spalten, die du auch im Original verwendest und bitte kennzeichnen, welche Spalten wofür sind
- zeig bitte auch die Combos für Dienstag und vllt auch für Mittwoch (wenn die Datei dann immer noch kleiner 300kb ist; wenn zu groß, dann eben nur für Mo + Di)
Und wieso hast du nicht die automatische Befüllung der Comboboxen übernommen? Das ist doch viel weniger Code als du verwendest.
(Frage bitte beantworten)
Ciao
Thorsten
Anzeige
AW: ok, neuer Versuch
28.04.2022 08:17:00
Marco
Hallo Thorsten,
Alles gut, ich kann es echt verstehen!
Danke für den zweiten Versuch.
Die Datei werde ich gleich mal versuchen zu kürzen. Ich melde mich dann gleich wieder. Gerne zeig ich dann auch alle weiteren Combos etc. Ich hab die Datei auch zum Laufen gebracht. Sprich alle Fehlermeldungen gingen weg und alles wird angezeigt. Es füllt auch alle Comboboxen ordentlich und mit verschiedenen Mitarbeitern. Aber nur bis zu dem Punkt, bis es keine weiteren Mitarbeiter mehr gibt. Dann fängt die Befüllung ab diesem Punkt wieder von vorne an, also auch doppelte Besetzungen. Ich hoffe dass es in der Datei ersichtlich wird.
Ich hab die automatische Befüllung nicht übernommen, weil meine Combox beschissen verteilt waren. Also nicht CB1 ist Maschine 1 Ingenieur, CB2 ist Maschine 1, Techniker, CB3 Maschine 2 Ingenieur etc sondern CB1 Maschine 1 Ingebieur Montag, CB2 Maschine 1 Ingebieur Dienstag. Die müsste ich erst mal neu anordnen, was es mir ja auch bei der Abfrage deutlich einfacher macht. Da bin ich gerade mal noch dran. Deswegen dauert es noch kurz bis zur Zusendung der Datei. Die Userform würde ich dann doch noch schnell anpassen wollen, dass es auch an die Testfatei von vorher angelehnt ist
Danke nochmal:)
LG Marco
Anzeige
AW: ok, neuer Versuch
28.04.2022 09:16:54
Marco
Hi,
So hier die Datei. Hoffe es passt soweit...
https://www.herber.de/bbs/user/152718.xlsm
Deine Befüllung der CB werde ich noch später einfügen :)
Die ist jetzt noch nicht drin....
LG Marco
Fehler in neuer Bsp-Datei
28.04.2022 10:20:34
Oberschlumpf
Hi,
direkt nach Öffnen deiner neuen Bsp-Datei erscheint dieser Hinweis:
Userbild
nach Klick auf den rechten Button wird mir der Grund gezeigt:
Userbild
jetzt klicke ich zuerst auf "Schließen" und dann auf deinen Button "Verfügbarkeit prüfen" - es kommt zum nächsten Fehler:
Userbild
Ich kann den weiteren Codeablauf nur Beenden oder Debuggen - keiner dieser 2 Möglichkeiten zeigt dein Userform an.
Bitte alle Fehler beheben, und die Datei erneut per Upload zeigen.
Ciao
Thorsten
Anzeige
und noch'n paar Fragen
28.04.2022 10:34:42
Oberschlumpf
Hi,
1. Was bedeuten in der Tabelle in Zeile 2 diese Abkürzungen?
WaWeSF
WaWeB
WaWeK
WaWeW
WaWeF
SWK
...
usw
2. Wieso stehen ab Spalte BF...
a) in Zeile 3 immer wieder die Wochentage?
b) und darunter mal mit mal ohne Leerzellen immer wieder die MAX-Namen?
3. In welchem Zusammenhang stehen die Einträge in 1. + 2. zu dem Userform für die Maschinen?
4. Wo sind denn die Spalten mit...
Leitung Ingenieur Techniker Arbeiter
...und den dazugehörigen Mitarbeiternamen?
bitte alle Fragen beantworten - sonst kann ich ja gar nix machen.
Im Vergleich mit deiner 1. Bsp-Datei hat die neue Bsp-Datei nicht mehr wirklich viel gemeinsam.
Ciao
Thorsten
Anzeige
AW: und noch'n paar Fragen
28.04.2022 13:41:39
Marco
So sorry, hier nochmal die Datei:
https://www.herber.de/bbs/user/152729.xlsm
WaweSF etc sind die einzelnen Bezeichnungen für Ingenieur, waweb für Techniker, wawek für Arbeiter etc etc quasi die Labels der Userform vom oben und von links nach rechts.
Ab Zeile B stehen quasi die Wochentage weil:
In Spalten BF ab Zeile 4 wird die Woche ausgewertet. Die Woche steht ja links neben dem Button. Zunächst werden alle Mitarbeiter ausgewertet ob sie da sind, also ein freies Feld haben. Anschließend wird verglichen, ob die die da sind, die Berechtigung WaweSF haben. Haben sie die, werden sie geschrieben und zwar genau in der Zeile, in der sie auch im der woche stehen.
Die Auswertung wird natürlich für jede Art der Berechtigung und für jeden Wochentag einzeln gemacht, daher hat auch jede Berechtigung einen eigenen Wochentag. Und die leeren Zellen existieren aufgrund der Nichtverfügbarkeit des Mitarbeiters an dem Tag.
Die Combobox wird dann so befüllt, dass leere Zeilen übersprungen werden
Zur Vereinfachung habe ich die Spalten WaweF etc in der Userform im Label umbenannt. Letztendlich würde da aber von links nach rechts jede Spaltenüberschrift stehen.
Ich hoffe, es war einigermaßen verständlich....
Die Datei lief vorher bei einer Woche. Habe ich dann aber eine neue Woche eingefügt und auswerten lassen bringt er den Fehler "unzulässige Verwendung von Wert 0". Gelb ist die Userform...
Ich denke das kommt daher, dasa auch manchmal die 4e Zeile der Spalte leer sein kann... oder such mal eine ganze Spalte leer sein kann..
LG Marco
.
Anzeige
ich gebe auf
28.04.2022 15:32:50
Oberschlumpf
Hi Marco,
sorry, ich kann deine Erklärungen nicht auf die Datei anwenden.
Du schreibst: WaweSF etc sind die einzelnen Bezeichnungen für Ingenieur, waweb für Techniker, wawek für Arbeiter etc etc
Warum steht im Userform nicht auch WaweSF , WaWeB
Oder für mich besser: Wieso steht in Zeile 2 an den richtigen Stellen nicht "Ingenieur","Techniker" usw?
Sorry, ich kann die Abkürzungen nicht dem Ingenieur, Techniker, sonstigem zuordnen.
Du schreibst: Ab Zeile B stehen quasi die Wochentage weil:
In der Datei in der Tabelle ist Spalte B komplett leer! Außer n paar Farben ist in Spalte B gar nix enthalten.
Du schreibst:In Spalten BF ab Zeile 4 wird die Woche ausgewertet. Die Woche steht ja links neben dem Button.
Egal, ob ich eine andere Kalenderwoche auswähle oder nicht - die Anzeigen in der Tabelle bleiben gleich - es ändert sich nix.
Du schreibst: Zunächst werden alle Mitarbeiter ausgewertet ob sie da sind, also ein freies Feld haben.
WO wird was ausgewertet? In den Spalten BF,BG usw stehen FEST, also ohne Formel, die Texte Max 1, Max 2 usw drin! Und wo wird z Bsp für Max 1 das freie Feld geprüft?
Du schreibst: Anschließend wird verglichen, ob die die da sind, die Berechtigung WaweSF haben. Haben sie die, werden sie geschrieben und zwar genau in der Zeile, in der sie auch im der woche stehen.
WO wird geprüft, WER WaweSF ist oder nicht oder was auch immer?
Sorry, Marco, das alles ist für mich zu hoch.
Ciao
Thorsten
AW: ich gebe auf
28.04.2022 17:35:05
Marco
Hallo Thorsten,
Alles gut, dennoch vielen Dank. Ich habe jetzt alles zum Laufen gebracht. Lediglich die Auswertung der Comboboxen jeweils der Tage Dienstag bis Mittwoch muss ich noch hinbekommen, aber sonst passt alles einwandfrei. Und das Dank deiner Hilfe und Denkanstöße.
Also vielen herzlichen Dank!
Der Thread hier wäre dann tatsächlich erledigt. Den anderen Beitrag lasse ich noch offen, den würde ich auch gerne in meine Datei übertragen. Das sollte an der ursprünglichen Testdatei die du verändert hast auch gehen.
LG Marco
AW: ComboBoxen mit unterschiedlichen Werten
27.04.2022 21:19:36
Marco
Allerdings kann es auch daran liegen, dass ich zuhause einen 64 bit Rechner verwende und im Geschäft einen 32 Bit Rechner... Ich musste auch beim öffnen meiner Datei von der Arbeit einige Private Declaratiomen aus einem anderen Modul aus einem anderen tabellenblatt ausklammern. Da waren einige mit user32.dll dabei.
Ich muss es morgen also nochmal auf der Arbeit probieren. Vielleicht läuft es ja doch dort weiter.
LG Marco

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige