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

Änderungen speichern über Userform

Forumthread: Änderungen speichern über Userform

Änderungen speichern über Userform
23.12.2025 09:30:10
Leolo
Hallo zusammen!
Ich bin dabei eine kleine Datenbank zur Aktenverwaltung mit Excel zu erstellen. Ich habe erst angefangen mich mit VBA zu beschäftigen, und mir meine bisherigen Codes eher zusammengesucht. Meine Kenntnisse sind daher sehr gering.

Ich habe eine Userform mit verschiedenen Textboxen zur Datenerfassung. Zum Bearbeiten von Datensätzen habe ich eine weitere Userform mit Suchfunktion (nach einmalig vergebenem Aktenzeichen aus Spalte Q bzw. 17), die mir dann eine Trefferliste anzeigt, welche ich dann entsprechend bearbeiten kann. Mein Code zum Änderungen speichern stimmt leider nicht, da der geänderte Datensatz immer in einer Zelle nach dem letzten Datensatz aufgeführt wird, und nicht den bereits bereits bestehenden Datensatz in dieser Zeile überschreibt/ändert.

Vielleicht kann mir jemand von euch helfen, vielen Dank bereits im Voraus und liebe Grüße!

---
Das Problem scheint an der Zeile i = i + 1 zu liegen. Wenn ich diese aber rausnehme, speichert es gar nichts ab und das Programm hängt sich auf.
Hier mein Modul für die Trefferzeile:

Public Function TrefferZeileNeu(blatt As Worksheet, StartZeile As Integer, StartSpalte As Integer, treffer As MSForms.ComboBox) As Integer

'zugehöriges Tabellenblatt aktivieren
blatt.Activate

'Variablen definieren
Dim i As Integer

'Variablen Werte zuweigen
i = StartZeile

Do While Cells(i, StartSpalte).Value > ""
If Cells(i, StartSpalte).Value = treffer Then
'Treffer
Exit Do
Else
'Kein Treffer
End If

i = i + 1
Loop

TrefferZeileNeu = i

End Function
----
Meine Userform sieht dann so aus:

Private Sub CB_ÄnderungenSpeichern_Click()

Dim i As Integer
Dim OrtderEinlagerung As String
Dim Eingelagertdurch As String

i = TrefferZeileNeu(Sheets("Datenbank"), 11, 2, Me.ComboBoxTreffer)
OrtderEinlagerung = Me.TextBoxOrtderEinlagerung.Text
Eingelagertdurch = Me.TextBoxEingelagertdurch.Text

'Werte in das Tabellenblatt eintragen
Cells(i, 4).Value = OrtderEinlagerung
Cells(i, 5).Value = Eingelagertdurch

MsgBox "Die Änderungen wurden gespeichert!", vbInformation, "Erfolg"

Unload Me

End Sub
Anzeige

23
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Änderungen speichern über Userform
23.12.2025 09:57:13
Alwin Weisangler
Hallo,

diese Funktion ist für einen Datensatz speichern eigentlich nicht erforderlich. Selbst wenn man den in die erste leere Zeile/Zelle packen will, gibt es effizientere Wege. Auch für das eventuelle Auffinden eines zu ändernden Datensatzes gibt es simple Wege dies zu erledigen
Besser ist, man hat eine saubere fortlaufende Tabelle, dann braucht man so ein Gesuche überhaupt nicht.

Viele nutzen für solche Sachen ein Listobjekt (formatierte Tabelle / intelligente Tabelle). Wenn das bei dir auch der Fall, sollte man dann auch besser auf Listobjekt programmieren.

Lade mal deine Datei mit allem aber anonymisiert hoch.

Gruß Uwe
Anzeige
AW: Änderungen speichern über Userform
23.12.2025 10:44:52
Leolo
Hallo Uwe,

wie gesagt, meine Kenntnisse beschränken sich leider auf ein Minimum, dass ich mit dem gearbeitet habe was ich online finden konnte :) Eine intelligente Tabelle habe ich angelegt.

Vom Arbeitsrechner aus kann ich leider gar nichts ins Internet hochladen - anbei habe ich mal meine Codes aufgeführt (Falls das zu umständlich ist lade ich die Beispieldatei heute Abend von zu Hause aus hoch) - vielen Dank dir schonmal!

Liebe Grüße Leo
----------------------
DatensatzBearbeitenModul:

Sub Schaltfläche10_Klicken()

UserFormBearbeiten.Show

End Sub

Public Sub EintragSuchen(form As UserForm)

ThisWorkbook.Worksheets("Datenbank").Activate
form.ComboBoxTreffer.ClearDaten

'Variablen definieren
Dim i As Integer 'Startzeile
Dim Zelleneintrag As String
Dim Eingabe As String

'Variablen Werte zuweisen
i = 11 'Die erste relevante Zelle ist 11
Zelleneintrag = StrConv(Cells(i, 5).Value, vbUpperCase)
Eingabe = StrConv(form.TextBoxSuchen, vbUpperCase)

'Zeichenketten vergleichen
Do While Cells(i, 5).Value > ""
If InStr(Zelleneintrag, Eingabe) > 0 Then
'Treffer
form.ComboBoxTreffer.AddItem Cells(i, 5).Value
Else
'Kein Treffer
'nichts passiert
End If

i = i + 1
Zelleneintrag = StrConv(Cells(i, 5).Value, vbUpperCase)
Loop

'Erster Eintrag aller Suchergebnisse in der ComboboxTreffer anzeigen
If form.ComboBoxTreffer.ListCount > 0 Then
form.ComboBoxTreffer.ListIndex = 0
End If
End Sub

Public Function TrefferZeile(form As UserForm) As Integer

'zugehöriges Tabellenblatt aktivieren
ThisWorkbook.Worksheets("Datenbank").Activate

'Variablen definieren
Dim i As Integer 'Die Variable i geht alle Zeilen durch

'Variablen Werte zuweigen
i = 11 'Die erste relevante Zelle ist 11

Do While Cells(i, 5).Value > ""
If Cells(i, 5).Value = form.ComboBoxTreffer Then
'Treffer
Exit Do
Else
'Kein Treffer
End If

i = i + 1
Loop

TrefferZeile = i

End Function

Public Function TrefferZeileNeu(blatt As Worksheet, StartZeile As Integer, StartSpalte As Integer, treffer As MSForms.ComboBox) As Integer

'zugehöriges Tabellenblatt aktivieren
blatt.Activate

'Variablen definieren
Dim i As Integer 'Die Variable i geht alle Zeilen durch

'Variablen Werte zuweigen
i = StartZeile

Do While Cells(i, StartSpalte).Value > ""
If Cells(i, StartSpalte).Value = treffer Then
'Treffer
Exit Do
Else
'Kein Treffer
End If

i = i + 1
Loop

TrefferZeileNeu = i

End Function

-----------
UserFormBearbeiten

Private Sub CB_ÄnderungenSpeichern_Click()

Dim i As Integer
Dim Ort_der_Einlagerung As String
Dim Az As String
Dim Besitzer As String

'Den Variablen Werte zuweisen
i = TrefferZeileNeu(Sheets("Datenbank"), 11, 2, Me.ComboBoxTreffer)
Ort_der_Einlagerung = Me.TextBoxOrtderEinlagerung.Text
Az = Me.TextBoxAz.Text
Besitzer = Me.TextBoxBesitzer.Text

'Werte in das Tabellenblatt eintragen
Cells(i, 4).Value = Ort_der_Einlagerung
Cells(i, 5).Value = Az
Cells(i, 6).Value = Besitzer

MsgBox "Die Änderungen wurden gespeichert!", vbInformation, "Erfolg"
Unload Me

End Sub

Private Sub CB_Zurück_Click()
'Fenster schließen ohne Speichern, zurück zur Übersicht

Unload Me
End Sub

Private Sub ComboBoxTreffer_Change()

'Informationen zum Treffer in den Steuerelementen anzeigen

'Trefferzeile ausgeben
Dim i As Integer
i = TrefferZeile(Me)

'Informationen des Treffers angeben
Me.TextBoxLfdNr.Text = Cells(i, 2).Value
Me.TextBoxOrtderEinlagerung.Text = Cells(i, 4).Value
Me.TextBoxAz.Text = Cells(i, 5).Value
Me.TextBoxBesitzer.Text = Cells(i, 6).Value

End Sub

Private Sub TextBoxSuchen_Change()

'Programm EintragSuchen aufrufen und anwenden
EintragSuchen Me

End Sub

Private Sub UserForm_Initialize()

ThisWorkbook.Worksheets("Datenbank").Activate

End Sub
Anzeige
AW: Änderungen speichern über Userform
23.12.2025 10:57:47
Alwin Weisangler
Hallo,

ich denke mal es ist besser die Datei anonymisiert hochzuladen. Zumal es sinnvoller ist dies via Listobjekt zu programmieren, da du ja in ein solches Schreiben willst.

Ich schau dann heute Abend mal rein. Aber eine Frage kannst du mir noch beantworten da es Excel 2022 nicht gibt:
Welche Office Version nutzt du?

Gruß Uwe
Anzeige
AW: Änderungen speichern über Userform
23.12.2025 16:15:20
emkaes
Hallo Leo,

du denkst noch in „Papier“ und damit viel zu kompliziert. Außerdem scheint es, dass du deine Aufgabe quasi in „Einzelaktionen“ zerlegt hast, die du dann nacheinander in Prozeduren gießt. Da kommt zuweilen viel zu viel Code bei heraus. Dieser wird dann schnell unübersichtlich und schwer zu pflegen.

Mache dir besser vorher einen Plan, welche einzelnen „Aktionen“ das Programm erledigen soll, aber progge nicht einfach drauflos.

z.B.: wenn meine Daten in Zeile 1 Überschriften haben und somit in Zeile 2 beginnen und ich die Daten ohne Überschrift in eine Combobox/Listbox eingelesen habe, habe ich bereits eine genaue Kenntnis, dass der zu bearbeitende Datensatz mit dem Index 8 aus der Datentabelle Zeile 10 kommt und auch dort wieder gespeichert werden sollte.
Wohe weiss ich das? Comboboxen/Listboxen sind 0-basiert indexiert => der erste Datensatz aus Zeile 2 hat also in der Combobox/Listbox den Index 0 usw.

Damit kann deine Suche entfallen und du schreibst deinen geänderten Datensatz in die Zeile …index +2

Z.B.: es gibt nur einen winzigen Unterschied, wie man einen neuen Datensatz bzw. einen geänderten Datensatz aus der Userform in die Tabelle schreibt. Lediglich die Zeile ist entscheidend. Neuer Datensatz wird unten angehängt, geänderter Datensatz kommt zurück in die Herkunftszeile. Das macht man dann, indem man einem „writeData-Unterprogramm“ parametrisiert die Zeile, in die zu schreiben ist, mitteilt.

Wenn du dann noch z.B. deine Controls mit deinen Datenfeldern syncronisiert hast, kannst du dir die Arbeit des einlesen/auslesen mit Schleifenoperationen erleichtern. Falls ich überhaupt mit Userforms arbeite, belasse ich die Namen der Steuerelemente und kann mit


for i = 1 to 10
Me.Controls(„TextBox“ & i).value = Cells(i,1).value
Next


einfach iterieren.

Mach dich mit dem Umgang mit Arrays vertraut, das erspart dir ebenfalls sehr viel proggen.

Das nur als Anregung, um dir etwas für die weihnachtliche Langeweile mitzugeben

emkaes





Anzeige
AW: Änderungen speichern über Userform
23.12.2025 19:15:30
Leolo
Hallo emkaes,

damit hast du vermutlich Recht :) meine Datei besteht aus sehr vielen Einzelaktionen, die ich so finden konnte. Bislang hat soweit aber alles funktioniert, aber ich komme an meine Grenzen. Danke dir für deine Anregungen, VBA Grundkenntnisse erlernen steht auf jeden Fall in meinen Neujahrsvorsätzen! Vielleicht fange ich mal mit Arrays an.

