Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1684to1688
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
Userformdaten in Tabelle schreiben
08.04.2019 09:20:22
Tim
Guten Morgen zusammen,
ich habe eine Userform in der ich Arbeitszeiten eintrage und sie anschließend in ein Tabellenblatt übernehme, das funktioniert. Dabei prüft das Makro ob der Vor-und Familienname bereits mit dem Status "aktiv" in der Tabelle vorhanden ist.
Jetzt stehe ich vor der Herausforderung, dass ich via Checkboxen (Mo-Fr) an unterschiedlichen Wochentagen, andere Arbeitszeiten pflegen möchte und diese als neuer Zeileneintrag in die Tabelle geschrieben werden sollen, wenn sie noch nicht vorhanden sind.
Wie erreiche ich zum einen die Prüfung ob es den Zeileneintrag bereits mit diesen Informationen gibt und er den Status "aktiv" hat und zweitens, wie für jeden angeklickten Wochentag in der Checkbox eine neue Zeile beschrieben wird?
Dazu folgende Datei:
https://www.herber.de/bbs/user/129006.xlsm

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userformdaten in Tabelle schreiben
08.04.2019 16:28:29
Tim
Ich habe selbst etwas gebastelt und bin meinem Ziel etwas näher gekommen.
Was mir fehlt ist der Abgleich Checkbox des jeweiligen Wochentag zu Einträge in den Zeilen der Tabelle.
Bsp.: besteht ein Eintrag zu Vorname, Familienname, Vertrag und z.B. Montag dann MsgBox "bereits vorhanden". Sind weitere Wochentage auf "true" die noch keinen Eintrag in der Tabelle haben, dann schreibe für jeden Wochentag eine weitere Zeile.
Hier die aktualisierte Datei:
https://www.herber.de/bbs/user/129018.xlsm
Kann mir dabei jemand behilflich sein?
Anzeige
AW: Userformdaten in Tabelle schreiben
09.04.2019 05:11:34
fcs
Hallo Tim,
um die Wochentage effektiv zu prüfen müssen die daten der Checkboxen zunächst in ein Array eingelesen werden.
dannach kann man die Wochentage in einer Schleife abarbeiten/prüfen.
Sieht dann etwa wie folgt aus.
LG
Franz
Sub Kundendaten_speichern()
Dim vntQuelle
Dim lngDS As Long
Dim strVorname As String
Dim strFamilienname As String
Dim strVertrag As String
Dim bolVorhanden As Boolean
Dim arrWoTage(1 To 7, 1 To 3)
Dim bolWochentag As Boolean, intWT As Integer
Dim wksMA As Worksheet
Dim Leerzeile As Long
strVorname = UserForm2.Vorname
strFamilienname = UserForm2.Familienname
strVertrag = UserForm2.Vertrag
'Daten zu Wochentagen setzen/aus Userform einlesen
arrWoTage(1, 1) = UserForm2.Montag:     arrWoTage(1, 2) = "Mo": arrWoTage(1, 3) = "Montag"
arrWoTage(2, 1) = UserForm2.Dienstag:   arrWoTage(2, 2) = "Di": arrWoTage(2, 3) = "Dienstag"
arrWoTage(3, 1) = UserForm2.Mittwoch:   arrWoTage(3, 2) = "Mi": arrWoTage(3, 3) = "Mittwoch"
arrWoTage(4, 1) = UserForm2.Donnerstag: arrWoTage(4, 2) = "Do": arrWoTage(4, 3) = "Donnerstag"
arrWoTage(5, 1) = UserForm2.Freitag:    arrWoTage(5, 2) = "Fr": arrWoTage(5, 3) = "Freitag"
arrWoTage(6, 1) = False:                arrWoTage(6, 2) = "Sa": arrWoTage(6, 3) = "Samstag"
arrWoTage(7, 1) = False:                arrWoTage(7, 2) = "So": arrWoTage(7, 3) = "Sonntag"
Set wksMA = Worksheets("Mitarbeiter")
With wksMA
'Letzte Zeile mit Name
lngDS = .Cells(.Rows.Count, 1).End(xlUp).Row
'vorhandene Daten in Array einlesen
vntQuelle = .Range(.Cells(1, 1), .Cells(lngDS, 13))
'Wochentage abarbeiten
For intWT = 1 To 7
If arrWoTage(intWT, 1) = True Then
bolVorhanden = False
'Prüfen, ob Eintrag schon vorhanden
For lngDS = 1 To UBound(vntQuelle, 1)
If vntQuelle(lngDS, 1) = strVorname & " " & strFamilienname Then
If vntQuelle(lngDS, 2) = strVertrag Then
If vntQuelle(lngDS, 3) = arrWoTage(intWT, 2) Then
bolVorhanden = True
Exit For
End If
End If
End If
Next lngDS
If bolVorhanden = True Then
MsgBox "Eintrag für """ & arrWoTage(intWT, 3) _
& """  ist bereits vorhanden in Zeile " & lngDS
Else
'nächste freie Zeile ermitteln
Leerzeile = .Cells(.Rows.Count, 1).End(xlUp).Row
If Leerzeile 

Anzeige
AW: Userformdaten in Tabelle schreiben
09.04.2019 10:11:06
Tim
Hallo Franz, vielen Dank, das hätte ich so nicht gelöst bekommen!

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige