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

Abbruch nach erstellen TXT

Abbruch nach erstellen TXT
05.12.2019 14:51:00
Steve
Moin,
ich möchte ein Sheet vor dem löschen in eine TXT Datei speichern. Dannach sollten die Einträge aus den Liste gelöscht und die Ordner verschoben werden.
Ich hatte das alles schon fertig bis auf das erstellen der TXT Datei. Es hat auch funktioniert. Nun habe ich das Element eingefügt, aber es wird immer nach dem erstellen der TXT abgebrochen. Ich habe die Vermutung, das der Code die "Verbindung" zu dem aktuellen Sheet verliert. Kann sich das mal jemand anschauen und mir sagen wo mein Fehler ist? Ich finde ihn nämlich nicht.
Ich hänge meine Datei direkt mit an. Es geht um das Modul "ARCHIVIEREN"
Das wäre echt super.
https://www.herber.de/bbs/user/133620.zip
Liebe Grüße
Steve

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Abbruch nach erstellen TXT
05.12.2019 20:15:05
Zwenn
Hallo Steve,
in Deinem ZIP-Archiv ist keine txt-Datei enthalten, mit der man was ausprobieren könnte. Ich habe auch nicht den ganzen Code durchgesehen. Der Part, den Du eingefügt hast und nach dem es nicht mehr funktioniert ist dieser, wenn ich Deine Beschreibung richtig interpretiere:

'TXT erstellen'
ActiveSheet.Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:= _
strPfad & "\001 AKTIV\" & Blatt & "\JOURNAL.txt", FileFormat:= _
xlText, CreateBackup:=False
ActiveWorkbook.Close
Application.DisplayAlerts = True

Mit der Kursiv-Fett hervorgehobenen Zeile schließt Du die ganze Exceldatei. Damit beendest Du natürlich auch das Makro. Excel beschwert sich auch nicht, weil Du die Alerts ausgeschaltet hast.
Viele Grüße,
Zwenn
Anzeige
AW: Abbruch nach erstellen TXT
06.12.2019 07:43:26
Steve
Guten Morgen Zwenn,
zunächst danke für deine Hilfe.
Ich habe die TXT Datei absichtlich nicht angehängt, weil diese ja erst erstellt wird, wenn man auf "ARCHIVIEREN" drückt. Hätte ich diese im Ordner belassen, dann würde das Makro ja erst recht nicht funktionieren weil die Datei dann ja schon existiert.
Wenn du meine Datei öffnest und in Blatt 001 auf archivieren drückst soll folgendes passieren.
1. Von dem Blatt wird eine TXT erstellt und in dem Ordner 001 AKTIV/001 gespeichert
2. Der Ordner wird von 001 AKTIV verschoben zu 002 INAKTIV und umbenannt
3. Das Blatt wird gelöscht
4. Die Listeneinträge in Startseite und LISTE werden gelöscht
5. Ein neuer Listeneintrag wird erstellt
Wie schon erwähnt funktionieren alle Punkte wenn Punkt 1 nicht aktiviert ist. Ansonsten passiert folgendes.
Die TXT wird erstellt und an der richtigen Stelle gespeichert. Es öffnet sich aber ein neues Fenster (Es ist optisch ein Excelfenster - hat aber den Dateinamen JOURNAL.txt) dieses wird durch
ActiveWorkbook.Close geschlossen) Meine eigentliche Excel-Datei ist also immernoch geöffnet.
Hilft das als erläuterung? Kannst du mir da helfen?
PS.: Ich kann dir natürlich gerne die TXT noch anhängen aber ich glaube wenn du das Makro ausführst dann hast du es auch und das wäre wahrscheinlich zielführender.
Liebe Grüße
Steve
Anzeige
Lösung gefunden weiter zum nächsten Problem
06.12.2019 09:13:03
Steve
Guten Morgen Zwenn,
danke nochmal für deine Hilfe. Hab eine Lösung gefunden die funktioniert.
Habe den Code wie folgt ergänzt.
'''''''''''''''
'TXT erstellen'
'''''''''''''''
ActiveSheet.Copy
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:= _
strPfad & "\001 AKTIV\" & Blatt & "\JOURNAL.txt", FileFormat:= _
xlText, CreateBackup:=False
ActiveWorkbook.Close
Application.DisplayAlerts = True
Windows("JOURNAL.xlsm").Activate
Sheets(Blatt).Select

Hoffe das führt nicht im späteren Verlauf zu fehlern. Aber das werde ich ja sehen.
Nun muss ich mir beibringen wie man eine TXT wieder reaktiviert. Wenn du da irgendwo einen Codeschnipsel hast wäre ich sehr dankbar.
Liebe Grüße
Steve
Anzeige
AW: Lösung gefunden weiter zum nächsten Problem
06.12.2019 21:05:58
Zwenn
Hallo Steve,
mit der txt-Datei hast Du natürlich völlig recht. Die soll ja erst erstellt werden. Ich habe es jetzt ausprobiert und was Du beschreibst funktioniert mit Deiner Korrektur. Allerdings sehe ich nicht Dein beschriebenes nächstes Problem, sondern ganz grundsätzlich das Problem, dass Dein Tool nicht durchdacht wurde, bevor Du angefangen hast zu programmieren.
Das klingt hart, weiß ich. Aber falls es Dich tröstet, so ging es vermutlich allen, die sich mal auf das Abenteuer begeben haben selber etwas zu entwickeln. Das möchte ich natürlich so nicht einfach stehen lassen, sondern schreibe:
- Wie ich auf das 'nicht Durchdacht' komme
- Wo ich Probleme sehe auf die Du gerade zusteuerst
- Worüber Du vielleicht nachdenken solltest, bevor Du weitermachst
Wie ich auf das 'nicht Durchdacht' komme
  • Du baust ein relativ kompliziertes System auf, in dem Dateien generiert werden, die auch noch den Speicherort wechseln sollen, je nachdem ob sie gerade aktiv oder inaktiv sind

  • Die gespeicherte txt-Datei hat gar keine klare Struktur

  • Wofür die Tabelle LISTE ist erschließt sich mir nicht

  • Wo ich Probleme sehe auf die Du gerade zusteuerst
  • Die Verwaltung der Verzeichnisse und Dateien ist suboptimal, da mit viel Dynamik versehen

  • Wie willst Du die Daten aus den txt-Dateien wieder den richtigen Zellen in Excel zuordnen? So eine txt-Datei hat ja gar keine Struktur, an der Du etwas leicht wiedererkennen kannst

  • Worüber Du vielleicht nachdenken solltest, bevor Du weitermachst
  • Beschreibe das Ziel Deines Projektes in maximal 10 Worten

  • Das dient dazu das Ziel zu fokussieren. Es ist kein Platz für Füllworte. Ich leite das von der Aufgabe ab, in 10 Worten zu beschreiben, was das Unternehmen anbietet, das jemand gründen will.
    (Auch wenn ich schon lange angestellt bin lautet dieser Satz bei mir:
    "Wir recherchieren im Internet nach Produkt- und Markenpieraterie sowie Hehlerware.")
  • Formuliere die Schritte aus, um dieses Ziel zu erreichen.

  • Es sind alle Hilfsmittel erlaubt, die Dir ganz persönlich beim Denken helfen, um eine gute Lösung zu finden. Du kannst dazu z.B. auch manuell Tabellen erstellen, die Du mit Kopfzeilen oder sonstwas füllst. Am Ende sollten dabei die Tabellen bei rauskommen, die notwendig sind und (schwerer) die Funktionen, die Du in VBA abbilden musst. Letzteres einfach erstmal in Prosa, aber ohne "zu labern". Der Sinn ist, dass Du Dir bewusst Gedanken zur Lösung machen musst, wenn Du sie aufschreibst, bevor Du die erste Zeile programmiert hast. Wenn Du sattelfester in diesen Vorgängen bist, kannst Du (kleinere) Projekt auch im Kopf durchdenken und bei der Umsetzung Deine Erfahrung aus vergangenen Projekten einfließen lassen.
  • Ganz konkret: Ich würde die externe Speicherung in Verzeichnissen und Dateien bleiben lassen

  • Alles was Du in den txt-Dateien speicherst, kannst Du viel einfacher zeilenweise in einer Tabelle wie LISTE unterbringen. So eine Tabelle dient dann als Datensilo. So eine Tabelle kann auch unsichtbar sein. Man kann trotzdem daraus lesen und reinschreiben.
    Als Anregung mal die ersten Schritte zu meinem vorgeschlagenen Vorgehen
    Max. 10 Worte für die Zielsetzung: Dynamische Verwaltung von Versicherungsnehmern für meine Kollegen und mich.
    Notwendige Tabellen und Schritte
    Tabellen
    Formular pro Versicherungsnehmer (nur wenn Versicherungsnehmer aktiv, benötigte Datenfelder sind bekannt, Layout ist frei)
    Datensilo mit Daten zu allen Versicherungsnehmern (unsichtbar, zeilenweise pro Versicherungsnehmer, Kopfzeile sind die Formularfeldbezeichnungen)
    Steuertabelle (mit Button zum neu Anlegen eines Versicherungsnehmers, mit Buttons zum Formular inaktiv schalten, mit Buttons zum Löschen eines Versicherungsnehmers, zeilenweise Aufführung aller aktiv sichtbaren Versicherungsnehmer-Tabellen mit Verlinkung auf die jeweilige Formular-Tabelle sowie den Buttons Neu, Inaktivieren und Löschen)
    ...
    Als Schritte wären Dann Möglichkeiten auszuformulieren, die sinnvoll auf den Tabellen arbeiten.
    Z.B. Beim Klicken auf den Button "Neu" in der Steuertabelle soll ein UserForm aufgehen, in dem alle Daten für einen neuen Versicherungsnehmer eingegeben werden können
    Dies ist eine Stelle, an der Dir klar werden sollte, was fehlt, wenn man mit einer UF arbeitet. Es wäre dann nämlich sinnvoll den Anwendern die UF auch zur Verfügung zu stellen, wenn sie einen Datensatz verändern wollen. Also Ergänzt du die Beschreibung zur Steuertabelle mit mit Buttons zum Editieren eines Versicherungsnehmers
    Dazu ergänzend kannst Du Dir schonmal Gedanken dazu machen, woran ein Versicherungsnehmer eindeutig erkannt werden kann. Denn nur dann kann man seinen Datensatz wieder zum Editieren aufrufen oder aktiv schalten. (Ich nehme an, dass wäre die Auftragsnummer, die vermutlich eindeutig ist)
    Wo wir gerade bei aktiv schalten sind ... Zusätzlich gehört auf die Steuertabelle eine Lösung, um inaktive Versicherungsnehmer wieder sichtbar zu machen.
    Da gibt es sicher noch viel mehr zu bedenken. Aber das ist alles in Deinem Kopf. Vielleicht wird der Sinn des vorgeschlagenen Vorgehens klar und Dir hilft was ich geschrieben habe. Vielleicht verfluchst Du mich jetzt aber auch, was der Weg des geringsten Widerstandes wäre ;-)
    Viele Grüße,
    Zwenn
    Anzeige
    AW: Lösung gefunden weiter zum nächsten Problem
    06.12.2019 21:38:23
    Zwenn
    Hallo nochmal
    Gerade ist mir aufgefallen, dass die folgende Aussage falsch ist:
    Ich nehme an, dass wäre die Auftragsnummer, die vermutlich eindeutig ist
    Wenn ein Versicherungsnehmer einen zweiten, dritten, usw. Schadensfall meldet, gibt es zu ihm mehrere Auftragsnummern. Du brauchst in Deinem Formular also zusätzlich die eindeutige Kundennummer. In der Folge bedeutet das, Du schaltest ggf. nicht ein Formular oder Fall aktiv, sondern alle zu einem Kunden. Du kannst natürlich alle Fälle auch auf der gleichen Tabelle untereinander abbilden, musst Dir dann aber Gedanken dazu machen, wie Du die auf einer UF durchblätterst, falls Du eine UF einsetzen willst. (Nicht die UF aber das Durchblättern ist für Fortgeschrittene.)
    Alternativ kannst Du die Auswahl zu Inaktiven Versicherungsnehmern auf der Steuertabelle auch auf Inaktive Fälle ändern. Das hängt vom Ziel Deines Projektes ab. Interresant wäre auch, woher die Daten für die Fälle eigentlich kommen. Falls aus einem System, kann man da doch einiges mehr automatisieren, sofern die Daten verarbeitbar geliefert werden.
    Viele Grüße,
    Zwenn
    Anzeige
    AW: Lösung gefunden weiter zum nächsten Problem
    07.12.2019 19:39:21
    Steve
    Hallo Zwenn,
    Zunächst einmal möchte ich dir für deine Gedanken danken. Ich bin immer für eine gute Kritik offen und du hast mir geholfen mein eigenes Projekt zu hinterfragen. Ich möchte auf den einen oder anderen Punkt sehr gerne mal eingehen um dir zu zeigen, das ich dieses vielleicht doch nicht so schlecht durchdacht habe, wie es den Anschein macht.
    Ich fange mal mit den 10 Worten an.
    Karteikartensystem das Daten sammeln, archivieren, löschen und bereitstellen kann.
    Da du dich durch das Layout vielleicht was in die irre hast führen lassen erkläre ich dir mal meine Grudnsätzliche Intention.
    Ich arbeite in einer kleinen Spedition und habe mehrere Themengebiete in meiner Verantwortung. Gemeinsam haben diese, das ich für jede eine Exceltabelle, dazugehörige Daten in einem Ordnersystem und ein gewisses Verfallsdatum habe.
    Das Beispiel das du nun kennst kommt aus der Schadensbearbeitung. Ist der Schaden aber einmal bearbeitet, dann ist dieser zu 99% erledigt. ABER es fallen natürlich immer Daten an. Ich verknüpfe also die wesentlichen Informationen eines Schadens mit dem Ordner und stelle diese zudem in LISTE bereit. (Ist für die Schadensbearbeitung nicht so wichtig, aber bei dem Thema Personal schon wichtiger, die Liste nämlich für ein Serienbrief verwendet wird.)
    Zur TXT.
    Das die TXT keine klare Struktur hat liegt daran, das ich derzeit noch in der Lernphase bin. Ich habe zunächst versucht es überhaupt zu schaffen eine TXT zu erstellen. Ziel soll sein durch den reaktivieren-button diese TXT auszulesen und die Daten wieder in ein neues Blatt einzuspeichern. Der Entsprechende Ordner wird dann wieder von INAKTIV zu AKTIV verschoben.
    So habe ich das alte vom neuen getrennt und auch eine andere Person kann schnell auf diese Daten zugreifen. Ziel soll sein, das ein anderer User lediglich EXCEL als Interface benutzt und nicht im Ordnersystem herumsuchen muss. Das funktioniert auch sehr gut.
    Tatsächlich habe ich über dein Datensilo in Listenform nachgedacht und dein Ziel dahinter durchaus verstanden. In diesem Fall ist es sogar mehr als ausreichend. Die Idee der TXT kam mir auch nur aus reiner Neugierde. Ich wollte was neues dazulernen.
    Kleine Anmerkung: Die TXT ist Tabstoppgetrennt. Das liegt daran, das ich die Semikolongetrennte irgendwie nicht gefunden habe. Sähe natürlich besser aus. Aber da es ja letztlich nicht zum anschauen oder ausdrucken gedacht war, hatte ich mir da keine Gedanken gemacht.
    Mein Ziel ist es eine hochflexible Tabelle bzw. Programm zu erstellen das nicht nur ich sondern jeder für alles mögliche im Sinne eines Karteikartensystems benutzen kann. Das siehst du zum Beispiel an den beiden ausgeblendeten Spalten (Glaub es sind Z und Y) ((Bin gerade am Ipad, deshalb kann ich nicht genauer schauen)
    Insgesamt bin ich froh von dir, da stecken ja auch Gedanken und Arbeit drin, dieses Feedback erhalten zu haben und ich danke dir dafür.
    Ich möchte dir mein Langfristiges Ziel vorstellen.
    Ich habe mehrere Tabellen mit unterschiedlichen Themen. KFZ / Personal / Avisierung / Schadens und Beschwerdemanagment
    Diese haben wie gesagt alle gemeinsam das ich einzelne Datenblätter und dazugehörige Dateien habe.
    Aus jeder Datei benötige ich für eine fünfte Datei einige aber nicht alle Daten. Diese besorgt sich die Datei also von diesen ersten Dateien. Das grundprinzip habe ich getestet und funktioniert auch.
    Mein Vorgänger hat immer die Daten alle wie wild in einem Ordner gesammelt (z.B. Alle Schadensberichte, KFZScheine, TÜV Berichte usw in einem Ordner. Ich lege nun also ein Tabellenblatt für das Fahrzeug an, dieses wird in LISTE übertragen damit Word eine Checkliste für alle Fahrzeuge als Serienbrief drucken kann. Ausserdem habe ich über das Interface sofort Zugriff auf den Ordner des Fahrzeugs und komme so sehr schnell an alle Dateien die mit diesem Fahrzeug in Verbindung stehen.
    Nun wird das Fahrzeug irgendwann verkauft und der Ordner wird in INAKTIV verschoben. (Ich denke ich werden das mal in ARCHIV umbenennen) Die zuletzt gesammelten Daten werden in einer TXT abgespeichert und in dem Ordner abgelegt.
    Tun wir mal so, das die Geschäftsleitung plötzlich beschließt das Fahrzeug doch nicht zu verkaufen. Dann klicke ich auf REAKTIVEREN und der Ordner wird wieder zurückgeholt, die TXT ausgelesen, in einem neuen Tabellenblatt gespeichert und anschließend gelöscht.
    Mein Ziel bei der ganzen Aktion: Ich möchte kein starres System erstellen das nur auf mein Problem zugeschnitten ist. Ich möchte lieber etwas erstellen, das ich später jemand anderem geben kann, das er nur Layoutmäßig auf seine Bedürfnisse anpassen muss und schon ist alles fertig. Bis jetzt klappt das ganz gut.
    So, ich bin nun fertig. Ich bin gespannt was du dazu sagst.
    Hab einen schönen Abend
    Steve
    Anzeige

    Links zu Excel-Dialogen

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige