Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Makro zum automatischen Daten einlesen
#11
Hallo,

Wer lesen kann ist klar im Vorteil -> Wo hab ich gesagt du sollst die externe Datei öffnen

Du öffnest ein leeres Excel -> Daten ..
Antworten Top
#12
Hallo, :19:

hier mal eine VBA-Lösung: :21:


Code:
Option Explicit
Public Sub Main()
    Dim varArrQ As Variant
    Dim varArrZ As Variant
    Dim lngRow As Long
    On Error GoTo Fin
    Application.ScreenUpdating = False
    varArrQ = Split(fncRF("C:\Temp\Beispiel.txt"), vbCrLf) ' Pfad- Dateiname ggf. anpassen!!!
    ' Tabelle1 - Codename der Tabelle - Name VOR der Klammer im VBA-Editor
    Tabelle1.Range("A1:A" & UBound(varArrQ) + 1).Value = Application.Transpose(varArrQ)
    Tabelle1.UsedRange.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 1), TrailingMinusNumbers:=True
Fin:
    Application.ScreenUpdating = True
    If Err.Number <> 0 Then MsgBox "Error: " & _
        Err.Number & " " & Err.Description
End Sub
Private Function fncRF(ByVal strDatei As String) As String
    Dim strInhalt As String
    Dim intTMP As Integer
    If Dir$(strDatei, vbNormal) <> "" Then
        intTMP = FreeFile
        Open strDatei For Binary As #intTMP
        strInhalt = Space$(LOF(intTMP))
        Get #intTMP, , strInhalt
        Close #intTMP
    End If
    fncRF = strInhalt
End Function

Zum Thema CodeName des Tabellenblattes: :21:

Klick mal hier...
________
Servus
Case
[-] Folgende(r) 1 Nutzer sagt Danke an Case für diesen Beitrag:
  • Sandrof90
Antworten Top
#13
(14.08.2018, 08:59)Case schrieb: Hallo, :19:

hier mal eine VBA-Lösung: :21:

Hey Super Vielen Dank!

Eine Frage noch, Die Beispiel-Datei, die ich hochgeladen hatte ist deutlich kleiner als die Originaldatei. Wenn ich versuche meine Originaldatei damit zu bearbeiten (>800k Zeilen), dann bekomme ich die Fehlermeldung "13 Typen unverträglich"  Huh
Antworten Top
#14
Hallo, :19:

da dürfte die "Transpose-Methode" an ihre Grenzen stoßen. Probiere es mal so: :21:


Code:
Option Explicit
Public Sub Main()
    Dim varArrQ As Variant
    Dim varArrZ As Variant
    Dim lngRow As Long
    On Error GoTo Fin
    Application.ScreenUpdating = False
    varArrQ = Split(fncRF("C:\Temp\Beispiel.txt"), vbCrLf) ' Pfad- Dateiname ggf. anpassen!!!
    ' Tabelle1 - Codename der Tabelle - Name VOR der Klammer im VBA-Editor
    ReDim varArrZ(UBound(varArrQ), 1 To 1)
    For lngRow = LBound(varArrQ) To UBound(varArrQ)
        varArrZ(lngRow, 1) = varArrQ(lngRow)
    Next lngRow
    Tabelle1.Range("A1:A" & UBound(varArrZ) + 1).Value = varArrZ 'Application.Transpose(varArrQ)
    Tabelle1.UsedRange.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=True, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 1), TrailingMinusNumbers:=True
Fin:
    Application.ScreenUpdating = True
    If Err.Number <> 0 Then MsgBox "Error: " & _
        Err.Number & " " & Err.Description
End Sub
Private Function fncRF(ByVal strDatei As String) As String
    Dim strInhalt As String
    Dim intTMP As Integer
    If Dir$(strDatei, vbNormal) <> "" Then
        intTMP = FreeFile
        Open strDatei For Binary As #intTMP
        strInhalt = Space$(LOF(intTMP))
        Get #intTMP, , strInhalt
        Close #intTMP
    End If
    fncRF = strInhalt
End Function

Wenn das auch nicht geht, Originaldatei her - am offenen Herzen lässt sich immer leichter operieren. Dodgy
________
Servus
Case
[-] Folgende(r) 1 Nutzer sagt Danke an Case für diesen Beitrag:
  • Sandrof90
Antworten Top
#15
(14.08.2018, 10:28)Case schrieb: da dürfte die "Transpose-Methode" an ihre Grenzen stoßen. Probiere es mal so: :21:

Damit läuft es! :18: Tausend Dank

Beste Grüße
Sandro
Antworten Top
#16
Laola
________
Servus
Case
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste