AW: Backup der Userdaten export/import
05.02.2018 19:47:30
Peer
Ich habe hier im Forum von Sepp folgenden Code entdeckt und bin am Anfang erstmal begeistert gewesen.
Option Explicit
' Modul: Modul1 Typ: Allgemeines Modul
' von Josef Ehrensberger
Sub exportValuesToText()
Dim vntFile As Variant
Dim rng As Range, rngC As Range
Dim ff As Integer
On Error Resume Next
'Set rngC = ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants)
'oder
Set rngC = Range("B12:B42,G12:L42,N12:U42,X12:X42")
On Error GoTo 0
If Not rngC Is Nothing Then
vntFile = Application.GetSaveAsFilename("Werte.txt", "Text Files (*.txt), *.txt")
If vntFile False Then
ff = FreeFile
Open vntFile For Output As #ff
For Each rng In rngC.Cells
Print #ff, rng.Address(0, 0) & ";" & rng.Formula & ";" & rng.NumberFormat
Next
Close #ff
End If
End If
Set rng = Nothing
Set rngC = Nothing
End Sub
Sub importValuesFromText()
Dim strFile As String, strTmp As String
Dim ff As Integer
strFile = Application.GetOpenFilename("Text Dateien (*.txt),*.txt")
If strFile CStr(False) Then
ff = FreeFile
Open strFile For Input As #ff
Do While Not EOF(ff)
Line Input #ff, strTmp
With Range(Split(strTmp, ";")(0))
.Formula = Split(strTmp, ";")(1)
.NumberFormat = Split(strTmp, ";")(2)
End With
Loop
Close #ff
End If
End Sub
Ich habe es meinen Ansprüchen anpassen wollen, komme aber nicht ganz weiter.
Als erstes hatte ich die Zeile
Set rngC = ActiveSheet.UsedRange.SpecialCells(xlCellTypeConstants)
aktiviert und die Zeile darunter deaktiviert.
Hier funktionierte fast alles super. Nur das das Sheet bei mir "nicht gesperrt" war und daher alle Zellen mit Werten gespeichert wurde. Ich habe das Makro einer Schaltfläche zugeordnet, aber hier wurde der Button auch "gesperrt", obwohl in den Einstellungen der Haken bei "gesperrt" raus war.
Also habe ich die Zeilen getauscht.
Nun bekomme ich die Fehlermeldung beim import...
Sub importValuesFromText()
Dim strFile As String, strTmp As String
Dim ff As Integer
strFile = Application.GetOpenFilename("Text Dateien (*.txt),*.txt")
If strFile CStr(False) Then
ff = FreeFile
Open strFile For Input As #ff
Do While Not EOF(ff)
Line Input #ff, strTmp
With Range(Split(strTmp, ";")(0))
.Formula = Split(strTmp, ";")(1) 'FEHLER
.NumberFormat = Split(strTmp, ";")(2) 'FEHLER
End With
Loop
Close #ff
End If
End Sub
Warum? Format?