Registriert seit: 16.08.2020
Version(en): 2019 64bit
Hallo,
man soll es vorher doch mal vollständig testen. Es muss erst auf Datum und dann auf Zahl geprüft werden.
so:
Code:
Private Sub Speichern() Dim i&, arrNeu(1 To 1, 1 To 20), arrCnt(): arrCnt = Array(txt_schadennummer, txt_beschreibung_schaden, txt_schaden_wann, cbHaus_Ort, txt_lagebeschreibung, cbGrund, cbVerursacher, txt_name_verursacher, txt_zeile1_schadenshergang, txt_zeile2_schadenshergang, cbSchadensbeseitigung_durch, txt_firma, txt_zeile1_schadensbeseitigung, txt_zeile2_schadensbeseitigung, txt_zeile1_LDS, txt_zeile2_LDS, txt_datumheute, cbMitarbeiter, txt_datum_erledigung, txt_kosten) For i = 1 To UBound(arrCnt) + 1 If IsDate(arrCnt(i - 1)) Then arrNeu(1, i) = CDate(arrCnt(i - 1)) ElseIf IsNumeric(arrCnt(i - 1)) Then arrNeu(1, i) = CDbl(arrCnt(i - 1)) Else arrNeu(1, i) = arrCnt(i - 1) End If Controls(arrCnt(i - 1).Name) = "" Next i txt_schadennummer = WorksheetFunction.Max(Tabelle1.Columns(1)) + 1 Tabelle1.Cells(Tabelle1.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Resize(1, UBound(arrNeu, 2)) = arrNeu End Sub
Gruß Uwe
Registriert seit: 01.07.2023
Version(en): Pro Plus 2019
Irgendwie sehe ich auch bei dem Array-Code nicht wirklich durch. Sorry Eintragen kann ich an jeder stelle was ich will, er speichert alles. Auch die Schadensnummer ist nicht ####
Registriert seit: 16.08.2020
Version(en): 2019 64bit
04.01.2025, 22:03
(Dieser Beitrag wurde zuletzt bearbeitet: 04.01.2025, 22:03 von Egon12 .)
Hallo,
soll die Schadensnummer 0001 --> 0002 usw. sein?
Wenn ja, nur in der Textbox oder nur in der Tabelle oder in Beiden.
Wenn Einschränkungen in den Textboxen vorgenommen werden sollen, muss dies in den gewünschten Textboxen vorgenommen werden. Dazu gibt es jede Menge Beispiele im Netz.
Das was ich zusammengestellt hatte ist ein recht effizienter Weg die Daten in die Tabelle zu bekommen.
für die Textbox so:
Code:
txt_schadennummer = Format(WorksheetFunction.Max(Tabelle1.Columns(1)) + 1, "0000")
Tabelle Spalte A markieren --> Zellen formatieren --> benutzerfefiniert --> 0000
Gruß Uwe
Registriert seit: 01.07.2023
Version(en): Pro Plus 2019
04.01.2025, 22:18
(Dieser Beitrag wurde zuletzt bearbeitet: 04.01.2025, 22:46 von Andyle .)
@
Egon12 Erstmal vielen Dank.
Werde mir einen anderen Code besorgen.
Das funzt garnicht mit der Formatierung.
Schadensnummer bleibt einstellig in den Userform.
Datum kann man auch eingeben wie man will, egal ob die Tabelle formatiert ist.
Vielen Dank
Danke für Eure Hilfe.
Hab es jetzt mit basteln hinbekommen.
Registriert seit: 01.07.2023
Version(en): Pro Plus 2019
Erstmal nochmals vielen Dank füe deine Hilfe! Nun habe ich noch eine Frage, gibt es eine Möglichkeit in Deinen speichercode mehrere DTPicker1 im UserForm einzubauen. In der UserForm rein ist ja kein Problem, nur mit dem speichern, da er ja anscheinend nur mit Textboxen umgehen kann. Vielen Dank
Registriert seit: 16.08.2020
Version(en): 2019 64bit
Hallo,
du meinst sicherlich das Microsoft Date and Time Picker Control 6.0.
Vermutlich muss man sicherlich nur das entsprechende Control zuweisen, wo das Datum hin soll.
Da kann ich dir nicht weiterhelfen, da ich keine 32 bit Office Version nutze.
Wenn es nicht unbedingt dieser sein soll, kann ich dir meinen selbst geschriebenen Einbauen.
Wenn du selbst mal dein Glück versuchen willst:
Date Picker AddIn und Stand Alone Gruß Uwe
Registriert seit: 01.07.2023
Version(en): Pro Plus 2019
Siehe Screen!
Angehängte Dateien
Thumbnail(s)
Registriert seit: 29.09.2015
Version(en): 2030,5
06.01.2025, 12:40
(Dieser Beitrag wurde zuletzt bearbeitet: 06.01.2025, 12:40 von snb .)
in VBA
Code:
For Each it In Controls If InStr("TextBoxComboBox", TypeName(it)) Then it = "" Next
und
Code:
sheets(1).cells(rows.count,1).end(xlup).offset(1).resize(,20)=array(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20)
Registriert seit: 01.07.2023
Version(en): Pro Plus 2019
06.01.2025, 21:39
(Dieser Beitrag wurde zuletzt bearbeitet: 06.01.2025, 21:40 von Andyle .)
Dankeschön!
Aber bringt nix mit dem DataPcker. Der zeigt immer das aktuelle datum an. Leer kann man Ihn nicht lassen.
Jetzt habe ich allerdings festgestellt, das dieser Code nicht wirklich funzt.
Code:
Private Sub txt_schadennummer_AfterUpdate() txt_schadennummer = Format(txt_schadennummer, "0000") txt_schaden_wann = Format(txt_schaden_wann, "dd,mm,yyyy") txt_datumheute = Format(txt_datumheute, "dd,mm,yyyy") txt_datum_erledigung = Format(txt_datum_erledigung, "dd,mm,yyyy") End Sub
Wenn die Zellen in der Speichertabelle nicht Datum formatiert sind, dann äbdert er auch mit diesem Code nix.
Registriert seit: 16.08.2020
Version(en): 2019 64bit
08.01.2025, 11:55
(Dieser Beitrag wurde zuletzt bearbeitet: 08.01.2025, 11:55 von Egon12 .)
Hallo,
warum gibst du so schnell auf. Ich hatte dir ja einen Link gezeigt, wo du einen Datepicker zum Einbauen findest.
Ich habe das mal in deiner Datei gemacht.
Vorgehensweise: Klicke in die Textbox, wo das Datum rein soll. Da erscheint der DropButton. Wenn du diesen anklickst wird der Datepicker gestartet.
Wähle darin dein Datum aus.
Userform.xlsm (Größe: 89,56 KB / Downloads: 2)
Gruß Uwe