Makro/VBA code Auslesen von Daten aus Formular
Hallo zusammen,
folgendes kleines Problem:
In einem Formular frage ich Daten ab, sammle diese Daten in einer "Übertragszeile" und würde diese nun gerne in eine "Zieltabelle" übertragen. Dabei hat die Zieltabelle exakt die gleiche Struktur wie die Übertragungszeile.
Ich suche daher ein Makro, welches mir:
a) Die Daten aus der "Übertragszeile" kopiert
b) Die erste nicht beschriebene Zeile in meiner Zieltabelle sucht
c) Die Daten aus der Übertragungszeile in die erste nicht beschriebene Zeile einfügt.
[(d) das Formular löscht. [Nicht so wichtig]]
Hier im Forum ist ein VBA code angegeben, welcher einzelne Zellen aus einem Formular ausliest und in eine Tabelle überträgt. Da in meinem Falle es sich um knapp 100 Zellen je Formular handelt, wäre es sehr gut, wenn man die Abfrage und den Transfer auf einen Bereich und nicht bezogen auf die einzelnen Zellen machen könnte. Daher auch die Struktur mit der Übertragungszeile.
Vielen Dank schon mal im voraus
Humic
Antwort schreiben
Antwort 1 von fedjo vom 31.01.2020, 17:58 Options
Hallo Humic,
vielleicht kannst du eine Mustertabelle und eine Beschreibung bei
Netupload hochladen.
Gruß
fedjo
Antwort 2 von humic vom 01.02.2020, 10:22 Options
Hallo Fedjo,
anbei ein sehr vereinfachtes Beispiel.
http://www.netupload.de/detail.php?img=bddcee209ab3ec11dc73a40a9bdc44a6.xls
Ziel des Makros soll sein:
Die Infos aus dem "Datenabfrage"-Sheet in die erste freie Zeile im "Zieltabelle"-Sheet einzufügen.
Optimal wäre, wenn man nicht die einzelnen Zellen transferiert, sondern bspw. dem Bereich B6 bis I6 einen Namen zuweist und dann die gesamte information auf "einen Rutsch" kopiert und einfügt. Im Orginal sind es ca. 100 Zellen die je Datensatz abgefragt werden.
Vielen Dank schon mal
humic
Antwort 3 von fedjo vom 01.02.2020, 16:44 Options
Hallo humic,
nach dem Eintrag "x" in Spalte "J" wird der ganze Datensatz (B:I) in Tabelle2 übertragen, oder sollten mehrere Datensätze auf einmal kopiert und eingefügt werden?
Gruß
fedjo
Beispiel
Antwort 4 von humic vom 07.02.2020, 11:47 Options
Hallo Fedjo,
vielen Dank. Funktioniert einwandfrei.
Nur noch eine Frage. Wenn ich den Zielbereich lösche, schreibt das Makro weiterhin an die Stelle, wo ehemals die letzte Zeile war. Wie kann man denn den "Zähler" zurücksetzen, so dass nachdem die Zieltabelle gelöscht wurde, der Datensatz wieder an erster Stelle eingefügt wird?
Gruss
Humic
Antwort 5 von fedjo vom 07.02.2020, 16:41 Options
Hallo Humic,
die Zieltabelle wird jetzt jedes mal bevor ein Eintrag erfolgt gelöscht.
BeispielGruß
fedjo
Antwort 6 von humic1 vom 07.02.2020, 19:17 Options
Hallo Fedjo,
vielen Dank für deine schnelle Antwort.
Ich hatte bei meiner Frage aber an etwas anderes gedacht:
Wenn man den Befehl SpecialCells(xlCellTypeLastCell) zum Herausfinden der letzten beschriebenen Spalte/Zelle benützt tritt folgendes Problem auf:
- Bei deinem ersten Beispiel wird der Datensatz aus Sheet1 in die erste unbeschriebene Zeile von Sheet2 geschrieben. Also in Zeile 6. Wiederholt man den Vorgang, dann wird in Zeile 7, Zeile 8 etc. geschrieben.
- Wenn man nun händisch die Tabelle löscht und dann wieder das Makro laufen lässt, dann schreibt das Makro den Datensatz nicht in die erste freie Zeile, sondern dorthin wo beim ersten Durchlauf das Ende war,also wieder in Zeile 6, obwohl Zeile 2-5 ebenfalls leer sind.
Ich habe ein wenig nach diesem Problem "gegoogelt". Oft wird empfohlen, das Workbook nach dem löschen zu speichern, das funktioniert bei mir aber trotzdem nicht.
Gruss
Humic
Antwort 7 von fedjo vom 08.02.2020, 17:12 Options
Hallo Mumic,
habe die betreffenden Zeilen ausgeschnitten, sollte jetzt funktionieren.
BeispielGruß
fedjo