LG Leo
Anzeige
AW: Änderungen speichern über Userform
23.12.2025 19:12:15
Leolo
Hallo Uwe,

hier meine Beispieldatei (sehr stark eingekürzt, das Original hat deutlich mehr Spalten und eine Vielzahl an Zeilen wenn befüllt).

https://www.herber.de/bbs/user/179907.xlsm

Und Office Version 2021 natürlich (2022 war ein Tippfehler :))

LG Leo
Anzeige
AW: Änderungen speichern über Userform
23.12.2025 20:06:22
emkaes
Hi Leo,

beschreibe bitte mal genau , was du erreichen willst.


für eine "einfache" Dateneingabemaske per Userform für die Erstellung/ Veränderung/Inaktivierung von Daten reicht eine Userform

du musst dann lediglich die Methoden "neuer Datensatz" "Datensätz verändern" und "Datensatz löschen" implementieren und das machst du in einer einzigen Userform

Mein Tipp:
lese die Daten in eine Listbox ein, dann hast du sie für Änderung und Löschung zur unmittelbaren Verfügung.
Wobei:
in Datenbanken, die mit einer lfdNr versehen sind, und auch sonst eigentlich, löscht man nicht einfach so! Es sei denn, die referenziellen Abhängigkeiten sind unbedenklich, was ich für deine Anfrage nicht beurteilen kann

mit einem Click auf einen Datensatz in der Listbox werden die Daten in Textboxen übertragen. Dann kannst du Veränderungen in den Textboxen durchführen und die Daten zurückschreiben

oder
den Datensatz löschen :-((

oder
falls du keinen Click auf einen Datensatz in der Listbox machst, sind dann deine Textboxen leer und du kannst einen neuen Datensatz generieren

Für ändern und neuerDatensatz, hatte ich bereits gesagt, reicht ein "Unterprogramm", für löschen ein anderes Unterprogramm

emkaes


Anzeige
AW: Änderungen speichern über Userform
23.12.2025 20:19:13
Alwin Weisangler
Hallo Leo,

lade mal mit ein paar wenigen Datensätzen die Tabelle mit allen Spalten hoch, damit man nicht mehrfach anfangen/nachbessern muss.
Anbei mal eine Beispieldatei, welche nutzlos auf meinem Rechner rumliegt wie sie Programmierung auf Listobjekt abgestimmt die Daten verwaltet werden können.
https://www.herber.de/bbs/user/179908.xlsm

Gruß Uwe
Anzeige
AW: Änderungen speichern über Userform
23.12.2025 21:14:26
emkaes
@ Alwin,

wenn ich mir beide Dateien im Vergleich anschaue, ohne euch beiden jeweils nahetreten zu wollen, hast du, Alwin, weit über das Ziel, dass Leo noch gar nicht sieht, hinausgeschossen. Ihm wird das nicht helfen, auch wenn deine Datei hilfreich ist., weil zu komplex/kompliziert

Wie heisst es immer so schön in Aktienforen: nur meine Meinung, keine Kaufempfehlung

@Leo

du brauchst vmtl. lediglich eine einzige Userform mit
1 Listbox ' zur Aufnahme der vorhandenen Daten
5 Textfeldern zur Aufnahme der Daten
1-2 Textfeldern für Suchkriterien
und CommandButtons für
neuer Datensatz
Datensatz ändern
Datensatz löschen
Datensatz suchen

und je eine Function zum
Datensatz schreiben
Datensatz löschen
Daten neuLaden in Listbox

ich mach dir morgen oder übermorgen mal einen Vorschlag mit deinen Daten aus deiner hochgeladenen Datei

emkaes
Anzeige
AW: Änderungen speichern über Userform
23.12.2025 23:14:39
Leolo
Hallo Uwe,

ich kann leider nicht die komplette Tabelle hochladen aufgrund von sensibler Daten, die ich nur schwer anonymisieren könnte. Deshalb dachte ich es taugt vielleicht auch diese Beispieldatei, anhand der ich Lösungen dann in meine richtige Datei übertragen könnte.

Danke dir schon mal für deinen Input! Ich muss mir deine Beispieldatei morgen nochmal ganz in Ruhe anschauen, damit ich (hoffentlich) verstehe, was für Funktionen du alles verwendest :) Aber gefällt mir schon mal sehr gut, ich bin nur nicht sicher ob ich es schaffe es in dieser Art zu übernehmen.

LG Leo
Anzeige
AW: Änderungen speichern über Userform
23.12.2025 23:09:29
Leolo
Hallo emkaes,

mit einer Listbox hatte ich tatsächlich gestartet, empfand es dann aber aufgrund der Datenmenge als unübersichtlich. Die Tabelle hat 17 Spalten (Spalte B-R) und wenn sie befüllt ist auch eine Vielzahl an Zeilen (200+). Ich lasse mich aber gerne eines besseren belehren :) Die Originaldatei enthält sensible Daten die schwer zu anonymisieren sind, weshalb ich mit der Beispieldatei versucht habe zu zeigen, was ich meine.

