gast@schmalzl.tirol — Große Excel Datei in Werte wandeln
Stil
?
PS gast@schmalzl ~C:\Users\gast/notizen/2020-11-03-grosse-excel-datei-in-werte-wandeln

Aus dem alten Blog übernommen · Zur Blogübersicht

Große Excel Datei in Werte wandeln

#Excel #VBA

Ursprünglich veröffentlicht am 03.11.2020 im alten Blog

Heute musste ich eine ziemlich umfangreiche Excel Datei in Werte wandeln. Normalerweise würde ich das einfach mittels Copy-Paste machen und die Daten als Werte einfügen. Bei der Menge an Daten kam Excel aber leider ganz schön ins schnaufen (bzw. ist mehrmals abgestürzt), darum habe ich das mittels VBA gelöst.

Die Zeilen einzeln zu kopieren funktioniert zwar ganz gut, ist aber leider extrem langsam. Vielleicht gibt es noch eine bessere Möglichkeit.

Ich hatte auch einmal einen Export nach *.csv oder *.txt versucht und einen anschließenden Import nach Excel, leider gingen hier bei Telefonummern die mit +43 begonnen haben die Formate verloren...

Generell scheint das ein häufigeres Problem zu sein, ich habe dazu auch diesen Beitrag gefunden:

Sub Grosse_Datei_als_Werte()

    Application.ScreenUpdating = False
    Application.DisplayAlerts = False

    'Inhalte in Tabellenblatt "Werte" löschen
    Sheets("Werte").Select
    Cells.Select
    Selection.ClearContents

    'Anzahl Zeilen in Tabellenblatt "CUSTTABLE" ermitteln
    Sheets("CUSTTABLE").Select
    loletzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count)

    'Kopieren und einfügen aller Zeilen von Tabellenblatt "CUSTTABLE" nach Tabellenblatt "Werte"
    For loi = 1 To loletzte

        Sheets("CUSTTABLE").Select
        Rows(loi & ":" & loi).Select
        Selection.Copy
        Sheets("Werte").Select
        Rows(loi & ":" & loi).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

        If (loi Mod 500) = 0 Then

            Application.CutCopyMode = False
            ActiveWorkbook.Save

        End If

    Next loi

    Application.ScreenUpdating = True
    Application.DisplayAlerts = True

End Sub