Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
728to732
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
728to732
728to732
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Tabelle als Text speichern
10.02.2006 17:34:00
Ronny
Hallo ans Bord,
ich muss nochmal mein Problem einstellen, welches ich gestern nicht beantwortet (gelöst) bekommen habe.
Also ich habe in Excell eine Kundendatenbank, welche sehr umfangreich ist. Aus diesem Grund möchte ich die Daten der einzelenen Kunden mit einem Makro in eine Textdatei auslagern.
Meine Arbeitsmappe heißt "Kundenstamm".
Mein Makro sieht wie folgt aus:
Sheets("Kunde_Stammdaten").Select
ActiveWorkbook.SaveAs Filename:= _
"C:\Excell\Projekte\Rechnung_Speichertest\Kunde1.txt",
FileFormat _:=xlText, CreateBackup:=False
Nun meine zwei Probleme.
1. kann ich eine Tabelle (bzw. der Inhalt) in eine Textdatei speichern, ohne die Tabelle mit "Sheets("Kunde_Stammdaten").Select" vorher zu öffnen?
2. Mit dem Makro wird die Tabelle in eine Textdatei gespeichert, aber die Arbeitsmappe heißt dann nicht mehr Kundenstamm, sondern in dem Beispiel Kunde1. Kann man diese Umbenennen der Arbeitsmappe verhindern, oder muss man die alte Mappe dann wieder öffenen und die neue schließen. Das müsste dann zumindest in dem Makro mitgeschehen.
Ich Danke im Voraus
Ronny

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabelle als Text speichern
10.02.2006 17:45:35
Ramses
Hallo
Du kannst mal den Code verwenden, da hast du die freie Auswahl, auch eines definierten Bereiches.
Sub Export_Comma_CSV_from_VarRange2()
    '(C) Ramses
    'Exportiert EXCEL-Daten in ein CSV-Sheet in der Form
    ''1';'2';'3';'rainer@e-maile.de';;;;;;;
    'Der Exportbereich kann frei definiert werden
    Dim i As Long, n As Integer
    Dim expPath As String, expFile As String, expStr As String, expDelimiter As String
    Dim tmpRepStr As String
    Dim expRange As Range, myC As Range
    Dim startRow As Integer, StartCol As Integer, endCol As Integer, tmpRow As Integer
    expPath = "C:\" 'Exportpfad
    expFile = "CSV_Export.csv"
    expDelimiter = ";"
    On Error Resume Next
    Set expRange = Application.InputBox("Markieren Sie den Bereich der exportiert werden soll", "CSV Export", Type:=8)
    On Error GoTo 0
    If expRange Is Nothing Then
        MsgBox "Export abgebrochen"
        Exit Sub
    End If
    If Not Intersect(Range(ActiveCell.Address), Range(ActiveCell.Offset(0, 1).Address)) Is Nothing Then
        MsgBox "Auswahl des Exportbereiches muss von links oben nach rechts unten erfolgen" _
            & vbCrLf & "und muss mindestens 2 Spalten umfassen", vbCritical + vbOKOnly, "Abbruch"
        Exit Sub
    End If
    Close #1
    Open expPath & expFile For Output As #1
    For Each myC In expRange
        If startRow = 0 Then
            startRow = Range(Left(expRange.Address, InStr(1, expRange.Address, ":", 1) - 1)).Row
            StartCol = Range(Left(expRange.Address, InStr(1, expRange.Address, ":", 1) - 1)).Column
            endCol = StartCol + expRange.Columns.count - 1
            tmpRow = startRow
        End If
        If myC.Row > tmpRow Then
            Debug.Print expStr
            Print #1, Left(expStr, Len(expStr) - 1)
            tmpRepStr = myC.Value
            chkcomplete = False
            Do
                tmpRepStr = ReplaceChr(tmpRepStr)
            Loop Until chkcomplete = True
            expStr = tmpRepStr & expDelimiter
            tmpRow = myC.Row
        Else
            If Not IsNumeric(myC.Value) Then
                tmpRepStr = myC.Value
                chkcomplete = False
                Do
                    tmpRepStr = ReplaceChr(tmpRepStr)
                Loop Until chkcomplete = True
                expStr = expStr & tmpRepStr & expDelimiter
            End If
        End If
    Next
    Debug.Print expStr
    Print #1, Left(expStr, Len(expStr) - 1)
    Close #1
    Set expRange = Nothing
    MsgBox "Export abgeschlossen"
End Sub

Function ReplaceChr(strText As String) As String

Gruss Rainer
Anzeige
AW: Tabelle als Text speichern
10.02.2006 18:15:04
Ronny
Danke Rainer,
aber irgendwie stürzt das ab.
Aberich benötigte eigentlich vieelicht gar keine so umständliche programmierung,
hoffe ich :-).
Die Tabelle die exportiert werden soll steht ja fest, also auch der Bereich.
Es würde mir reichen, wenn nach dem speichern einfach die alte mappe wieder offen ist, oder selbts gar nicht erst umgenannte wird.
Ronny

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige