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

export -> import

Forumthread: export -> import

export -> import
27.12.2003 16:32:26
Chris
Hallo,

ich brauche unbedingt Eure Hilfe. Ich habe 2 Makros eins zum exportieren und eins zum importieren:


Sub TextImport()
Dim intRow As Integer, intCol As Integer
Dim strTxt As String
Close
Open "C:\Pfad\Datenbank" For Input As #1
Do Until EOF(1)
intRow = intRow + 1
Input #1, strTxt
strTxt = Application.Trim(strTxt)
strTxt = Application.Clean(strTxt)
Do Until InStr(strTxt, ";") = 0
intCol = intCol + 1
Cells(intRow, intCol) = Left(strTxt, InStr(strTxt, ";") - 1)
strTxt = Right(strTxt, Len(strTxt) - InStr(strTxt, ";"))
Loop
intCol = intCol + 1
Cells(intRow, intCol) = strTxt
intCol = 0
Loop
Close
End Sub




Sub AlsTextSpeichern()
Dim TB As Worksheet, Dateinummer%
Dim z%, s%, TMP$
exportfile = "C:\Pfad\Datenbank"
Dateinummer = FreeFile
Set TB = ThisWorkbook.Worksheets(1)
Open exportfile For Output As #Dateinummer
For z = 1 To TB.UsedRange.Rows.Count
If Cells(z, 2).Value = Text Then SL = 10 Else SL = 6
For s = 1 To TB.UsedRange.Columns.Count
TMP = TMP & CStr(TB.Cells(z, s).Text) & ";"
Next s
TMP = Left(TMP, Len(TMP) - 1)
Print #Dateinummer, TMP
TMP = ""
Next z
Close #Dateinummer
End Sub


Das Problem ist, wenn ich einen neuen Datensatz abspeichern möchte wird der letzte überschrieben. Meine Daten werden immer in A1 bis BD1 geschrieben. Ich bin nicht so der Excelspezi, aber wäre es nicht sinnvoll, bei export eine neu Zeile über der aktuellen einfügen zu lassen ???? Die Daten hohle ich mit der Funktion =Tabelle!A1 usw. in die angehende Datenbank. Es wäre klasse, wenn ihr mir helfen könntet.

Chris
Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: export -> import
27.12.2003 17:35:12
Ramses
Hallo Chris

probier das mal


Option Explicit

Sub TextImport()
Dim intRow As Integer
Dim strTxt As String
Close #1
Open "C:\pfad\datenbank" For Input As #1
'Für das suchen der nächsten freien Zeile
'Damit existierende Daten nicht überschrieben werden
intRow = Range("A65536").End(xlUp).Row
'---------------------
Do Until EOF(1)
    intRow = intRow + 1
    Input #1, strTxt
    strTxt = Application.Trim(strTxt)
    strTxt = Application.Clean(strTxt)
    Cells(intRow, 1) = strTxt
    'Geht wesentlich schneller als die Schleife ;-)
    Cells(intRow, 1).TextToColumns Destination:=Cells(intRow, 1), Semicolon:=True
Loop
Close #1
End Sub 
     Code eingefügt mit Syntaxhighlighter 1.16



und im zweiten Makro solltest du schreiben

Open exportfile For Append As #Dateinummer

Gruss Rainer
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