Office: lange Zahl als Text einlesen, VBA, TextToColumns

Helfe beim Thema lange Zahl als Text einlesen, VBA, TextToColumns in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Hallo zusammen, ich habe folgendes Problem, wozu ich im Internet noch keine Lösung zu gefunden habe: Ich möchte mit VBA und der Funktion... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von haph_vi, 2. März 2015.

  1. haph_vi Neuer User

    lange Zahl als Text einlesen, VBA, TextToColumns


    Hallo zusammen,

    ich habe folgendes Problem, wozu ich im Internet noch keine Lösung zu gefunden habe:
    Ich möchte mit VBA und der Funktion TextToColumns eine CSV-Datei einlesen.
    Das klappt auch soweit. Jetzt ist nur ein Wert eine Zahl mit 16 Zeichen.
    Diese wird dann immer von 7511418123456789 zu einer Exponential-Zahl oder zu 7511418123456700 abgekürzt.
    Ich weiß, dass Excel (2010 nutze ich) nur mit max. 15 Stellen arbeiten kann.
    Ich benötige aber auf jeden Fall die Zahl als ganzes.
    Jetzt meine Frage:
    Wie kann ich die lange Zahl mit der oben genannten Funktion als Text einlesen?

    Danke im Voraus
    Gruß
    Henrik

    Hier mein Code (ist zwar wahrscheinlich sehr unschön geschrieben, aber funktioniert für meine Bedurfnisse :D ):
    Code:
    Sub Pruefzeiten_AW_alt()
    
         Dim AppShell As Object
         Dim BrowseDir As Variant
         Dim CSVPFAD As String
    
         Set AppShell = CreateObject("Shell.Application")
         Set BrowseDir = AppShell.BrowseForFolder(0, "Ordner auswählen", &H1000, 17)
         On Error Resume Next
         CSVPFAD = BrowseDir.items().Item().Path
         If CSVPFAD = "" Then Exit Sub
         
         'On Error GoTo 0
         
        'Const CSVPFAD = "H:\WP-Fertigung\Auswertungen\Prüfzeitauswertung\Funktionsprüfstand AW alt Linie 2\asdf"
        Dim wbTarget As Workbook, wbSource As Workbook, ws As Worksheet, ts As Worksheet
        Set fso = CreateObject("Scripting.Filesystemobject")
        Set wbTarget = ActiveWorkbook
        Application.DisplayAlerts = False
        'Lösche alle Worksheets bevor wir alle neu anlegen
        While wbTarget.Worksheets.Count > 1
                wbTarget.Worksheets(1).Delete
        Wend
        wbTarget.Worksheets(1).Name = "Zusammenfassung"
        wbTarget.Worksheets(1).Range("A:ZZ").Clear
        For Each f In fso.GetFolder(CSVPFAD).Files
            If LCase(Right(f.Name, 3)) = "txt" Then
                Workbooks.OpenText Filename:=f.Path
                Set wbSource = ActiveWorkbook
                On Error Resume Next
                Set ws = wbTarget.Worksheets(f.Name)
                If Err <> 0 Then
                    Set ws = wbTarget.Worksheets.Add
                    ws.Name = f.Name
                    ws.Range("A:ZZ").Clear
                End If
            
                wbSource.Worksheets(1).Range("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Semicolon:=True, TrailingMinusNumbers:=True, FieldInfo:=Array(Array(1, 2))
                wbSource.Worksheets(1).Range("B2").Copy Destination:=ws.Range("A1")
                wbSource.Worksheets(1).Range("B5").Copy Destination:=ws.Range("B1")
                wbSource.Worksheets(1).Range("B6").Copy Destination:=ws.Range("C1")
                ws.Range("B1:C1").NumberFormat = "[$-F400]h:mm:ss AM/PM"
                Dim a2 As Date, a3 As Date, a21 As Date, a31 As Date
                ws.Range("A1").NumberFormat = "@"
                a2 = ws.Range("B1")
                a3 = ws.Range("C1")
                a21 = (Right(a2, 8))
                a31 = (Right(a3, 8))
                ws.Range("D1") = a31 - a21
                ws.Range("D1").NumberFormat = "[$-F400]h:mm:ss AM/PM"
                
                wbSource.Close False
            End If
        Next
        Set ts = wbTarget.Worksheets("Zusammenfassung")
        Dim curCell As Range
        ts.Range("A1") = "Herstellnummer"
        ts.Range("B1") = "Prüfung Start"
        ts.Range("C1") = "Prüfung Ende"
        ts.Range("D1") = "Prüfzeit"
        Set curCell = ts.Range("A2")
        
        For i = 1 To wbTarget.Worksheets.Count - 1
            maxRow = wbTarget.Worksheets(i).Range("A1").End(xlDown).Row
            maxCol = wbTarget.Worksheets(i).Range("A1").End(xlToRight).Column
            wbTarget.Worksheets(i).Range(wbTarget.Worksheets(i).Cells(1, 1), wbTarget.Worksheets(i).Cells(1, 4)).Copy Destination:=curCell
            'MsgBox maxCol
            'Set curCell = curCell.End(xlDown).Offset(1, 0)
            Set curCell = curCell.Offset(1, 0)
        Next
        Application.DisplayAlerts = True
        ts.Range("A:A").NumberFormat = "################"
        ts.Columns("A:ZZ").EntireColumn.AutoFit
       
        
        
        Set fso = Nothing
    End Sub
    
     
    haph_vi, 2. März 2015
    #1
  2. miriki Erfahrener User
    Moinsens!

    Das steuerst Du über die "FieldInfo" Eigenschaft der OpenText-Methode:
    Code:
        Workbooks.OpenText _
            [...]
            fieldinfo:=Array(Array(1, xlTextFormat), Array(2, xlTextFormat), Array(3, xlTextFormat))
    Weitere Infos unter "XlColumnDataType-Enumeration" in der Excel-Hilfe.

    Gruß, Michael
     
    miriki, 3. März 2015
    #2
Thema:

lange Zahl als Text einlesen, VBA, TextToColumns

Die Seite wird geladen...
  1. lange Zahl als Text einlesen, VBA, TextToColumns - Similar Threads - lange Zahl Text

  2. Makro dauert sehr lange

    in Microsoft Excel Hilfe
    Makro dauert sehr lange: Hallo Zusammen, unten stehendes Makro habe ich mir zusammen gebastelt. Es soll das Blatt Br232_Sondereintragungen kopieren,die Kopie dann speichern und schließen. Danach sollen im original Blatt...
  3. Löschen von Zeilen und anschließendes Kopieren dauert lange

    in Microsoft Excel Hilfe
    Löschen von Zeilen und anschließendes Kopieren dauert lange: Hallo, kann mir einer helfen den abgebildeten Code zu optimieren? Wenn der Code durchläuft dauert es gefühlt 20 Sekunden bis er fertig ist. Und das bei höchstens 20 Zeilen. Was macht der Code:...
  4. Berechnung Arbeitstage dauert sehr lange

    in Microsoft Access Hilfe
    Berechnung Arbeitstage dauert sehr lange: Hallo , Nutze folgende Funktion um die Netto Arbeitstage in einer Abfrage zu berechnen: Code: Public Function CalcDays(dtStart As Date, dtEnd As Date) As Integer Dim iDiff As Integer Dim i As...
  5. Microsoft Teams Aufnahme unterbrochen - Fehler bei langer Aufnahme

    in Microsoft Teams Hilfe
    Microsoft Teams Aufnahme unterbrochen - Fehler bei langer Aufnahme: Guten Tag zusammen, wir haben für einen Kunden ein Seminar gegeben mit Microsoft Teams welches über 6 Stunden lang ging und aufgezeichnet werden sollte. Nun haben wir zu Beginn des Seminars die...
  6. Paketporto (mit Länge, Höhe, Breite, Gewicht)

    in Microsoft Excel Tutorials
    Paketporto (mit Länge, Höhe, Breite, Gewicht): Beim Porto gilt für das Finden der jeweiligen Portoangabe die Systematik "von über ... bis inkl." als Intervallgrenzen-Sonderfall. Das bekommt man durch VERGLEICH mit negativen Werten und Listen...
  7. Lange Zahlen als Text (E+ Fehler beim Ersetzen von Zeichen)

    in Microsoft Excel Hilfe
    Lange Zahlen als Text (E+ Fehler beim Ersetzen von Zeichen): Hallo, hab das Excel-Forum gesucht aber nichts passendes gefunden daher neues Thema. Mein Problem ist mit Sicherheit jeden von uns bekannt. Allerdings konnte ich keine lösung bis jetzt finden. Ich...
  8. Extrem lange Zahlen nicht durch 0er ersetzen

    in Microsoft Excel Hilfe
    Extrem lange Zahlen nicht durch 0er ersetzen: Hallo! Ich bin neu hier und habe ein riesen Problem (habe es über die Such-Funktion nicht gefunden). Ich muß für die Arbeit eine Tabelle erstellen, in der Seriennummern von Geräten eingetragen...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden