MS-Office-Forum
Google
   

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads Der Renner, 11 Entwicklertools für Access, Tipps & Trick und offene Datenbanken zum einzigartigen Preis.
Themen-Optionen Ansicht
Alt 03.01.2018, 13:10   #1
BlaWid
Neuer Benutzer
Neuer Benutzer
Standard VBA - Reiter einer Mappe in einzelne txt Dateien umwandeln

Hallo Leute,

ich habe hier ein kleines Makro Problem. Ich möchte gerne das der Makro die Reiter einer Tabelle jeweils als txt Dateien abspeichert, allerdings erst ab dem zweiten Reiter damit anfängt. Zudem müsste ich den Speicherort vorher manuell festlegen, da sich dieser je nach Benutzer ändert.

Jetzt habe ich in der Beipieldatei schon mal was vorbereitet :-) Das hat beim ersten Mal auch super funktioniert. Aber irgendwie klappt es jetzt nicht mehr

Gruß und schon mal vielen Dank :-)
Angehängte Dateien
Dateityp: xlsm Test.xlsm (18,7 KB, 4x aufgerufen)
BlaWid ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.01.2018, 13:33   #2
Storax
MOF Profi
MOF Profi
Standard

Was ist für Dich der zweite Reiter?
Was soll bei ausgeblendeten Blättern passieren?
Was soll passieren, wenn das erste Blatt ausgeblendet ist.
Was soll passieren, wenn es die Text-Dateien schon gibt?

Angepasster Code, der die obigen Fragen "skrupellos" beantwortet
Code:

Sub folgende_Reiter_als_TXT()



Dim wks As Worksheet
    'Dim SheetName As String
Dim path As String

    With Application.FileDialog(msoFileDialogFolderPicker)
        .InitialFileName = "C:"
        .Title = "Ordnerauswahl"
        .ButtonName = "Auswahl..."
        .InitialView = msoFileDialogViewList
        If .Show = -1 Then
            path = .SelectedItems(1)
            If Right(path, 1) <> "" Then path = path & ""
        Else
            path = ""
        End If
    End With
    
    If path = "" Then
        MsgBox ("Kein Ordner gewählt!")
        Exit Sub
    Else
        MsgBox path
    End If

    ChDir path

    Application.DisplayAlerts = False
    For Each wks In Worksheets
        '    On Error GoTo weiter
        'ActiveSheet.Next.Select

        'SheetName = ActiveSheet.Name
        If wks.Index = 1 Then
        Else
            ActiveWorkbook.SaveAs Filename:= _
                                  path & wks.Name & ".txt", FileFormat:= _
                                  xlText, CreateBackup:=False, Local:=True
        End If
    Next wks
    Application.DisplayAlerts = True
    'weiter:


End Sub

__________________

This isn't a code writing service, you need to do some research and have a go at writing some of your own code.
Be careful, content may contain traces of irony.
Storax ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.01.2018, 13:43   #3
BlaWid
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hier die Antowrten:

Was ist für Dich der zweite Reiter?
Der erste Reiter "Start" dient nur zum ausführen des Makro, müsste also nicht mit als txt datei gespeichert werden. Dort sind nur einige Anmerkungen.

Was soll bei ausgeblendeten Blättern passieren?
Die sollte es so nicht geben, falls doch können diese ignoriert werden.

Was soll passieren, wenn das erste Blatt ausgeblendet ist.
auf dem ersten Blatt ist der "Startknopf" und enthält wie gesagt weitere Anmerkungen zum Vorgehen, deswegen wird dieser nicht ausgeblendet

Was soll passieren, wenn es die Text-Dateien schon gibt?

Fehlermeldung und die Möglichkeit zum Abbruch



Ich hab den Makro auch gleich mal probiert, allerdings bekomme ich nach wie vor eine Fehlermeldung
(Laufzeitfehler 1004 - Die Methode 'Save As' für das Objekt '_Workbook' ist fehlgeschlagen)

Dies wird als Fehlerquelle angezeigt:

ActiveWorkbook.SaveAs Filename:= _
path & ActiveSheet.Name & ".txt", FileFormat:= _
xlText, CreateBackup:=False, Local:=True
BlaWid ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.01.2018, 13:53   #4
Storax
MOF Profi
MOF Profi
Standard

Code:

ActiveWorkbook.SaveAs Filename:= _
path & ActiveSheet.Name & ".txt", FileFormat:= _
xlText, CreateBackup:=False, Local:=True
Das ist nicht mein Code!
Und bitte verwende Code-Tags, das ist ja grausam!

Abgesehen davon hast Du die Fragen nicht beantwortet.
Wenn Start der erste Reiter ist, ist er es dann nicht mehr, wenn ich ihn verschiebe.
Wenn ausgeblendete Blätter ignoriert werden sollen, dann musst Du das im Code berücksichtigen.
Wenn die Text-Dateien schon existieren und es eine Möglichkeit zum Abbruch geben soll, wie soll das aussehen? Soll mit dem nächsten Blatt weitergemacht werden oder soll ganz beendet werden.
Und auch das müsstest Du entspr. programmieren.

__________________

This isn't a code writing service, you need to do some research and have a go at writing some of your own code.
Be careful, content may contain traces of irony.

Geändert von Storax (03.01.2018 um 13:58 Uhr).
Storax ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.01.2018, 13:54   #5
RPP63neu
MOF Meister
MOF Meister
Standard

Moin zusammen!
Wir haben hier das unersättliche Backslash-Monster.
Will man es dennoch im Code überlisten, hilft eine Verdoppelung.
Einfach-Backslash ergibt also nüscht.
Doppel-Backslash ergibt \ also einen einzelnen.
Kann man natürlich auch mit &# 92; (ohne Leerzeichen) erzeugen: \

Klugscheißmodus aus!

Gruß Ralf

__________________

Meine Logik war nicht fehlerhaft, nur meine Interpretation!
Tuvok
RPP63neu ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.01.2018, 14:01   #6
BlaWid
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Sorry, hab den falschen Code kopiert. Ich habe dennoch deinen Code ausprobiert und bekomme dennoch die Fehlermeldung (Siehe Bild im Anhang)

Das mit dem Backslash verstehe ich leider nicht

Code:

Sub folgende_Reiter_als_TXT()
    
    Dim wks As Worksheet
    Dim SheetName As String
    Dim path As String
    
    With Application.FileDialog(msoFileDialogFolderPicker)
        .InitialFileName = "C:"
        .Title = "Ordnerauswahl"
        .ButtonName = "Auswahl..."
        .InitialView = msoFileDialogViewList
        If .Show = -1 Then
            path = .SelectedItems(1)
            If Right(path, 1) <> "" Then path = path & ""
          Else
            path = ""
        End If
    End With
    If path = "" Then MsgBox ("Kein Ordner gewählt!") Else MsgBox path
    
    
    For Each wks In Worksheets
'    On Error GoTo weiter
        ActiveSheet.Next.Select
       
        SheetName = ActiveSheet.Name
    
        ChDir path
        ActiveWorkbook.SaveAs Filename:= _
             path & ActiveSheet.Name & ".txt", FileFormat:= _
             xlText, CreateBackup:=False, Local:=True
        
    Next wks
    
'weiter:

    
End Sub
Angehängte Grafiken
Dateityp: png Fehlermeldung.PNG (10,0 KB, 4x aufgerufen)
BlaWid ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.01.2018, 14:04   #7
Storax
MOF Profi
MOF Profi
Standard

Nicht mal Copy & Paste beherrscht Du
Noch immer nicht mein Code! Im Bild im Anhang steht nicht der von mir angepasste Code!!!

__________________

This isn't a code writing service, you need to do some research and have a go at writing some of your own code.
Be careful, content may contain traces of irony.
Storax ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.01.2018, 14:06   #8
RPP63neu
MOF Meister
MOF Meister
Standard

Moin Storax!
Hast Du mein Gesülze #5 gelesen?

__________________

Meine Logik war nicht fehlerhaft, nur meine Interpretation!
Tuvok
RPP63neu ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.01.2018, 14:09   #9
BlaWid
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Und zu den Fragen: Es werden keine Blätter ausgeblendet. Das ist jetzt einfach eine Annahme die ich nun treffe, auch wenn ich weiß, dass es passieren könnte. Deswegen sollte diese Frage erstmal nach hinten gestellt werden.

Falls es die Datei bereits gibt, kommt bereits eine Fehlermeldung und der Makro kann abgebrochen werden. Ist zwar nicht die eleganteste Lösung, doch das interessiert mich tatsächlich auch nicht besonders.
BlaWid ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.01.2018, 14:10   #10
Storax
MOF Profi
MOF Profi
Standard

Ja, habe ich, er hat trotzdem nicht den von mir angepassten Code verwendet.
Und denkst Du ich habe Lust, das anzupassen, aber muss wohl
Code:

     With Application.FileDialog(msoFileDialogFolderPicker)
        .InitialFileName = "C:\"
        .Title = "Ordnerauswahl"
        .ButtonName = "Auswahl..."
        .InitialView = msoFileDialogViewList
        If .Show = -1 Then
            path = .SelectedItems(1)
            If Right(path, 1) <> "\" Then path = path & "\"
        Else
            path = ""
        End If
    End With
Im Screenshot steht immer noch das ChDir in der Schleife und ein ActiveSheet
Und die von mir auskommentierten Zeilen sind da wieder aktiv.

__________________

This isn't a code writing service, you need to do some research and have a go at writing some of your own code.
Be careful, content may contain traces of irony.

Geändert von Storax (03.01.2018 um 14:13 Uhr).
Storax ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.01.2018, 14:13   #11
BlaWid
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Himmel noch mal....normal bin ich nicht so beschränkt. Ich schwöre bei Gott, ich benutze deinen Code. Hier noch mal ein Versuch

Code:

    Application.DisplayAlerts = False
    For Each wks In Worksheets
        '    On Error GoTo weiter
        'ActiveSheet.Next.Select

        'SheetName = ActiveSheet.Name
        If wks.Index = 1 Then
        Else
            ActiveWorkbook.SaveAs Filename:= _
                                  path & wks.Name & ".txt", FileFormat:= _
                                  xlText, CreateBackup:=False, Local:=True
        End If
    Next wks
    Application.DisplayAlerts = True
    'weiter:
Angehängte Grafiken
Dateityp: png Fehlermeldung.PNG (13,3 KB, 4x aufgerufen)
BlaWid ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.01.2018, 14:17   #12
Storax
MOF Profi
MOF Profi
Standard

Ja, Ralf hat es doch gesagt Backslash Monster
Du hast im Screenshot den entscheidenen Teil ausgelassen
Code:

If Right(path, 1) <> "\" Then path = path & "\"
ist wahrscheinlich
Code:

If Right(path, 1) <> "" Then path = path & ""

__________________

This isn't a code writing service, you need to do some research and have a go at writing some of your own code.
Be careful, content may contain traces of irony.
Storax ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.01.2018, 14:18   #13
Storax
MOF Profi
MOF Profi
Standard

Und das gruselige ist, wenn man seinen Beitrag zwar richitg eingestellt hat, aber dann nochmal ändert, schlägt die Forensoftware erbarmungslos zu

__________________

This isn't a code writing service, you need to do some research and have a go at writing some of your own code.
Be careful, content may contain traces of irony.
Storax ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.01.2018, 14:19   #14
BlaWid
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Code:

Sub folgende_Reiter_als_TXT()



Dim wks As Worksheet
    'Dim SheetName As String
Dim path As String

    With Application.FileDialog(msoFileDialogFolderPicker)
        .InitialFileName = "C:"
        .Title = "Ordnerauswahl"
        .ButtonName = "Auswahl..."
        .InitialView = msoFileDialogViewList
        If .Show = -1 Then
            path = .SelectedItems(1)
            If Right(path, 1) <> "" Then path = path & ""
        Else
            path = ""
        End If
    End With
    
    If path = "" Then
        MsgBox ("Kein Ordner gewählt!")
        Exit Sub
    Else
        MsgBox path
    End If

    ChDir path

    Application.DisplayAlerts = False
    For Each wks In Worksheets
        '    On Error GoTo weiter
        'ActiveSheet.Next.Select

        'SheetName = ActiveSheet.Name
        If wks.Index = 1 Then
        Else
            ActiveWorkbook.SaveAs Filename:= _
                                  path & wks.Name & ".txt", FileFormat:= _
                                  xlText, CreateBackup:=False, Local:=True
        End If
    Next wks
    Application.DisplayAlerts = True
    'weiter:


End Sub
Es hat sich ausgebackslasht...aber es funktioniert halt trotzdem nicht
Angehängte Grafiken
Dateityp: png Fehlermeldung_2.PNG (38,4 KB, 4x aufgerufen)
BlaWid ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 03.01.2018, 14:21   #15
RPP63neu
MOF Meister
MOF Meister
Standard

Sorry!
Aber wenn Du immer noch nicht verstehst, was wir beiden Dir sagen wollen, dann [selbst zensiert]

__________________

Meine Logik war nicht fehlerhaft, nur meine Interpretation!
Tuvok
RPP63neu ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:31 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2010 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günther Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.
Beachten Sie bitte auch unsere Nutzungsbedingungen.