Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

dateiimport in excel ueber macro





Frage

hallo zusammen! ich moechte ueber ein makro in excel daten aus einer .txt-datei in ein worksheet importieren, um anschliessend ein diagramm aus diesen daten zu erstellen. in der einzulesenden datei stehen aber neben den spaltenweisen daten auch noch irgendwelche kommentare. meine frage daher: wie kann ich zeilen ueberlesen? phil

Antwort 1 von CaroS

Hallo graulila,

gibt es denn eine Möglichkeit, die Zeilen, die eingelesen werden sollen, von den Zeilen, die nicht eingelesen werden sollen, sicher und zuverlässig zu unterscheiden?

Man könnte auf zwei verschiedene Arten vorgehen:
1. Wenn es sinnvoll ist, den Textkonvertierungsassistenten zu nutzen, dann erst alle Zeilen der Textdatei (mit Hilfe eines "Importbefehls" und des Textkonvertierungsassis-tenten) importieren und anschließend die Kommentarzeilen per Makro wieder löschen. Oder
2. die Textdatei Zeile für Zeile lesen, nur die gewünschten Zeilen importieren, dabei aber die Aufteilung der Daten auf die Spalten und eventuelle Konvertierungen usw. (das was sonst der Textkonvertierungsassistent machen würde) selbst programmieren.

Wie man sich da am besten entscheidet hängt wohl vor allem vom Umfang und der Kompliziertheit der zu importierenden Daten ab.

Gruß,
CaroS

Antwort 2 von graulila

danke fuer die hilfe. hat soweit jetzt auch geklappt.
jetzt habe ich die daten eingelsen und um sie weiterverarbeiten zu koennen, muesste ich zumindest die anzahl der eingelesenen zeilen ermitteln. wie kann ich das machen?

gruß graulila

Antwort 3 von CaroS

Hallo graulila,

da die Daten beim Einlesen ja eigentlich immer (mindestens) in die Spalte A geschrieben werden, könntest Du mit einer einfachen Matrixformel ermitteln, welche die letzte benutzte Zeile in der Spalte ist. Und wenn die Tabelle vorher leer war, ist das gleichzeitig die Anzahl der eingelesenen Zeilen.

Gebe in eine beliebige leere Zelle die Formel
=INDIREKT("A" & MAX(NICHT(ISTLEER(A1:A65535)) * ZEILE(1:65535)))
ein und schließe die Eingabe mit Strg+Umsch+Eingabe ab. Natürlich kann man die Formeln leicht für andere Spalten anpassen, indem man anstelle der 3 A´s eine andere Spaltenbezeichnung verwendet.

Man kann das alles (und noch viel mehr) auch mit VBA machen, aber wenn´s nur um die Zeilenzahl geht, reicht das völlig.

Gruß,
CaroS

Antwort 4 von JoeKe

Hallo,

wenn die Daten von a1-a? eingelesen werden und es nur um die Anzahl der Zeilen geht, sollte doch =Anzahl2(a:a) genügen!?

Gruß

JöKe

Antwort 5 von CaroS

Hallo JöKe,

ja da hast Du eigentlich Recht, da habe ich einfach ein bisschen zu kompliziert gedacht. Als Gesamtergebnis kommt quasi dasselbe raus, nur mit einer viel einfacheren Formel.

Irgendwie hatte ich vorher gerade was mit .End(xlUp) gemacht, wollte nun aber VBA möglichst vermeiden und bin dann nur auf sowas gekommen.

Schönes Wochenende!
CaroS

Antwort 6 von Graulila

Vielen Dank fuer die hilfreichen Tipps!
Ich habe das jetzt auch so weit hinbekommen. Das einzige Problem besteht jetzt noch darin, dass ich normalerweise in meiner Eingabedatei nicht nur einen Datensatz habe, sondern mehrere, die durch eine Zeichen (z.Bsp. ein "#") getrennt sind. Also etwa von der Form:
datensatz1
...
#
datensatz2
...
#
datensatz3
...
ENDE Datei
Meine Frage daher: kann ich per VBA irgendwie sagen: Lese die Daten ein bis ein "#" kommt oder ähnliches?

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: