Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Werte TXT Datei exportieren / importieren

Werte TXT Datei exportieren / importieren
Jürgen
Hallo,
ich kann nur sehr sehr rudimentär VBA.
Ich möchte per Knopfdruck auf einer UserForm Werte aus dem Tabellenblatt "Einstellungen" in eine TXT Datei zb. testcfg.txt exportieren und im Gegenzug diese Daten auch wieder aus der TXT Datei in das Tabellenblatt "Einstellungen" importieren.
Zur weiteren Info: Das Tabellenblatt "Einstellungen" ist ausgeblendet.
Danke vorab :)
Anzeige
AW: Open for output / input
03.08.2012 21:32:34
frigo
Hallo Jürgen,
ob das Tabellenblatt ein- oder ausgeblendet ist spielt keine Rolle.
Rausschreiben:
open "c:\testcfg.txt" for OUTput as #1
write #1, Worksheets("Einstellungen").cells(1,1).text
close #1
Einlesen:
open "c:\testcfg.txt" for INput as #1
input #1, strWert
close #1
Worksheets("Einstellungen").cells(1,1).value = strWert
Weiteres und Erklärungen siehe VBA-Hilfe, diese hat viele Beispiele zu open, write, input etc.
Du musst Dir vor allem die Dateistruktur überlegen, d.h. wie sollen die Werte abgelegt werden. Z.B. eine Excelzeile in einer Textzeile
A1, B1, C1...
oder jede Zelle in einer Textzeile
A1
B1
A2
B2
Gruß frigo
Anzeige
AW: Open for output / input
04.08.2012 08:26:33
Jürgen
kann man auch ein "Range" zb von A1 bis F30 so behandeln?
Denn wenn ich nun anstatt cells(1,1) ... range("A1:F30") eintrage schreibt er mir nur "NULL" in die Textdatei
stell doch deinen Code mal ein,...
04.08.2012 11:34:59
Matze,Matthias
Hallo frigo,
.... wir sehen so nicht was du da alles so haben möchtest.
Cells(1,1) ist nur Range("A1")
Gruss Matze
Anzeige
AW: stell doch deinen Code mal ein,...
04.08.2012 12:27:04
Jürgen
Hallo Matze.
ich möchte aus dem Worksheet "Einstellungen" die Werte aus C2:C13 und B16, B19, B20, B21, etc auslesen und als Textdatei abspeichern. Das selbe möchte ich dann auch mit den Werten aus dem Worksheet "Übersicht" aus C6:C36, E6:E36, G6:G36, I6:I36, K6:K36, M6:M36, O6:O36, Q6:Q36, S6:S36, U6:U36, W6:W36, Y6:Y36 tun.
Diese Werte möchte ich dann später aus der Textdatei an die gleiche Stelle (Zelle/Spalte) wieder einlesen.
zur Info: Das Ganze soll mir als Configsicherung dienen
Gruß Jürgen
Anzeige
AW: stell doch deinen Code mal ein,...
04.08.2012 13:12:33
Matze,Matthias
Hallo Jürgen,
warum so ein Aufwand mit einer extra Textdatei? Kopier doch das entsprechenden Tabellenblatt und füge es wieder woanders ein. Die Resourcen wie Frigo schon sagte, werden durch einen Zusammenhängten Bereich auch geschont.
oder mach eine Kopie der Mappe als Sicherung , z.B.: Mappsicherung_DatumHeute.
Ob du nun eine Exceldatei neu erstellst oder eine Textdatei.
Gruß Matze
Anzeige
AW: stell doch deinen Code mal ein,...
06.08.2012 08:23:24
Jürgen
Hallo Matze
ich habe unterschiedliche Benutzerdefinierte Formatierungen und Formeln auf den Datenblättern und möchte daher die reinen Zellenwertewerte zwischen den unterschiedlichen Versionen imp./exp. Daher kann ich nicht das Tabellenblatt hin oder herkopieren.
kannst du mir eine Lösung generieren?
Anzeige
AW: Zelleninhalte Export / Import
06.08.2012 09:41:48
fcs
Hallo Jürgen,
da du Inhalte aus mehreren Blättern exportieren/importieren möchtest muss du in der Textdatei auch die Information speichern, aus welchelchem tabellenblatt die Inhalte stammen.
Ich hab Sepps Makros mal in diese Richtung angepasst.
Gruß
Franz
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' Original-Code von Josef Ehrensberger
Option Explicit
Sub exportValuesToText()
Dim vntFile As Variant
Dim wks As Worksheet, strRange As String
Dim rng As Range, rngC As Range, lngZeile As Long, lngSpalte As Long
Dim ff As Integer
On Error GoTo Fehler
vntFile = Application.GetSaveAsFilename("Werte.txt", "Text Files (*.txt), *.txt")
If vntFile  False Then
ff = FreeFile
Open vntFile For Output As #ff
Set wks = Worksheets("Einstellungen")
strRange = "C2:C13,B16,B19,B20,B21"
Set rngC = wks.Range(strRange)
For Each rng In rngC.Cells
Print #ff, wks.Name & ";" & rng.Address(0, 0) & ";" & rng.Formula
Next
Set wks = Worksheets("Übersicht")
For lngSpalte = 3 To 25 Step 2 'SPalten C, E, bis Y
For lngZeile = 6 To 36
Set rng = wks.Cells(lngZeile, lngSpalte)
Print #ff, wks.Name & ";" & rng.Address(0, 0) & ";" & rng.Formula
Next
Next lngSpalte
Close #ff
End If
Fehler:
With Err
Select Case .Number
Case 0 'alles OK
Case Else
MsgBox "Fehler-Nr. " & .Number & vbLf & .Description
Close
End Select
End With
Set rng = Nothing
Set rngC = Nothing
Set wks = Nothing
End Sub
Sub importValuesFromText()
Dim strFile As String, strTmp As String
Dim ff As Integer
On Error GoTo Fehler
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 Worksheets(Split(strTmp, ";")(0)).Range(Split(strTmp, ";")(1))
.Formula = Split(strTmp, ";")(2)
End With
Loop
Close #ff
End If
Fehler:
With Err
Select Case .Number
Case 0 'alles OK
Case Else
MsgBox "Fehler-Nr. " & .Number & vbLf & .Description
Close
End Select
End With
End Sub

Anzeige
AW: Zelleninhalte Export / Import
06.08.2012 10:35:46
Jürgen
Danke Franz, klappt soweit... mal schaun ob ich damit mal zurecht komme :))
AW: Werte TXT Datei exportieren / importieren
04.08.2012 17:38:29
Josef

Hallo Jürgen,
probier mal.
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

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("A1:A5,C5:C10,H3:I17")
  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



« Gruß Sepp »

Anzeige
AW: Werte TXT Datei exportieren / importieren
06.08.2012 08:20:14
Jürgen
Hallo Sepp,
danke, aber irgendwie funtioniert das nicht so recht... wie ich hier schon geschrieben habe
ich möchte aus dem Worksheet "Einstellungen" die Werte aus C2:C13 und B16, B19, B20, B21, etc auslesen und als Textdatei abspeichern. Das selbe möchte ich dann auch mit den Werten aus dem Worksheet "Übersicht" aus C6:C36, E6:E36, G6:G36, I6:I36, K6:K36, M6:M36, O6:O36, Q6:Q36, S6:S36, U6:U36, W6:W36, Y6:Y36 tun.
Diese Werte möchte ich dann später aus der Textdatei an die gleiche Stelle (Zelle/Spalte) wieder einlesen.
zur Info: Das Ganze soll mir als Configsicherung dienen
Anzeige
AW: Werte TXT Datei exportieren / importieren
06.08.2012 17:43:07
Josef

Hallo Jürgen,
Infos wie "danke, aber irgendwie funtioniert das nicht so recht... " liebe ich;-)))
Du solltest halt das nächste Mal die Aufgabe gleich richtig beschreiben, dann kann man die Lösung genauer programmieren. Aber Franz hat ja schon ausgeholfen.

« Gruß Sepp »

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Werte aus TXT-Datei in Excel importieren und exportieren


Schritt-für-Schritt-Anleitung

  1. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Modul hinzufügen: Klicke mit der rechten Maustaste auf einen Eintrag im Projektfenster und wähle Einfügen > Modul.
  3. Code einfügen: Kopiere den folgenden VBA-Code in das neue Modul:
Option Explicit

Sub exportValuesToText()
    Dim vntFile As Variant
    Dim wks As Worksheet, strRange As String
    Dim rng As Range, ff As Integer
    On Error GoTo Fehler
    vntFile = Application.GetSaveAsFilename("Werte.txt", "Text Files (*.txt), *.txt")
    If vntFile <> False Then
        ff = FreeFile
        Open vntFile For Output As #ff
        Set wks = Worksheets("Einstellungen")
        strRange = "C2:C13,B16,B19,B20,B21"
        For Each rng In wks.Range(strRange).Cells
            Print #ff, wks.Name & ";" & rng.Address(0, 0) & ";" & rng.Formula
        Next
        Close #ff
    End If
Fehler:
    MsgBox "Fehler: " & Err.Description
End Sub

Sub importValuesFromText()
    Dim strFile As String, strTmp As String
    Dim ff As Integer
    On Error GoTo Fehler
    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 Worksheets(Split(strTmp, ";")(0)).Range(Split(strTmp, ";")(1))
                .Formula = Split(strTmp, ";")(2)
            End With
        Loop
        Close #ff
    End If
Fehler:
    MsgBox "Fehler: " & Err.Description
End Sub
  1. Makros ausführen: Schließe den VBA-Editor und gehe zurück zu Excel. Du kannst nun die Makros exportValuesToText und importValuesFromText ausführen, um die Werte aus dem Tabellenblatt "Einstellungen" in eine TXT-Datei zu exportieren und umgekehrt.

Häufige Fehler und Lösungen

  • Fehler beim Speichern: Wenn du beim Exportieren die Fehlermeldung erhältst, dass die Datei nicht gespeichert werden kann, stelle sicher, dass der Pfad korrekt ist und du Schreibrechte für das Verzeichnis hast.

  • NULL-Werte beim Import: Wenn beim Importieren nur NULL-Werte erscheinen, überprüfe, ob die Struktur der TXT-Datei der erwarteten Struktur im Code entspricht.


Alternative Methoden

Anstelle von TXT-Dateien kannst du auch andere Formate nutzen, wie CSV (Comma Separated Values). Hierbei ist der VBA-Code ähnlich, jedoch änderst du die Trennzeichen und die Dateiendung in ".csv".


Praktische Beispiele

  1. Export von spezifischen Zellen: Um nur bestimmte Zellen zu exportieren, passe den strRange in der exportValuesToText-Sub an:

    strRange = "A1:F30"
  2. Import von mehreren Blättern: Wenn du Daten aus mehreren Blättern importieren möchtest, erweitere die importValuesFromText-Sub, um auch diese Blätter zu berücksichtigen.


Tipps für Profis

  • Automatisierung: Du kannst die Makros mit Buttons in deiner Excel-Anwendung verknüpfen, um den Export und Import mit einem Klick auszuführen.

  • Fehlerprotokoll: Implementiere ein Fehlerprotokoll, um Probleme beim Datenimport/-export besser nachverfolgen zu können.


FAQ: Häufige Fragen

1. Wie kann ich Daten aus einer TXT-Datei in Excel importieren? Du kannst den bereitgestellten VBA-Code in ein Modul einfügen und das Makro importValuesFromText ausführen, um die Daten in dein Excel-Blatt zu importieren.

2. Kann ich die Excel-Einstellungen exportieren? Ja, du kannst die exportValuesToText-Sub anpassen, um die gewünschten Einstellungen oder Werte aus deinem Arbeitsblatt zu exportieren.

3. Welche Excel-Version wird benötigt? Der bereitgestellte VBA-Code funktioniert in Excel 2010 und neueren Versionen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige