Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1484to1488
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
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

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

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige