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

Forumthread: Nächste fast leere Zeile beschreiben per VBA

Nächste fast leere Zeile beschreiben per VBA
12.04.2024 16:42:07
Bernd
Hallo,

ich habe mir eine VBA-Datei "zusammengeklaut" (es lebe youtube), komme jetzt aber nicht mehr weiter.

Diese Datei besteht aus zwei Blättern: Einmal die Datenbank und dann das Eingabeformular. Diese Formular füllt die Spalten zwei, sowie 3 bis 9 der Datenbank (also B- sowie D-K)
Bisher ist es so, dass eine Eingabe eine Verlängerung der Tabelle bedeutet ( 'Zeile hinzufügen tbl.ListRows.Add)

Nun habe ich aber die Datenbank erweitert und möchte, dass in den Spalten C, L & M etwas errechnet wird und dementsprechend Formeln eingestellt.. Habe dann festgestellt, dass ich ja, wenn ich nur den o.a. Befehl nehme, jedes Mal die in den Spalten C, L& M hinterlegten Formeln die Formel verlängern(also runterziehen) muss, oder er schreibt mir die Daten in die erste Zeile in der die Formeln nicht verlängert wurden.

Jetzt kommt's: Wie muss ich den o.a. Befehl ändern, damit bei der Neuanlage einer Buchung, die nächste "leere" Zeile ausgefüllt wird, obwohl sich schon Formeln in dieser Zeile befinden).
Mein Denkansatz war, dass ich irgend etwas mit der Spalte B machen kann, denn die wird immer von der neuen Eingabe befüllt.

Eingabemaske: Wenn gespeichert wird, suche dir die nächste Freie Zelle in Spalte B und fülle die weiteren Daten in die entsprechenden Spalten (Zellen) dieser Zeile.
Das bekomme ich aber nicht hin und habe es auch nicht anderweitig gefunden.

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

Vielen Dank für eure Hilfe
Gerd



Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nächste fast leere Zeile beschreiben per VBA
12.04.2024 17:25:27
Yal
Hallo Gerd/Bernd,

eigentlich brauchst Du diese Zusatzfunktion nicht, da es Standard ist, dass bei einer neue Zeile in einer Tabelle ("tbl.ListRows.Add") die Formel automatisch übernommen werden.
Voraussetzung: die Formel muss bereits alle Zellen der Tabellenspalte befüllen, oder zumindest die letzte.

VG
Yal
Anzeige
AW: Nächste fast leere Zeile beschreiben per VBA
12.04.2024 17:40:18
Bernd
Ja die Sache mit den Doppelnamen: Gerhard hieß der Vater meiner Mutter, Bernhardine heißt meine Mutter und so heiße ich Bernhard Gerhard (wobei meine Mutter immer noch sagt, und sie ist 91, das Bernhard käme nicht von ihr.... Na ja...

So zum Thema:

Wenn ich aber über das Eingabeblatt einen neuen Datensatz eingebe, so wird dieser in die Datenbank übernommen, die Formeln aus L und M sind jedoch weg und nur die aus L&M.
Dank deines Hinweises habe ich mir nochmal die Formel angeschaut und gesehen, das diese den Inhalt der Spalten H&G löscht. Das habe ich nun auf X&Y geändert, jedoch bleibt es dabei, dass nur diese Formeln nicht in die nächste Zeile übernommen werden.

Bernd/Gerd
Anzeige
AW: Nächste fast leere Zeile beschreiben per VBA
12.04.2024 18:34:14
Yal
Hallo Bernd,

Hast Du davor die gleiche Formel in aller Zelle der Spalte kopiert?
Erste Zelle markieren, Strg+Pfeil nach unten bis die letzte Zeile der Tabelle erreicht ist, Strg+u (u wie nach unten).
Dann eine Werte in der Zeile unter der Tabelle eingeben. Alle Formeln sollten übernommen werden.
Mit VBA passiert dasselbe.

VG
Yal
Anzeige
AW: Nächste fast leere Zeile beschreiben per VBA
13.04.2024 05:47:29
Bernd
Moin,

ich habe gemäß deiner Anleitung gehandelt. Jedoch möchte excel nicht so wie du das meinst.
Ergebnis:
- Die nächste "fast leere" Zeile wird ignoriert.
- es wird eine Zeile am Ende der Tabelle, vor der händisch angelegten außerhalb der Tabelle befindlichen Zeile, angelegt
- die von mir außerhalb der Tabelle angelegte Zeile, wird in die Tabelle hereingezogen und ist somit die letzte Zeile in der Tabelle.
- die Formeln sind natürlich auch nicht da

Das komische ist wirklich, dass nur die Formeln in den Spalten L&M nicht übernommen werden. Ich verstehe es nicht.

Bernd/Gerd
Anzeige
AW: Nächste fast leere Zeile beschreiben per VBA
14.04.2024 20:49:55
Yal
Hallo Bernd,

in Zellen C12, L12 und M12 hast Du einen Zahl und im Rest der Splate Formel. Es führt zu einer Inkonsistenz. Die Spalte wird nicht als "Formelspalte" erkannt und auch nicht automatisch ergänzt.

VG
Yal
AW: Nächste fast leere Zeile beschreiben per VBA
15.04.2024 06:06:51
Bernd
Moin,

danke das du dich noch einmal um mein Problem gekümmert hast.

Ich habe in den Zellen L12 und M12 nun Formeln eingefügt. Das Datum (Inhalt der Spalte C) kommt aus dem Eingabeformular, genauso wie die Daten aus den Spalten "Bezeichnung" und "Artikel, die auch keine Formeln aufweisen.

Trotzdem bleibt es dabei: In L&M gibt es weiterhin keine Formeln.

Gruß
Bernd
Anzeige
AW: Nächste fast leere Zeile beschreiben per VBA
15.04.2024 09:58:10
Yal
Hallo Bernd,

Du musstest auchdie Antwort von Uwe/Alwin https://www.herber.de/forum/messages/1973497.html berücksichtigen.

Idealerweise gibt es in einer Tabelle nur Formeln, die auf eine andere Spalte auf die eigene Zeile (weil Tabelle nach dem Prinzip "verstehst Du eine Zeile, hast Du die ganze Tabelle verstanden" funktionieren).
Mit der Verwendung von "L12" anstatt "[@[Bestand]]" machst Du eine Abweichung zu den Tabellenformeln-Regeln.
https://support.microsoft.com/de-de/office/verwenden-von-strukturierten-verweisen-f%C3%BCr-excel-tabellen-f5ed2452-2337-4f71-bed3-c8ae6d2b276e
Da bei der Berechnung einem fortlaufenden Bestand immer auf die vorhige Zeile referiert werden muss, hast Du leider keien Wahl, die Regel zu verletzen.

Im Prinzip würde nach dem Erzeugen eine neue Zeile Reichen, wenn Du die Formel der erste Zeile auf die gesamte Spalte übertragt:
Sub BestandsFormel_erweitern()

Dim tbl As ListObject

Set tbl = Tb_Datenbank.ListObjects(1)
With tbl.ListColumns("Bestand")
.DataBodyRange.Formula = .DataBodyRange.Cells(1).Formula
End With
End Sub

Notfalls der Formel in zweite Zeile: .DataBodyRange.Cells(1).Formula (weil nur eine Spalte, ist Cells(2) die zweite Zelle, also in zweite Zeile)

Ein fortlaufende bestand kannst Du übrigen auch so berechnen (gilt für alle Zeilen):
=WENNFEHLER([@[Ab/Zu]]+L11;[@[Ab/Zu]])

VG
Yal
Anzeige
AW: Nächste fast leere Zeile beschreiben per VBA
15.04.2024 16:53:56
Bernd
Moin,

joa, jetzt klappt es. Habe die Tabelle "entautomatisiert", neu an gelegt und dann deinen Code eingefügt. Ich weiß das man nie zwei Sachen gleichzeitig ändern sollte, aber manchmal haut es eben hin.

Vielen liebe Dank.

Gruß Bernd
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
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