Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1152to1156
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
Inhaltsverzeichnis

Autofilter

Autofilter
Horst
Hallo Excel-Community,
ich würde gerne bei folgendem VBA-Code einbauen, dass die Ergebnisse des Autofilter-Prozesses (bei der Zeile ActiveSheet.Paste) als .txt gespeichert werden. Wie gebe ich das an?
Sub test()
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="1"
Range("A1:AU6810").Select
Selection.Copy
Sheets("treffer").Select
Sheets.Add
ActiveSheet.Paste
Sheets("treffer").Select
Application.CutCopyMode = False
Selection.AutoFilter
End Sub

Besten Dank im voraus!

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Autofilter
25.04.2010 16:33:03
Peter
Hallo Horst
wie folgt...
Sub test()
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="1"
Range("A1:AU6810").Select
Selection.Copy
Sheets("treffer").Select
Sheets.Add
ActiveSheet.PasteSpecial Paste: xlPasteValues  '***
Sheets("treffer").Select
Application.CutCopyMode = False
Selection.AutoFilter
End Sub
Gruß
Peter
AW: Autofilter
25.04.2010 21:10:00
Horst
es soll eine .txt-Datei gespeichert werden!
AW: Autofilter
26.04.2010 01:08:22
fcs
Hallo Horst,
kopiere die als Text zu speichernden Daten in einem Tabellenblatt einer neuen Arbeitsmappe. Diese kann dann problemlos als Txtdatei gespeichert werden.
Schaut dann etwa wie folgt aus.
Statt den Dateinamen im Dialog auszuwählen, kannst du ihn natürlich auch fest vorgeben.
z.B.:vFilename = "C:\Lokale Daten\Test\Treffer.txt"
Gruß
Franz
Sub test()
Dim wbText As Workbook, wbAktiv As Workbook, vFilename
Set wbAktiv = ActiveWorkbook
Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="1"
Range("A1:AU6810").Select
Selection.Copy
Sheets("treffer").Select
Set wbText = Workbooks.Add(Template:=xlWBATWorksheet)
ActiveSheet.Paste
Application.CutCopyMode = False
vFilename = Application.GetSaveAsFilename(InitialFileName:="Treffer", _
Filefilter:="Text (*.txt),*.txt", _
Title:="Bitte Dateiname für Treffer-Txt-Datei eingeben/wählen")
If vFilename  False Then
wbText.SaveAs Filename:=vFilename, FileFormat:=42 'xlUnicodetext
End If
wbText.Close savechanges:=False
wbAktiv.Activate
Sheets("treffer").Select
Selection.AutoFilter
End Sub

Anzeige
AW: Autofilter
26.04.2010 14:12:34
Horst
Hallo Franz,
ich habe eigentlich vorgehabt, die originäre Arbeitsmappe als .txt zu speichern und danach das .xls ohne zu speichern wieder zu schließen. Problem dabei ist, dass immer nachgefragt wird, ob eine bestehende .txt ersetzt werden soll... ich habe das folgendermaßen gelöst: Vielleicht kannst du den Code noch optimieren:
Sub test()
Range("A1").Select
'Selection.AutoFilter
Selection.AutoFilter Field:=1, Criteria1:="1"
Range("A1:IV65536").Select
Selection.Copy
Sheets("test").Select
Sheets.Add
ActiveSheet.Paste
Application.CutCopyMode = False
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:= _
"C:\Dokumente und Einstellungen\User\Desktop\testii.txt", FileFormat:=xlText, _
CreateBackup:=False, Local:=True
Application.DisplayAlerts = True
ThisWorkbook.Close savechanges:=False
Application.Quit
End Sub

Anzeige
AW: Autofilter
26.04.2010 15:03:42
fcs
Hallo Horst,
ggf. solltest du die Datei vor dem Filtervorgang speichern.
Statt aller Zellen des Tabellenblatts zu kopieren, solltest du nur den benutzten datenbereich kopieren - geht etwas schneller.
Wenn du Excel nach dem Erstellen der Textdatei wirklich beenden willst, dann muss du das Ende anders gestalten.
Ich halte es aber für sinnvoller eine separate Arbeitsmappe für die Textdatei anzulegen. Ist für mich einfach der logischerer Ablauf. Wenn es denn sein muss kann man die Exceldatei ja trotzdem auch ohne zu speichern beenden.
Gruß
Franz
Sub btest()
'Aktive Arbeitsmappe ggf. speichern?
If ActiveWorkbook.Saved = False Then ActiveWorkbook.Save
Range("A1").Select
Selection.AutoFilter Field:=1, Criteria1:="1"
ActiveSheet.UsedRange.Copy 'genutzten Datenbereich kopieren
Sheets("test").Select
Sheets.Add
ActiveSheet.Paste
Application.CutCopyMode = False
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:= _
"C:\Dokumente und Einstellungen\User\Desktop\testii.txt", FileFormat:=xlText, _
CreateBackup:=False, Local:=True
Application.DisplayAlerts = True
ActiveWorkbook.Saved = True 'gespeichert-Status auf True setzen
Application.Quit 'Excel beenden
End Sub

Anzeige
AW: Autofilter
26.04.2010 23:15:50
Horst
Hallo Franz,
danke. wie kann ich in obigem Code noch einbauen, dass nur ein bestimmter Bereich, zB. Spalte B:IV als .txt-Datei gespeichert werden soll?
AW: Autofilter
27.04.2010 10:44:06
fcs
Hallo Horst,
dann muss du vor dem Speichern die in der Textdatei nicht gewünschten Spalten löschen
Activesheet.Range("A:A").Delete
Beim Löschen bitte darauf achten, dass du die Spalten von rechts nach links löscht!
Gruß
Franz
AW: Autofilter
27.04.2010 11:38:42
Horst
Super, funktioniert.
Besten Dank, Franz!!

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige