Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1056to1060
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
DATEINAME
11.03.2009 21:01:21
eric
Hallo zusammen
z. B.
Const LWCSV = "F:\"
Const PFADCSV = "F:\_umsetzen\_csv"
Const FILE = "F:\_umsetzen\_csv\1.csv"
ChDrive LWCSV 'LAUFWERK
ChDir PFADCSV 'PFAD
und für die Datei chfile funktioniert nicht ?
was muss für Datei stehen ?
Danke eric

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
was funktioniert nicht? o.T.
11.03.2009 21:03:03
Josef
Gruß Sepp

AW: was funktioniert nicht? o.T.
11.03.2009 21:10:51
eric
Hallo,
für LW steht ChDrive, für Pfad steht CdDir und für DATEI ?
oder nur einfach z.b. c:\verzeichniss\datei ?
Danke eric
AW: was funktioniert nicht? o.T.
11.03.2009 21:19:21
Josef
Hallo Eric,
ChDrive, bzw. ChDir wechseln auf das entsprechende Laufwerk/Verzeichnis.
Abre beschreibe doch mal genau was du erreichen willst, ich glaube nämlich, das du auf dem Holzweg bist.
Gruß Sepp

AW: was funktioniert nicht? o.T.
11.03.2009 21:25:06
eric
Hallo,
es müssen hinereinander mehrere *.csv Dateien mit konstanten Namen in Excel eingelesen werden, diese haben folgende Namen 1.csv, 2.csv .... 24.csv uns stehen immer in dem gleichen Verzeichnis, nach dem einlesen müssen diese glöscht werden, ideal wäre eine Lösung 1.csv einlesen / 1.csv löschen ...
Es kann aber auch vorkommen, dass z.B. nur 4.csv und 8.csv vorhanden ist !
Danke eric
Anzeige
zeig doch mal den Code. o.T.
11.03.2009 21:26:55
Josef
Gruß Sepp

AW: zeig doch mal den Code. o.T.
11.03.2009 21:34:30
eric
Hallo,
wenn 1 Datei in dem Fenster steht funktioniert es prima, nur bei mehrern ?
der Code zum einlesen :

Public Sub CSVImport_01()
'   CSV oder TXT einlesen auf mehreren Tabellen, 65536 Zeilen begrenzt durch Excel, dadurch ggf. _
mehrere Blätter, CSV hat bis zu 200.000 Zeilen
Const LWCSV = "F:\"
Const PFADCSV = "F:\_umsetzen\_csv"
ChDrive LWCSV
ChDir PFADCSV
Dim FileName As String
Dim FileNum As Integer
Dim ResultStr As String
Dim wsSheet As Worksheet
Dim strValues(65536, 1) As String
Dim lngRow As Long
Dim intSheet As Integer
Dim intCounter As Integer
FileName = Application.GetOpenFilename("Textdateien  " _
& "(*.txt; *.csv),*.txt; *.csv", _
Title:="   CSV oder TXT   Datei zum Öffnen auswählen")
If FileName = "" Or FileName = "Falsch" Then Exit Sub
FileNum = FreeFile()
Open FileName For Input As #FileNum
Application.ScreenUpdating = False
Workbooks.Add template:=xlWorksheet
lngRow = 1
intSheet = 1
Application.StatusBar = "Blatt " & intSheet & " wird eingelesen"
Do While Seek(FileNum) 


Danke eric