Im Prinzip werden beim Erfassen eines neuen Datensatzes mehrere Daten eingegeben und gespeichert. Wenn ich dann Rückmeldung zum Datensatz von einer externen Stelle erhalte, möchte ich den Datensatz bearbeiten mit "neuen" Informationen, die ich bislang nicht eingetragen konnte. Die bereits befüllten Informationen sollen dann über die Suchfunktion angezeigt werden, um mir die Eingabe zu erleichtern. Und dann eben im vorhandenen Datensatz gespeichert werden.

Datensatz löschen entfällt in meinem Fall. Der Plan ist die Daten nach Abschluss in ein Archiv zu verschieben. Im Prinzip die "gleiche" Tabelle in einer weiteren Arbeitsmappe. So weit war ich nur noch nicht. Da werden sie dann für mehrere Jahre gespeichert.

Ansonsten trifft deine Beschreibung zu. Danke dir schon mal für deine Mühen! Ich würde mich sehr über einen Vorschlag freuen! Wenn ich auch alles in einer einzigen Userform darstellen kann, wäre es deutlich einfacher.

LG Leo
Anzeige
AW: Änderungen speichern über Userform
23.12.2025 23:58:04
Alwin Weisangler
@emkaes,

normalerweise melde ich mich da eigentlich nicht zurück. Erkläre doch bitte was da so kompliziert dran ist.

Wegen der Klasse und den dynamisch erzeugten Labels?? Das ist doch nur für das spaltenweise Sortieren. Das kann man auch rausschmeißen und die Labels drüberbauen.

Was daraus sinnigerweise benötigt wird ist Filtern und die Buttons unten dran. Das Array mit den Controls muss man anpassen und PLZ auf 0 setzen, weil nicht benötigt. Das Listobjekt den Namen anpassen. Naja dann ist eh unklar wie viel Spalten das Listobjekt hat und ob in den weiteren Controls Comboboxen etc. benötigt werden. Das ist ja alles unklar und geht auch nicht aus der aktuellen Beispieldatei des TO hervor.

Aber man sieht wie man so was effizient bauen kann. Wobei nachdem klar ist, das O2021 die Office Version ist kann man da auch noch etwas dran rum schrauben.

Gruß Uwe
Anzeige
AW: Änderungen speichern über Userform
23.12.2025 23:20:36
Alwin Weisangler
Hallo Leo,

eh ich jetzt hier weiterbaue, das grobe Gerüst mit Listbox und Filter.

Den Rest einbauen Änderungen speichern / Neuer Eintrag baue ich erst wenn du das möchtest. Klar um so was zukunftssicher und stabil zu bauen ist dies immer mit etwas Aufwand verbunden.

Den meisten Aufwand betreibt man mit der Fehlerbehandlung.
https://www.herber.de/bbs/user/179909.xlsm

Gruß Uwe
Anzeige
AW: Änderungen speichern über Userform
24.12.2025 09:19:58
Alwin Weisangler
Hallo Leo,

ich hab das mal nebst elementarer Fehlerbehandlung stark vereinfacht zu Ende gebaut.
https://www.herber.de/bbs/user/179910.xlsm
Falls du Checkbuttons einbauen willst musst du dies mit Auswertung der Zählvariable entsprechend in der jeweiligen Übergabeschleife (If/Else/End If) auswerten.
Bei Text-/Comboboxen wird eh nur Value gelesen.

Gruß Uwe
Anzeige
AW: Änderungen speichern über Userform
25.12.2025 17:00:23
Leolo
Hallo Uwe,

zunächst einmal vielen herzlichen Dank für deine Hilfe!! Das ist ziemlich cool in deiner Datei :) ich versuche aber noch manche Codes zu verstehen/nachzuvollziehen (bspw. das Modul Scrollen - da checke ich noch nicht durch :)). Ansonsten versuche ich morgen/die Tage das mal auf meine „größere“ Datei anzuwenden und hoffe das alles klappt.

2 kleine Fragen hätte ich noch (ohne hoffentlich deine Nerven überzustrapazieren :))
-Wenn ich jetzt einen neuen Datensatz anlege zeigt es dieses im Format 12.25.2025 an. Das kann ich vermutlich einfach über numberformat ddmmyyyy anpassen oder?
-Im Prinzip könnte ich ja auch in diese Userform noch einen Button integrieren mit „Datensatz archivieren“ der mir den Datensatz dann in eine andere Arbeitsmappe überträgt oder? Sofern ich es technisch umgesetzt bekomme natürlich :)

LG Leo
Anzeige
AW: Änderungen speichern über Userform
25.12.2025 17:47:59
Alwin Weisangler
Hallo Leo,

die Ursache für das unsaubere Zurückschreiben des Datumsfomates liegt in einer Eigenheit von Listobjekten (formatierte Tabellen).
Das Format der 1. Zelle der Spalte "Datum Einlagerung" ist Textdatum - also kein echtes Datum. Dieses pflanzt sich in dieser Spalte fort.
Das gilt ebenso, wenn eine neue Zeile erzeugt wird.

Da ich aber im Userform dafür gesorgt habe, dass echte Datumswerte in die Zelle geschrieben werden erscheint dies als scheinbar falsch geschriebenes Datum in der Zelle (MM.TT.JJJJ). Das passiert nicht, wenn von der 1. Zelle an echte Datumswerte stehen.

Anbei mal noch die Tabelle entsprechend korrigiert:
https://www.herber.de/bbs/user/179913.xlsm


Gruß Uwe
Anzeige
AW: Änderungen speichern über Userform
25.12.2025 17:59:26
Alwin Weisangler
Sorry, habe noch was vergessen.

löse zwecks Korrektur dieser Spalte die Zellausrichtung auf. Links stehen dann Datumswerte in Textformat und rechts Echte Datumswerte. Nach der Korrektur der Textdaten markierst du die Spalte im Tabellenblatt und setzt dieses aufs deutsche Datumsformat. Dann bleibt das Ami-Format weg.

Für den Notfall könnte man auch das Schreiben via Datumszahl machen. Damit geht man diesem Problem aus dem Weg. Das öffnet aber wieder Tür und Tor für unsaubere Datenhaltung.

Gruß Uwe
Anzeige
AW: Änderungen speichern über Userform
26.12.2025 11:35:52
Alwin Weisangler
Hallo Leo,

ich habe eben noch gesehen, dass ich in der Schleife (Ereignisprozedur ÄnderungenSpeichern) zum Schreiben des Arrays das setzen der korrekten Typenkonvertierung vergessen habe einzubauen.

Tauche diese Prozedur aus:


Private Sub CB_ÄnderungenSpeichern_Click()
Dim iZeile&, i&, arrZeile()
With ListBox1
If .ListIndex = -1 Then
MsgBox "Ändern nicht möglich. Es wurde kein Eintrag ausgewählt.", vbExclamation, "Information Datensatz Ändern"
Exit Sub
End If
iZeile = .List(.ListIndex, 0)
For i = 2 To UBound(arrCnt)
If Controls(arrCnt(i)) = "" Then
MsgBox "Pflichteingaben sind unvollständig"
Controls(arrCnt(i)).SetFocus
Exit Sub
End If
Next i
ReDim arrZeile(1 To 1, 1 To UBound(arrCnt) + 1)
For i = 1 To UBound(arrZeile, 2)
If IsDate(Controls(arrCnt(i - 1))) Then
arrZeile(1, i) = CDate(Controls(arrCnt(i - 1)))
ElseIf IsNumeric(Controls(arrCnt(i - 1))) Then
arrZeile(1, i) = CDbl(Controls(arrCnt(i - 1)))
Else
arrZeile(1, i) = Controls(arrCnt(i - 1))
End If
Next i
dynTab.DataBodyRange.Cells(iZeile, 1).Resize(1, UBound(arrZeile, 2)) = arrZeile
CntLeeren
ListboxLaden
End With
End Sub


Gruß Uwe
Anzeige
AW: Änderungen speichern über Userform
26.12.2025 22:50:50
Leolo
Hallo Uwe,

ich habe deine Änderungen auf meine "große" Tabelle übertragen und es klappt alles. Ich freu mich - Tausend Dank dir!!! Ich habe es sogar geschafft einen Button zu integrieren, der mir den ausgewählten Datensatz in ein neues Arbeitsblatt "Archiv" und dort in eine identische Tabelle verschiebt. Dabei ist mir eine Sache aufgefallen. Wenn ich einen Datensatz ins Archiv verschoben habe, und daraufhin wieder einen neuen Datensatz erstelle, dann generiert es mir wieder die nächste "freie" Laufende Nummer in Spalte B, also auch eine, die es theoretisch schon gibt (aber eben im Archiv). Fällt dir hierfür eine smarte Lösung ein, dass die Laufende Nummer nur einmalig vergeben wird? Vielleicht wenn man die Laufende Nummer mit Monat/Jahr ergänzt (z.B. 1/12/2025, 2/12/2025 usw.). Oder kann man den Code auch so verändern, dass eine Laufende Nummer nur einmalig vergeben wird (und dabei auch die Nummern im Arbeitsblatt "Archiv" abgefragt werden?

LG Leo
Anzeige
AW: Änderungen speichern über Userform
27.12.2025 00:00:38
Alwin Weisangler
Hallo Leo,

Ja, aber da muss dann vieles geändert werden. Ich komme erst morgen Nachmittag dazu dies zu ändern.

Gruß Uwe
AW: Änderungen speichern über Userform
27.12.2025 09:23:43
Alwin Weisangler
Hallo Leo,

anbei die nötigen Änderungen. Es wird weiterhin die laufende Nummer weitergerechnet. Der erreichte Wert der laufenden Nummer wird im Kommentarfeld des Listobjekts (formatierte Tabelle) abgelegt.

Wichtig: In deiner Arbeitsdatei musst du im Namensmanager --> Listobjekt auswählen --> Bearbeiten -->Kommentar: den Startwert (die höchste bisher vergebene laufende Nummer) eintragen. Dort kannst du ebenso, wenn mal was verkehrt gegangen ist diesen Wert jederzeit korrigieren.

Es wird nun auf Grund dieser Änderungen nicht mehr für das Bearbeiten eines Datensatzes die Laufende Nummer als Zeilennummer herangezogen, sondern in dieser Spalte nach der Nummer gesucht und die gefundene Zeilennummer zum Schreiben des ausgewählten Datensatzes verwendet (via Application.Match).
https://www.herber.de/bbs/user/179918.xlsm

Gruß Uwe
Anzeige
AW: Änderungen speichern über Userform
29.12.2025 22:45:54
Leolo
Hallo Uwe,

toll das hat funktioniert!! Ich danke dir vielmals für deine Hilfe!!

LG Leo
AW: Änderungen speichern über Userform
29.12.2025 23:00:15
Alwin Weisangler
Gerne!

Gruß Uwe

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige