Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1732to1736
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

Bestimmten Bereich einer Tabelle als Unicode-Text (*.txt) speichern

Bestimmten Bereich einer Tabelle als Unicode-Text (*.txt) speichern
05.01.2020 17:40:54
Ingo
Ich habe hier eine Tabelle:
Userbild
Ich kann diese Tabelle ja nun über den Speichern-Dialog von Excel als Unicode-Text (*.txt) speichern.
Ich möchte aber gerne nur den Bereich von Spalte C-E speichern. Und davon auch nur die Zeilen, die in Spalte B ein "x" haben. Das möchte ich gerne mit einem VBA-Makro automatisieren.
Bisher hatte ich mir folgende Schritt überlegt:
* Tabelle nach Spalte B sortieren
* Die Zeilen mit einem "x" in Spalte B auswählen (nur die Spalten C-E).
* Diesen ausgewählten Bereich als Unicode-Text (*.txt) speichern
Hier ein Bild dazu. Nur der rosafarben hinterlegte Teil soll also als Unicode-Text (*.txt) gespeichert werden.
Userbild
Da ich selbst leider wirklich nur ganz wenig von VBA verstehe, bitte ich Euch um Hilfe. Ich hatte überlegt, das irgendwie schrittweise zu machen, wie oben beschrieben. Ich dachte, dann könnte ich mir das mit dem Makrorecorder sozusagen zusammenbauen.
Ist das sinnvoll? Oder gibt es da eine einfachere Möglichkeit?

22
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Nachtrag: Beispiel-Tabelle hochgeladen
05.01.2020 18:33:47
Hajo_Zi
Du bist im falschen Forum. Bildbearbeitung ist ein anderes.
Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.
Schau mal hier
Eine hochgeladene Arbeitsmappe erhöht die Wahrscheinlichkeit, dass Du eine Lösung für Dein Problem erhältst.
Erstelle folglich bitte eine Demomappe, aus der deine Aufgabenstellung klar erkennbar ist und lade diese hoch.
Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
http://www.ms-office-forum.de/forum/showthread.php?t=322895
änderrn.
Falls Du den Download des Forums nicht benutzen möchtest beachte bitte: von unsicheren Servern file-upload lade ich keine Datei herunter (lt. Einschätzung meines Virenprogramms)
Das ist nur meine Meinung zu dem Thema.

Anzeige
du aber auch...
05.01.2020 18:38:55
Werner
Hallo Hajo,
...Beiträge anzuschauen würde weiterhelfen.
Gruß Werner
AW: Nachtrag: Beispiel-Tabelle hochgeladen
05.01.2020 19:31:12
Ingo
Hall Hajo
Ich hatte doch die Excel-Datei hochgeladen. Das habe ich doch ein paar Minuten nach meinem Beitrag sogleich auch gepostet. Hattest Du das evtl. übersehen?
Gruß
Ingo
AW: Nachtrag: Beispiel-Tabelle hochgeladen
05.01.2020 19:50:13
Hajo_Zi
Hallo Imgo,
übersehen.
Benutze Autofilter und Kopiere den sichtbarenb bereich, Start, Bearbeiten, Suchen..., Gehe zu, Inhalte, sichtbare Zellen.
Str+c und in neue Datei kopieren Strg+V
Excel hat auch einen Makrorecorder.
Gruß Hajo
Anzeige
AW: Nachtrag: Beispiel-Tabelle hochgeladen
05.01.2020 21:53:18
Ingo
Ich glaube, dass ich Dich verstanden habe. Problem ist aber, dass jeden Tag immer wieder Änderungen in meiner Tabelle stattfinden. Es werden immer mal wieder in der Spalte B einige "x" gelöscht und an anderen Stellen der Spalte B "x" hinzugefügt. Auch kommen immer mal wieder neue Zeilen hinzu. Die Tabelle wächst also langsam.
Wenn ich also nun den in meinem Beispiel rosa markierten Bereich von Hand markiere und das mit dem Makrorecorder aufzeichne, funktioniert es zwar. Aber wenn morgen die Tabelle sich dann ändert ("x" an anderer Stelle und zusätzliche neue Zeilen … dann macht das Makro ja nicht mehr das richtige.
Wie kann ich das denn lösen?
Anzeige
AW: Nachtrag: Beispiel-Tabelle hochgeladen
06.01.2020 13:13:58
Ingo
Hallo Hajo
Ich habe mir das angeschaut. Aber leider übersteigt das meine VBA Kompetenz bei weitem. Ich habe leider wirklich keine gute Ahnung von VBA. Und da ich auch immer nur wieder ganz selten mal Bedarf an Lösungen in VBA habe, stellt sich bei mir leider auch kein wirklicher Learning-by-Doing Effekt ein.
Ich habe vielleicht einmal im Jahr oder noch seltener etwas, was ich in VBA lösen möchte.
Darum wollte ich das ja auch mit dem Makrorecorder versuchen. Mein Ansatz war, die Sache da in mehrere Schritte einzuteilen.
Schritt 1
Ich sortiere die Tabelle nach Spalte B, so dass alle Zeilen mit einem "x" in Spalte B oben stehen. Das habe ich auch mit dem Makrorecorder hinbekommen. Das war ja auch einfach :)
Schritt 2
Hier wollte ich nun den Teil (rosa auf dem Foto) markieren. Da es aber immer wieder mal mehr oder weniger Zeilen sind, weil sich meine Tabelle da immer wieder ändert, kann ich das ja nicht mit dem Makrorecorder machen. Und selber in VBA programmieren kann ich das leider auf keinen Fall.
Schritt 3
Hier wollte ich dann den markierten Teil als Unicode-Text (*.txt) abspeichern. Vermutlich kann man garnicht nur einen markierten Teil einer Tabelle abspeichern, oder? Ansonsten hatte ich mir überlegt, den Teil in ein neues Arbeitsblatt zu kopieren und dann dieses zu speichern. Das müsste ich auch mit dem Makrorecorder hinbekommen.
Wie man sieht, scheitere ich hauptsächlich an der Sache mit der Markierung in Schritt 2
Anzeige
AW: Nachtrag: Beispiel-Tabelle hochgeladen
06.01.2020 13:25:24
Hajo_Zi
gut sortieren ist bei meiner Lösung VBA freien Lösung nicht notwendig.
Deine Lösung möcht ich darum nicht weiter vergfolgen.
Viel Erfolg noch.
Gruß Hajo
AW: Nachtrag: Beispiel-Tabelle hochgeladen
06.01.2020 13:29:34
Ingo
Hallo Hajo
Ja hatte ich auch so verstanden. Aber ansonsten war mir das leider zu hoch.
AW: Nachtrag: Beispiel-Tabelle hochgeladen
06.01.2020 13:28:26
Ingo
Hallo
Ich merke gerade, dass mein Ansatz mit den 3 Schritten wohl auch nicht gehen wird.
Ich hatte je geschrieben, dass ich das neue Arbeitsblatt dann speichern will. Dabei habe ich aber wohl vergessen, dass dann ja immer die ganze Excel Datei neu gespeichert wird.
Ich muss mir da wohl doch was ganz anderes überlegen.
Anzeige
AW: Nachtrag: Beispiel-Tabelle hochgeladen
06.01.2020 14:29:33
Werner
Hallo Simon,
teste mal:
Sub Speichern_Unicode()
Application.ScreenUpdating = False
With Worksheets("Tabelle1")
'Prüfen ob x in Spalte B vorhanden
If WorksheetFunction.CountIf(.Columns("B:B"), "x") > 0 Then
'Spalte B nach x filtern
.Range("$A$1:$E$11").AutoFilter Field:=2, Criteria1:="x"
'Filterdaten nur Spalte C bis E kopieren
'nach Tabelle2 A1
With .AutoFilter.Range
.Columns("C:E").Copy Worksheets("Tabelle2").Range("A1")
End With
'Autofilter wieder raus
.Range("A1").AutoFilter
'Tabelle 2 kopieren
Worksheets("Tabelle2").Copy
'dann als Textdatei speichern (Pfad und Dateiname anpassen)
ActiveWorkbook.SaveAs Filename:="C:\Ingo\Textdateien\Ein_Versuch.txt" _
, FileFormat:=xlUnicodeText, CreateBackup:=False
'erzeugte Textdatei ohne Speichern schließen
ActiveWorkbook.Close False
'Daten in Tabelle2 löschen
Worksheets("Tabelle2").Columns("A:C").Delete
Else
MsgBox "Fehler: Es sind keine Datensätze in Spalte B markiert."
End If
End With
End Sub
Du mußt dafür sorgen, dass eine Tabelle mit dem Namen "Tabelle2" vorhanden ist, dorthin werden die Daten kopiert und diese Blatt wird dann als Textdatei gespeichert.
Zudem mußt du im Code den Speicherpfad und den Dateinamen anpassen.
Die entsprechenden Ordner / Unterordner müssen vorhanden sein.
Gruß Werner
Anzeige
AW: Nachtrag: Beispiel-Tabelle hochgeladen
06.01.2020 15:10:34
Ingo
Hallo Werner
Ich werde irre. Ich habe das voller erregter Vorfreude gleich mit meiner Beispiel-Tabelle ausprobiert. Und was soll ich sagen. Es läuft.
Großartig!!!
Ich werde das jetzt auch mal auf mein richtiges Projekt anpassen. Und ich berichte dann natürlich auch, ob da auch alles klappt.
Ich danke Dir schon mal ganz doll von ganzem Herzen!!!
Gruß
Ingo
Nachtrag-hab was vergessen
06.01.2020 15:44:21
Werner
Hallo,
...wird wohl nicht korrekt laufen, weil ich was entscheidendes vergessen habe.
Bitte diese Codezeile
.Range("$A$1:$E$11").AutoFilter Field:=2, Criteria1:="x"

durch die hier ersetzen
.Range("$A$1:$E$" & .Cells(.Rows.Count, "B").End(xlUp).Row).AutoFilter Field:=2, Criteria1:="x"

Gruß Werner
Anzeige
AW: Nachtrag-hab was vergessen
06.01.2020 17:40:40
Ingo
Ich bekomme es nicht hin, das auf meine echte Tabelle anzuwenden. Leider kann ich diese Tabelle hier nicht hochladen, weil sie Daten enthält, die ich nicht öffentlich machen kann.
Ich habe gewissenhaft alle Spaltennamen, Pfade usw. angepasst, aber die Text-Datei enthät dann immer nur die Spaltennamen und keine weiteren Inhalte.
In meiner echten Tabelle ist die Spalte mit den "x" die Spalte AB.
Was besagt denn die "2" in dieser Codezeile?
.Range("$A$1:$E$" & .Cells(.Rows.Count, "B").End(xlUp).Row).AutoFilter Field:=2, Criteria1:="x"
AW: Nachtrag-hab was vergessen
06.01.2020 17:51:40
GerdL
Moin Ingo,
wenn das Filterkriterium in Spalte AB = 30 steht, dein Autofilterbereich aber nur von
Spalte A bis E geht, klappt das nicht.
Die 2 steht für die Spaltennummer im Autofilterbereich, in der das Filterkriterium ist.
Gruß Gerd
Anzeige
AW: Nachtrag-hab was vergessen
06.01.2020 18:00:37
Werner
Hallo Ingo,
wozu bitte lädst du hier eine Beisoielmappe hoch, die mit dem Aufbau deiner Originalmappe überhaupt nichts zu tun hat.
Und dann erwartest du ernsthaft, dass ein Makro, das nach falschen Voraussetzungen geschrieben wurde, in der Originalmappe funktioniert?
Da der Aufbau nicht üereinstimmt weiß ich nicht
-wo beginnen deine Daten Zeile / Spalte
-bis wohin -Spalte- sind Daten vorhanden
-ist die letzte Spalte fix oder kann sich da auch was ändern
-welche Spalten müssen kopiert werden
Ich habe keine Lust auf Rätselraten oder Salamitaktik.
Passe deine Beispielmappe im Aufbau an dein Original an und lade sie hoch, dann sehen wir weiter, vorher nicht.
Gruß Werner
Anzeige
AW: Nachtrag-hab was vergessen
06.01.2020 20:05:12
Ingo
Hallo Werner
Ja Du hast Recht. Das war blöd von mir. Ich hatte gedacht, dass es mit so einer einfachen Datei leichter ist mir zu helfen. Ich hatte nicht bedacht, dass das mit den bereichen dann nicht klappt und so. Tut mir wirklich leid.
Ich werde nochmal eine Beispieldatei machen, die meiner eigentlichen Datei genau entspricht und diese dann hier hochladen.
Gruß
Ingo
Ich glaube, ich bekomme es doch angepasst
06.01.2020 20:58:01
Ingo
Hallo
Ich glaube, ich bekomme es doch noch angepasst. Ich werde das jetzt erstmal noch weiter versuchen. Ich möchte Dir nicht zu sehr auf den Wecker gehen.
Gruß
Ingo
AW: Ich glaube, ich bekomme es doch angepasst
08.01.2020 12:25:06
Werner
Hallo Ingo,
und, hast du es jetzt selbst hinbekommen?
Du gehst mir nicht auf den Wecker.
Viel mehr gehen mir solche Beiträge wie dein letzter auf den Wecker, bei dem dann nichts mehr kommt.
Von daher wäre es schön gewesen, wenn du dich nochmal gemeldet hättest.
Gruß Werner
AW: Ich glaube, ich bekomme es doch angepasst
11.01.2020 13:46:47
Ingo
Hallo Werner
Ich habe nun noch etwas herum probiert. Aber hinbekommen habe ich es leider nicht wirklich. Mir sind doch immer wieder andere Fehler in meiner Überlegung dazwischen gekommen.
Darum habe ich mein ganzes Vorhaben von Anfang an nochmal neu überdacht und werde es nun nochmal ganz anders versuchen.
Entschuldige, dass ich versäumt habe, hier Bescheid zu geben. Ich werde das in Zukunft besser machen. Weil Ihr ja immer so viel Geduld mit mir habt und mir immer so toll helft. Danke dafür auch nochmal.
Gruß
Ingo
AW: Ich glaube, ich bekomme es doch angepasst
11.01.2020 16:09:56
Werner
Hallo,
anpasst wäre das gleich, nur sollte ich den Aufbau deiner Originaldatei wissen.
Aber wenn du nicht willst soll mir das auch recht sein, deine Entscheidung.
Gruß Werner

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige