Thema Datum  Von Nutzer Rating
Antwort
23.02.2011 15:45:54 Saubermacher
NotSolved
23.02.2011 21:15:52 Severus
NotSolved
24.02.2011 13:35:16 Gast88214
NotSolved
24.02.2011 14:33:10 Severus
NotSolved
25.02.2011 10:45:46 Saubermacher
NotSolved
25.02.2011 14:06:57 Severus
NotSolved
28.02.2011 13:57:15 Saubermacher
NotSolved
Blau Mehrere txt in eine Arbeitsmappe einfügen.
28.02.2011 16:36:49 Severus
Solved
01.03.2011 11:54:42 Saubermacher
NotSolved
01.03.2011 12:20:19 Severus
NotSolved

Ansicht des Beitrags:
Von:
Severus
Datum:
28.02.2011 16:36:49
Views:
1112
Rating: Antwort:
 Nein
Thema:
Mehrere txt in eine Arbeitsmappe einfügen.

Warum, Leute, könnt ihr nie richtig beschreiben was Ihr wirklich wollt? Fast jedesmal muß man Code nachbessern oder komplett umarbeiten, weil ihr Euer Problem falsch oder unvollständig beschreibt! Das verursacht unnötige Arbeits und vor allem Ärger: Schließlich habe ich anderes zu tun als x-mal Code anzupassen, weil Ihr Eure Probleme nicht so darlegt wie sie wirklich sind! Bitte in Zukunft wirklich so beschreiben, wie Ihr die Lösung wirklich haben wollt!

Option Explicit
      
Sub textdateien_uebernehmen()
Dim strZielDatei As String
Dim lngLaufZahl As Long
Dim strDateiNamen As Variant
Dim trgWB As Excel.Workbook
Dim tmpWB As Excel.Workbook
Dim trgWBName As String
Dim bslashPos As Integer
Dim shName As String
      
On Error GoTo Fehler
'Ereignisse abschalten
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.DisplayAlerts = False
      
'Zieldatei auswählen und öffnen
strZielDatei = Application.GetOpenFilename("Excel-Arbeitsmappe (*.xls),*.xls", , "Zieldatei auswählen...", , False)
Set trgWB = Workbooks.Open(strZielDatei)

'Zu importierende Textdateien auswählen
strDateiNamen = Application.GetOpenFilename("Text-Dateien(*.txt*),*.txt*", , "Zu importierende Textdateien auswählen...", , True)
      
'Mehrere Dateien ausgewählt
If IsArray(strDateiNamen) Then
    For lngLaufZahl = LBound(strDateiNamen) To UBound(strDateiNamen)
            Set tmpWB = Workbooks.Open(strDateiNamen(lngLaufZahl))
            tmpWB.Sheets(1).UsedRange.Columns("A").Select
            Selection.TextToColumns DataType:=xlDelimited, textqualifier:=xlTextQualifierDoubleQuote, semicolon:=True
            For bslashPos = Len(strDateiNamen(lngLaufZahl)) To 1 Step -1
                If Mid(strDateiNamen(lngLaufZahl), bslashPos, 1) = "\" Then Exit For
            Next bslashPos
            shName = strDateiNamen(lngLaufZahl)
            shName = Right(shName, Len(shName) - bslashPos)
            shName = Left(shName, Len(shName) - 4)
            If Len(shName) > 31 Then shName = Left(shName, 31)
            tmpWB.Sheets(1).Name = shName
            tmpWB.Sheets(shName).Range("A1").Select
            'In Zieldatei kopieren
            tmpWB.Sheets(1).Copy After:=trgWB.Sheets(trgWB.Sheets.Count)
            trgWB.Save
            'Temporäre Datei ohne speichern schließen, Verweis freigeben
            tmpWB.Close False
            Set tmpWB = Nothing
    Next lngLaufZahl
'Nur eine Datei ausgwählt
Else
    Set tmpWB = Workbooks.Open(strDateiNamen)
    tmpWB.Sheets(1).UsedRange.Columns("A").Select
    Selection.TextToColumns DataType:=xlDelimited, textqualifier:=xlTextQualifierDoubleQuote, semicolon:=True
    For bslashPos = Len(strDateiNamen) To 1 Step -1
        If Mid(strDateiNamen, bslashPos, 1) = "\" Then Exit For
    Next bslashPos
    shName = strDateiNamen(lngLaufZahl)
    shName = Right(shName, Len(shName) - bslashPos)
    shName = Left(shName, Len(shName) - 4)
    If Len(shName) > 31 Then shName = Left(shName, 31)
    tmpWB.Sheets(1).Name = shName
    tmpWB.Sheets(shName).Range("A1").Select
    tmpWB.Sheets(1).Copy After:=trgWB.Sheets(trgWB.Sheets.Count)
    trgWB.Save
    tmpWB.Close False
    Set tmpWB = Nothing
End If
'Verweis freigeben
Set trgWB = Nothing
'Ereignisse einschalten
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.DisplayAlerts = True
Exit Sub
Fehler:
MsgBox "Fehlernummer: " & Err.Number & Chr(10) _
& "Fehlerbeschreibung: " & Err.Description & Chr(10) _
& "Verursacht durch: " & Err.Source, vbInformation, "Fehler..."
Err.Clear
Resume Next
End Sub

Severus


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
23.02.2011 15:45:54 Saubermacher
NotSolved
23.02.2011 21:15:52 Severus
NotSolved
24.02.2011 13:35:16 Gast88214
NotSolved
24.02.2011 14:33:10 Severus
NotSolved
25.02.2011 10:45:46 Saubermacher
NotSolved
25.02.2011 14:06:57 Severus
NotSolved
28.02.2011 13:57:15 Saubermacher
NotSolved
Blau Mehrere txt in eine Arbeitsmappe einfügen.
28.02.2011 16:36:49 Severus
Solved
01.03.2011 11:54:42 Saubermacher
NotSolved
01.03.2011 12:20:19 Severus
NotSolved