AW: neues Problem
13.08.2007 11:00:00
Ramses
Hallo
hier mit automatischer Berechnung der Importspalte.
Beginn ab Spalte C
Option Explicit
Sub ImportKundenTextFile()
'(C) Ramses
'Liest nur Datensätze ein, die nach
'einer bestimmten Zeichenfolge stehen
'bis eine spezifische Zeichenfolge wiederkehrt
'Das spezifische Zeichen ist hier "&"
Dim fileToOpen As String, impRow As Long, Qe As Integer
Dim impLine As Variant, impFlag As Boolean
Dim spezString As String
'In diese Spalte wird mit dem Einlesen begonnen
'wird automatisch berechnet
Dim impCol As Integer
'Nach dieser Zeichenfolge wird
'zum Beginn des einlesens gesucht
spezString = "&8"
'Das ist das File zum importieren
fileToOpen = "C:\Himport.txt"
'*********************************************
'Hier nichts mehr ändern
Open fileToOpen For Input As #1
'In dieser Zeile wird mit dem Einlesen begonnen
impRow = 1
'Importspalte berechnen
impCol = Cells(1, 255).End(xlToLeft).Column + 1
If impCol < 3 Then
'Dann in Spalte C beginnen
impCol = 3
ElseIf impCol = 255 Then
MsgBox "Keine Spalte zum Import mehr frei", vbOKOnly + vbCritical, "Fehler"
Exit Sub
End If
Do While Not EOF(1)
Line Input #1, impLine
If InStr(1, impLine, Left(spezString, 1)) > 1 Then
If InStr(1, impLine, spezString) > 1 Then
impRow = impRow + 1
impFlag = True
Else
impFlag = False
End If
End If
If impFlag = True Then
If InStr(1, impLine, "KUNDENNUMMER") > 1 Then
Cells(impRow, impCol) = Trim(Right(impLine, 7))
Else
Cells(impRow, impCol) = Trim(impLine)
End If
impRow = impRow + 1
End If
'Importlimit liegt bis E2003 bei 65536 Zeilen pro Tabelle
'ab E2007 ist das Importlimit bei über 1'000'000
'Dann entsprechend anpassen
If impRow >= 65500 And impFlag = False Then
Qe = MsgBox("Das Tabellenlimit zum einlesen ist erreicht." & vbCrLf & _
"Soll eine neue Tabelle angelegt werden ?", vbYesNo + vbInformation, "Import Limit")
If Qe = vbNo Then
MsgBox "Datenimport wird gestoppt", vbCritical + vbOKOnly, "Import Fehler"
Close #1
Exit Sub
Else
Worksheets.Add
impRow = 1
impCol = 3
End If
End If
Loop
Close #1
End Sub
Der Rest erscheint mir verdächtig nach Auftragsprogrammierung.
Sorry,... aber das sprengt den Rahmen des Forums.
Gruss Rainer