Import in bestimmte Tabelle



Excel-Version: 8.0 (Office 97)
nach unten

Betrifft: Import in bestimmte Tabelle
von: Sven
Geschrieben am: 08.07.2002 - 01:17:52

Hallo Leute!

Da ich schon lange nach einer Lösung suche und mein Thema in Vergessenheit gerät, poste ich es hier nochmal:

Also ich lasse durch ein Makro eine Textdatei importieren. Dabei wird ja normalerweise ein Extra-Blatt erstellt. Nach einigen Anpassungen lasse ich den ganzen Inhalt markieren und in die Mappe mit dem Makro in eine schon existierende Tabelle einfügen.
Es kann aber passieren, dass es sehr viele Datensätze werden und nicht jeder User diesen Schritt schafft, weil eine Meldung kommt, dass der Speicher nicht ausreicht.
Am Festplattenspeicher kann es nicht liegen, daher denke ich, es ist der Arbeitsspeicher gemeint.

Ich weiss, dass man es umgehen könnte, wenn ich nicht kopieren und einfügen benutze, sondern die Tabelle einfach in die andere Mappe verschiebe. Das möchte ich aber aus rechtlichen Gründen nicht, die Mappe soll schreibgeschützt bleiben und der User muss sie auch nicht abspeichern. Die Ergebnisse der Berechnungen werden nämlich in einer Extra-Mappe gespeichert. Aber spielt hier erstmal keine Rolle.

Jetzt meine Frage dazu:

Ist es vielleicht möglich Excel zu sagen, dass es die Textdatei nicht in eine neue Mappe/Tabelle importieren soll, sondern in eine bereits existierende?
Dann könnte ich mir nämlich den Kopiervorgang sparen und das Speicherproblem wäre erledigt.

Die Frage ist also, ob es einen Befehl/Code gibt, mit dem ich Excel sagen kann wohin er den Inhalt der Textdatei beim öffnen schreibt oder importiert Excel eine Textdatei immer nur in eine neue Tabelle?!

Wenn nicht, gibt es eine andere Möglichkeit?


Vielen Dank im Vorraus! :)

nach oben   nach unten

Re: Import in bestimmte Tabelle
von: Michael Scheffler
Geschrieben am: 08.07.2002 - 08:34:39

Hallo,

Du musst die Textdatei in diesem Falle zeilenweise einlesen, ich denke doch das Format wird wohl immer das gleiche bleiben und dann kannst Du direkt die Zellenwerte zuweisen.

Die Befehle sind sinngemäß (ungetestet):


Dim lngZeile As Long
Dim varWert1 As Variant, varWert2 As Variant
lngZeile = 1
Open "Test" For Input As #1    ' Test öffnen.
Do While Not EOF(1)            ' Frage auf Dateiende 
Input #1, varWert1, varWert2         ' Daten einlesen.
   Worksheets("Sheet1").Cells(lngZeile, 1).Value = Wert1
   Worksheets("Sheet1").Cells(lngZeile, 2).Value = Wert2
   lngZeile = lngZeile + 1
Loop
Close #1    

nach oben   nach unten

Re: Import in bestimmte Tabelle
von: Sven
Geschrieben am: 08.07.2002 - 13:45:35


Hi!

Danke für den Tipp!

Das mit dem zeilenweise einlesen ist wenigstens ein Anfang.
Ich habe den Code etwas angepasst, aber bei der Zeile "Worksheets("Sheet1").Cells(lngZeile, 1).Value = Wert1" kommt immer Fehler 9 (Index ausserhalb des gültigen Bereichs).

Ich habe vergessen zu sagen, dass es Textdateien sind, die 29 Spalten haben, unterschiedlich viele Zeilen und das Trennzeichen ist immer "§".

Der Textdateiname ist nicht immer gleich, deshalb lasse ich die Textdatei vom User manuell öffnen und zwar mit diesem Code:

dName = Application.GetOpenFilename("Textdatei (*.txt), *.txt")
If dName = False Then Exit Sub
End If

Der Textdateiname ist somit in der Variable dName enthalten.

Ich bin jetzt kein Profi, daher weiss ich nicht recht wie ich den Code entsprechend anpassen soll.

Ich nenne mal ein konkretes Beispiel:

Ich möchte die Textdatei in die Arbeitsmappe "Mappe1" in die Tabelle "Daten" importieren.

Kannst du mir vielleicht bitte helfen, es so anzupassen, dass es funktioniert?

Ich währe sehr dankbar! :)



 nach oben

Beiträge aus den Excel-Beispielen zum Thema "Import in bestimmte Tabelle"