Thema Datum  Von Nutzer Rating
Antwort
05.12.2014 18:53:40 Hiwi_PE
NotSolved
Blau  quod esset demonstrandum
05.12.2014 20:41:08 Gast20139
NotSolved
05.12.2014 21:51:12 Gast34762
NotSolved

Ansicht des Beitrags:
Von:
Gast20139
Datum:
05.12.2014 20:41:08
Views:
685
Rating: Antwort:
  Ja
Thema:
quod esset demonstrandum

Hi Hiwi_,

MEINE erste Frage lautet:

<Dann könnte die Datei als .csv eingelesen werden

>WOHIN – nach Excel? - DANN geht es ggf. auch so:

 

Wenn klappt ernährt sich das Eichhörnchen mühsam, wenn 5000 Dateien abzuknappern sind.

 

Das oFso Eichhörnchen kann auch Dateien aus Verzeichnissen "sammeln"

und so eine Prozedur der Reihe nach füttern – BIS DAS WORKBOOK platzt!

 

quod esset demonstrandum

 

Option Explicit

Sub MkInput()
Const ZEICHEN As Long = 4
Dim oFso As Object
Dim oStream As Object
Dim oFile As Object
Dim strTextline As String
Dim strFilename As String
Dim strTabname As String
Dim arrZeile() As String
Dim lngSpalten As Long
Dim blnRedim As Boolean
Dim x As Long, y As Long, z As Long
Dim c As Range
'
   On Error GoTo MkInput_Error
'
Set oFso = CreateObject("Scripting.FileSystemObject")

strFilename = "C:\VBA\Rasterdaten.txt"             '<<<<<< Pfad Testdatei !!!
strTabname = Replace(strFilename, ".txt", "")
strTabname = Replace(strTabname, "\", " ")
strTabname = Replace(strTabname, ":", " ")

Sheets.Add
ActiveSheet.Name = strTabname

Set oFile = oFso.GetFile(strFilename)

Set oStream = oFile.OpenAsTextStream(1, -2)

Do While oStream.AtEndOfStream <> True
    
    strTextline = oStream.ReadLine
    
    If Not blnRedim Then
      lngSpalten = Len(strTextline) / ZEICHEN
      ReDim arrZeile(1 To lngSpalten)
      blnRedim = True
    End If
    
    For x = 1 To Len(strTextline) Step ZEICHEN
      y = y + 1
      arrZeile(y) = Mid(strTextline, x, ZEICHEN)
    Next x

   z = z + 1
   y = 0
   Set c = Cells(z, 1)
   Set c = c.Resize(1, UBound(arrZeile))
   c.Value = arrZeile

Loop

oStream.Close
'
   On Error GoTo 0
'
MkInput_Error:
'------------------------------------------------------------------------------
Select Case Err.Number
  Case Is = 0: 'errorless
  Case Is = 1004
   Call MsgBox("umbenenen oder löschen!", vbCritical, "Abbruch - Tabelle vorhanden")
  Case Else:
   Call MsgBox(Format(Err.Number, "   #0") & "/" & _
      Err.Description, vbExclamation, "Code Fehler")
End Select
'------------------------------------------------------------------------------

End Sub

 

 

 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
05.12.2014 18:53:40 Hiwi_PE
NotSolved
Blau  quod esset demonstrandum
05.12.2014 20:41:08 Gast20139
NotSolved
05.12.2014 21:51:12 Gast34762
NotSolved