Anzeige
AW: zeig doch mal den Code. o.T.
11.03.2009 22:56:19
Josef
Hallo Eric,
so, ich habe den Code angepasst und aufgeräumt, war ja gruselig;-)
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public Sub CSVImport_01()
  ' CSV oder TXT einlesen auf mehreren Tabellen, 65536 Zeilen begrenzt durch Excel, dadurch ggf. _
    mehrere Blätter, CSV hat bis zu 200.000 Zeilen

  Dim strValues() As String
  Dim FileName As Variant, ResultStr As String
  Dim lngRow As Long, intSheet As Integer, FileNum As Integer, lngIndex As Long
  Dim str As String, s_Datum As String, s_Zeit As String
  Dim objWB As Workbook, objWS As Worksheet
  
  Const LWCSV = "F:\"
  Const PFADCSV = "F:\_umsetzen\_csv"
  Const PfadSICH = "F:\_UMSETZEN\_AUSGANG\"
  
  On Error GoTo ErrExit
  GMS
  
  ChDrive LWCSV
  ChDir PFADCSV
  
  FileName = Application.GetOpenFilename("Textdateien " _
    & "(*.txt; *.csv),*.txt; *.csv", _
    Title:=" CSV oder TXT Datei zum Öffnen auswählen", MultiSelect:=True)
  
  
  If IsArray(FileName) Then
    Set objWB = Workbooks.Add(xlWBATWorksheet)
    Set objWS = objWB.Sheets(1)
    
    lngRow = 1
    intSheet = 1
    
    For lngIndex = LBound(FileName) To UBound(FileName)
      Erase strValues
      Redim strValues(1 To Rows.Count, 1 To 1)
      If lngIndex > LBound(FileName) Then
        Set objWS = objWB.Worksheets.Add(after:=objWB.Worksheets(objWB.Worksheets.Count))
        lngRow = 1
        intSheet = intSheet + 1
      End If
      
      Application.StatusBar = "Blatt " & intSheet & " wird eingelesen"
      
      FileNum = FreeFile()
      
      Open FileName(lngIndex) For Input As #FileNum
      
      Do While Seek(FileNum) <= LOF(FileNum)
        Line Input #FileNum, ResultStr
        If Left(ResultStr, 1) = "=" Then
          strValues(lngRow, 1) = "'" & ResultStr
        Else
          strValues(lngRow, 1) = ResultStr
        End If
        If lngRow < Rows.Count Then
          lngRow = lngRow + 1
        Else
          objWS.Range("A1:A" & Rows.Count) = strValues
          Set objWS = objWB.Worksheets.Add(after:=objWB.Worksheets(objWB.Worksheets.Count))
          lngRow = 1
          intSheet = intSheet + 1
          Erase strValues
          Redim strValues(1 To Rows.Count, 1 To 1)
          Application.StatusBar = "Blatt " & intSheet & " wird eingelesen"
        End If
      Loop
      
      Close #FileNum
      
      objWS.Range("A1:A" & Rows.Count) = strValues
    Next
    
    If MsgBox("Sollen die eingelesenen Daten auf Spalten verteilt werden?", _
      vbYesNo, "Text in Spalten") = vbNo Then GoTo ErrExit
    
    intSheet = 0
    Set objWS = Nothing
    
    For Each objWS In objWB.Worksheets
      intSheet = intSheet + 1
      Application.StatusBar = "Daten von Blatt " & intSheet _
        & " werden bearbeitet"
      With objWS
        .Activate
        .Range("A:A").TextToColumns Destination:=.Range("A1"), _
          DataType:=xlDelimited, _
          TextQualifier:=xlDoubleQuote, _
          ConsecutiveDelimiter:=False, _
          Tab:=False, _
          Semicolon:=True, _
          Comma:=False, _
          Space:=False, _
          Other:=False
        
        With .UsedRange.Cells.Font
          .Name = "Arial"
          .Size = 8
          .ThemeColor = xlThemeColorLight1
        End With
        .UsedRange.Columns.AutoFit
        .Range("A1").Select
      End With
    Next
    
    s_Datum = Date
    s_Zeit = Time
    s_Datum = Application.Substitute(s_Datum, ".", "")
    
    str = PfadSICH & objWB.Name
    
    objWB.SaveAs FileName:=str & s_Datum & "_" & _
      Format(s_Zeit, "hhmmss") & ".xls", FileFormat:= _
      xlNormal, Password:="", writerespassword:="", _
      ReadOnlyRecommended:=False, CreateBackup:=True
    
    objWB.Close
    
    Application.StatusBar = "Fertig"
  End If
  
  
  ErrExit:
  With Err
    If .Number <> 0 Then MsgBox "Fehler " & .Number & vbLf & vbLf & _
      .Description & vbLf & vbLf & "In Prozedur (CSVImport_01) in Modul Modul1", _
      vbExclamation, "Fehler in Modul1 / CSVImport_01"
  End With
  
  GMS True
  
  Application.StatusBar = False
  Set objWB = Nothing
  Set objWS = Nothing
End Sub

Public Sub GMS(Optional ByVal Modus As Boolean = False)
  
  Static lngCalc As Long
  
  With Application
    .ScreenUpdating = Modus
    .EnableEvents = Modus
    .DisplayAlerts = Modus
    .EnableCancelKey = IIf(Modus, 1, 0)
    If Not Modus Then lngCalc = .Calculation
    If Modus And lngCalc = 0 Then lngCalc = -4105
    .Calculation = IIf(Modus, lngCalc, -4135)
    .Cursor = IIf(Modus, -4143, 2)
    
  End With
  
End Sub

Gruß Sepp

Anzeige

299 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige