Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Anzeige
Inhaltsverzeichnis

UserFormNeu Daten in intelligente Tabelle speichern......

Forumthread: UserFormNeu Daten in intelligente Tabelle speichern......

UserFormNeu Daten in intelligente Tabelle speichern......
19.01.2025 16:49:00
FrankyBär
Hallo Excel-Profis,

habe wieder einmal ein Problem, was mich verrückt macht......
wenn ich die UserFormNeu direkt aufrufe unter (VBA/Formulare) und Daten eingebe dann funktioniert die Speicherung in Tabelle Kundenliste(Tabelle8) (tblKundenliste)

Rufe ich aber erst die UserFormKundenliste auf, wo alle Daten drin stehen, und gehe über den Button Neu, wird dann die UserFormNeu aufgerufen und kann auch Daten eingeben, aber es wird nicht gespeichert.

Tabelle Kundenliste (intelligente Tabelle - tblKundenliste)
3 UserForm: UserFormNeu, UserFormBearbeiten und UserFormKundenliste

Was mache ich falsch, ob wo liegt der Fehler oder stimmt was mit meiner Excel Version nicht?
Würde mich sehr freuen wenn sich jemand mein Problem mal ansieht, Danke.

Gruß Frank



Test-Datei:
https://www.herber.de/bbs/user/174968.xlsm

Benutze Microsoft Office LTSC Professional Plus 2021 wenn ich 2021 auswähle kommt immer 2022 !!!
Anzeige

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: UserFormNeu Daten in intelligente Tabelle speichern......
19.01.2025 17:31:18
Alwin Weisangler
Hallo,

so:


Private Sub ButtonSpeichernAnlegen_click()
Dim i&, arr(1 To 1, 1 To 11), arrCnt(): arrCnt = Array("TextBoxKDNR", "TextBoxGeboren", "ComboBoxAnrede", "TextBoxVorname", "TextBoxNachname", "TextBoxStrasse", "ComboBoxPLZ", "ComboBoxOrt", "TextBoxTelefon", "TextBoxHandy", "TextBoxEMail")
For i = 0 To UBound(arrCnt)
If IsDate(Controls(arrCnt(i))) Then
arr(1, i + 1) = CDate(Controls(arrCnt(i)).Value)
ElseIf IsNumeric(Controls(arrCnt(i))) Then
If i 8 Or i > 9 Then
arr(1, i + 1) = CDbl(Controls(arrCnt(i)).Value)
Else
arr(1, i + 1) = Controls(arrCnt(i)).Value
End If
Else
arr(1, i + 1) = Controls(arrCnt(i)).Value
End If
Next i
Tabelle8.ListObjects(1).ListRows.Add.Range.Resize(1, UBound(arr, 2)) = arr
'UserForm schließen
Unload Me
End Sub


Gruß Uwe
Anzeige
AW: UserFormNeu Daten in intelligente Tabelle speichern......
19.01.2025 18:27:20
FrankyBär
Hallo Uwe,

erstmal vielen lieben Dank für die schnelle Rückmeldung. :-)

Wenn ich dein Code über VBA mit F5 starte, dann funktioniert es einwandfrei.
Aber über das UserFormKundenliste Formular (Button Neu) leider auch nicht.

Fehlermeldung: Laufzeitfehler '2147417848(800 10 108):
Die Methode Add für das Objekt ListRows ist fehlgeschlagen

Debugg fehler.....
Private Sub ButtonSpeichernAnlegen_click()
Dim i&, arr(1 To 1, 1 To 11), arrCnt(): arrCnt = Array("TextBoxKDNR", "TextBoxGeboren", "ComboBoxAnrede", "TextBoxVorname", "TextBoxNachname", "TextBoxStrasse", "ComboBoxPLZ", "ComboBoxOrt", "TextBoxTelefon", "TextBoxHandy", "TextBoxEMail")
For i = 0 To UBound(arrCnt)
If IsDate(Controls(arrCnt(i))) Then
arr(1, i + 1) = CDate(Controls(arrCnt(i)).Value)
ElseIf IsNumeric(Controls(arrCnt(i))) Then
If i 8 Or i > 9 Then
arr(1, i + 1) = CDbl(Controls(arrCnt(i)).Value)
Else
arr(1, i + 1) = Controls(arrCnt(i)).Value
End If
Else
arr(1, i + 1) = Controls(arrCnt(i)).Value
End If
Next i
Tabelle8.ListObjects(1).ListRows.Add.Range.Resize(1, UBound(arr, 2)) = arr --- Diese Zeile wird gelb markiert
'UserForm schließen
Unload Me
End Sub

ist auch nur kurz sichtbar, da sich Excel automatisch schließt.

Liegt es vielleicht doch an meiner Excel-Version, oder ist damit irgendetwas nicht mehr in Ordnung??

Gruß Frank
Anzeige
AW: UserFormNeu Daten in intelligente Tabelle speichern......
19.01.2025 18:49:30
Alwin Weisangler
Hallo,

inzwischen habe ich mir das Konstrukt angeschaut.
So was macht man in einem Userform. Umbau auf die Schnelle via Listview.
Bin dann erst wieder am späten Abend am PC.
https://www.herber.de/bbs/user/174969.xlsm

Gruß Uwe
Anzeige
AW: UserFormNeu Daten in intelligente Tabelle speichern......
19.01.2025 22:52:40
Alwin Weisangler
Hallo,

vielleicht hast du inzwischen selbst raus gefunden, warum das Schreiben in die Tabelle fehl schlägt. Es liegt daran wie du die Listbox füllst (.RowSource).
Man kann, in dem man das Userform: UserFormKundenliste schließt --> dann schreibt und danach das Userform wieder öffnet, das Schreiben in die Tabelle ausführen.
Aber warum so ein Aufwand.
Anbei mal der dieser Einbau nebst fehlendem Rest der Userform Via Listview.
https://www.herber.de/bbs/user/174972.xlsm

Gruß Uwe

Anzeige
AW: UserFormNeu Daten in intelligente Tabelle speichern......
20.01.2025 19:28:03
FrankyBär
Hallo Uwe,

vielen Dank für deine Version, aber ich finde meine etwas schöner :-) Ich rufe einfach die Kundenalegen UserForm extra auf so funktioniert es auch.

Herzlichen Dank :-)

Aber ich hätte noch eine Frage: Kann man in der UserForm TextBoxArtikelnummer eine Abfrage machen, das eine Artikelnummer nicht doppelt vergeben wird?
Die Information soll aus der Tabelle Gesamtlagerhaltung unter Artikelnummer abgefragt werden. (intelligente Tabelle - tblGesamtlagerhaltung)

Tabelle Gesamtlagerhaltung - Spalten = Artikelnummer, Artikelname etc.

Gruß Frank
Anzeige
AW: UserFormNeu Daten in intelligente Tabelle speichern......
21.01.2025 11:46:49
Alwin Weisangler
Hallo Frank,

in deiner Beispieldatei wird via Application.Max +1 der nächste höhere Wert berechnet. Da braucht es keine Abfrage Application.CountIf.
Es sei denn, dass die Kundennummern anders aufgebaut als in deiner Beispieldatei.
In dem Falle wäre dieses Thema in der Textbox mit einer Abfrage via If Application.CountIf(Tabelle8.Range("tblKundenliste[Kunden-Nr.]"), Textbox1)>1
zu erschlagen.
Ich kann verstehen, dass man sich freut, was man selbst geschaffen hat.
Es ist aber davon auszugehen, dass es sich nicht nur um 20 - 30 Datensätze dreht.
Dann wirst du sehr schnell der Sucherei überdrüssig, da so wie du die Listbox füllst ein zügiges auffinden eines zu ändernden Datensatzes (Stichwort Filter) nur mit riesiger Verrenkung möglich ist.
Das war der Grund für den Vorschlag dies mit einem Listview Control zu machen. Das ist auch soweit fehlerbehandelt.

Gruß Uwe
Anzeige
AW: UserFormNeu Daten in intelligente Tabelle speichern......
21.01.2025 12:12:26
FrankyBär
Hallo Uwe,

vielen lieben Dank für dein Denkanstoß, da hast du schon recht, eine Suchfeld sollt vorhanden sein.

Und Danke für den Hinweis der Abfrage der TextBox.....werde ich heute versuchen einzubauen in der UserForm.


Herzliche Grüße
Frank
Anzeige
Anzeige
Live-Forum - Die aktuellen Beiträge
Datum
Titel
14.05.2026 13:31:09
14.05.2026 09:50:42
13.05.2026 19:14:18