Live-Forum - Die aktuellen Beiträge
Datum
Titel
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: neue Daten in freie Zeile schreiben

neue Daten in freie Zeile schreiben
13.04.2016 15:07:53
Alex
Hallo zusammen,
ich habe eine Userform geschrieben, um Personendaten in meiner Tabelle zu erfassen und wieder zu löschen. Wenn ich eine neue Person speichere wird immer in die letzte Zeile geschrieben. Das ist eigentlich auch ok.
Wenn ich eine Person lösche, werden die Felder geleert und es entsteht eine leere Zeile. Sollte nun eine neue Person gespeichert werden nimmt das Programm trotzdem wieder die letzte Zeile und schreibt nicht in die zuvor frei gewordene freie Zeile.
Könnt ihr mir erklären woran das liegt und wie kann ich das beheben?
Hier ist die Tabelle: https://www.herber.de/bbs/user/104934.xlsm
Beste Grüße
Alex

Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: neue Daten in freie Zeile schreiben
13.04.2016 15:17:27
Fennek
Hallo,
um leere Zeilen zu löschen, füge diesen Code ein

Dim rng as range
Set rng = columns("a").specialcells(xlcelltypeblanks)
Rng.entirerow.delete
Mfg

AW: neue Daten in freie Zeile schreiben
13.04.2016 15:28:50
Daniel
Hi
du solltest keine Leeren Zeilen innerhalb der Liste stehen lassen.
sowas stört, wenn Excel ansonsten in der Lage wäre, den Tabellenbereich automatsich zu ermitteln (z.B. beim sortieren, autofiltern, in VBA mit CurrentRegion)
dh leere in der Zeile nicht nur die Inhalte, sondern lösche sie mit .Delete.
dh ersetze dein:
Worksheets("Tabelle1").Cells(intAktiveZeile, 1).Value = ""
Worksheets("Tabelle1").Cells(intAktiveZeile, 2).Value = ""
Worksheets("Tabelle1").Cells(intAktiveZeile, 3).Value = ""

durch
Worksheets("Tabelle1").Cells(intAktiveZeile, 1).Resize(1, 3).Delete Shift:=xlup
oder sortiere die Tabelle neu, dann werden die Leerzeilen automatisch ans Tabellenende gespült.
wenn du aber die Lücken behalten willst und nachträglich füllen willst, dann geht das natürlich auch.
suche die erste freie Zelle in Spalte A dann so:
intFreieZeile = Columns(1).Find(what:="", lookat:=xlWhole, LookIn:=xlValues).Row
desweiteren würde ich dir empfehlen, nicht das CHANGE_Event zu verwenden, wenn du darauf reagiern willst, dass der Anwender in der Combobox einen Eintrag auswählt.
Das Change-Event spricht nämlich bei JEDER Änderung an der Combobox an, egal wer ändert oder was geändert wird.
Besser ist das CLICK- oder MouseUp-Event.
gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige