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

Fremddatei in Excel einfügen, umwandeln

Fremddatei in Excel einfügen, umwandeln
06.12.2020 22:35:46
Uwe
Ich möchte eine neue FMC-Datei in eine ältere Version umwandeln. Es klappt alles gut, es wäre aber schön, wenn man diesen Vorgang automatisieren könnte.
In Tabelle Umwandlung1 über Schalter „Öffnen“ Fremddatei Beispiel.FMC einlesen, öffnen(F3), Text kopieren, in A1 Tabellenblatt „Einlesen“ einfügen. Dann den kompletten Inhalt Tabellenblatt „Auslesen“ kopieren und in Texteditor einfügen. (Spalte A Tabellenblatt „Einlesen“ komplett wieder löschen.)
Texteditor speichern als Beispiel_A.FMC
https://www.herber.de/bbs/user/142126.xls

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

Betreff
Datum
Anwender
Anzeige
AW: Fremddatei in Excel einfügen, umwandeln
07.12.2020 11:34:07
fcs
Hallo Uwe,
was du vorhast, ist ja nicht in 3 Minuten programmiert.
Zum Testen ist es zwingend notwendig, das du in einer ZIP-Datei noch folgende Dateien hier hochlädst:
1. eine FMC-Datei neue Version
2. eine Text/FMC-Datei wie sie aussehen soll, nachdem die neue Version in Excel, geladen, umgewandelt und als alte Version unter einem anderen Namen gespeichert wurde.
Falls die Dateien sehr groß sind, dann kannst du sie in einem Text-Editor auf eine sinnvolle Größe reduzieren

In Tabelle Umwandlung1

Wo finde ich diese Tabelle? ggf. mit in die ZIP-Datei packen.
Eine Frage zur Excel-Version: Muss die Datei zwingend im älteren Format (xls) erstellt werden, oder ist auch das neueste Excel-Format (xlsm) zulässig?
Relevant ist ggf. auch noch der/die Texteditoren, die du verwendest, damit man sie von Excel aus ansteuern kann. Am besten die Dateinamen der entsprechenden EXE-Dateien inkl. Verzeichnis angeben.
LG
Franz
Anzeige
AW: Fremddatei in Excel einfügen, umwandeln
07.12.2020 14:59:17
Uwe
Hallo Franz, Hallo Yal,
Ich schicke eine FMC-Datei, bei der ich bloß die Endung als TXT geändert habe, um sie hoch laden zu können. Wenn ich diesen Inhalt in die Tabelle Eingabe Zelle A1 kopiere, dann kommt in der Spalte B das umgewandelte Ergebnis. Dieses wird ab Zeile 27 in die Tabelle Ausgabe ab Zeile 17 kopiert und ergibt mit dem gelben Vortext den kompletten neuen Inhalt.
Die Inhalte der Zellen bei Tabelle Eingabe ab Zelle B62 und bei Ausgabe ab Zelle A51 habe ich nur gelöscht, um die Datei hoch laden zu können. Der graue Bereich wird nur bis zum Ende runterkopiert, da die meisten Dateien mehrere Tausend Stellen haben.
Die Excelversion ist nicht unbedingt zwingend. Wenn es nicht anders geht muss ich mir eine modernere Version installieren.
Mit VBA bin ich noch etwas überfordert. Ich weiß gar nicht, wie ich diese Programmsprache einbinden muss und schon gar nicht, wie ich da etwas anpassen kann. Da muss ich mit über 60 noch einmal die Schulbank drücken.
Herzliche Grüße
Uwe
https://www.herber.de/bbs/user/142140.txt
Anzeige
AW: Fremddatei in Excel einfügen, umwandeln
07.12.2020 16:51:07
Yal
Hallo Uwe,
es ist nun mal so, dass wenn Du möchtest, dass der Computer für Dich etwas erledigt, Du dann seine Sprache sprechen muss. Es versteht viele Sprache. Unter Excel, am besten VBA.
Wie gesagt, ohne VBA geht die Transformation zwar auch mit Power Query, aber ab dem Moment, wo Du die einzelne Dateien speichern möchtest, brauchst Du eine Programmiersprache.
Und wenn Du unter 50 bist und deine letzten 17 Arbeitsjahren sichern willst, ist Programmierkenntnis eine sichere Bank.
Viel Erfolg
Yal
AW: Fremddatei in Excel einfügen, umwandeln
08.12.2020 15:04:35
fcs
Hallo Uwe,
Ich habe in deine Datei ein Makro eingebaut. Das Makro kann über die Schaltfläche gestartet werden.
https://www.herber.de/bbs/user/142161.zip
Schritte im Makro:
1. Auswahl der zu konvertierenden Datei.
2. Der Inhalt der gewählten FMC-Datei wird über einen Datenkanal eingelesen.
3. Die eingelesenen Daten werden für das Eintragen in Spalte A von Eingabe vorbereitet.
4. Altdaten in "Ausgabe" in Spalte A ab Zeile 17 werden gelöscht.
5. Formeln in "Eingabe" werden in Spalte B ab Zeile 28 gelöscht.
6. Altdaten in "Eingabe" Spalte A werden gelöscht.
7. Daten aus FMC-Datei werden in Spalte A von "Eingabe" eingefügt.
8. Inhalte in Zeilen mit Leerstring in Spalte A am Ende der Liste werden gelöscht.
9. Formel in Zelle B27 wird kopiert bis zur letzten Zeile mit Inhalt in Spalte A.
10. Daten in Spalte B werden kopiert ab Zeile 27 und in" Ausgabe" ab Zeile 17 eingefügt.
11. Formeln in Spalte B ab Zeile 28 und Daten in Spalte löschen
12. Daten in Spalte A von "Ausgabe" werden in Daten-Array einlesen.
13. Dateiname für Ausgabe wird festlegen - "_v30" wird an den Namen der FCM-Datei angefügt.
14. Via Datenkanal werden die Ausgabedaten in die Ausgabedatei geschrieben
15. Daten in "Ausgabe" ab Zeile 17 löschen.
16. Erstellte Datei wird im Editor "Notepad" angezeigt.
LG
Franz
Anzeige
AW: Fremddatei in Excel einfügen, umwandeln
08.12.2020 16:16:45
Uwe
Hallo Franz,
es klappt super. Da ich meine Programme auf einen virtuellen Rechner habe, komme ich dort nicht auf den Austauschordner Sharaed Folders Laufwerk D auf dem meine Daten liegen. Wenn du das noch einstellen könntest wären alle meine Wünsche erfüllt.
Herzlichen Dank
LG Uwe
AW: Fremddatei in Excel einfügen, umwandeln
08.12.2020 21:13:10
fcs
Hallo Uwe,
Zugriff auf Shared Ordner gehört seit fast 2 Jahren nicht mehr zu meinem Tagesgeschäft. Ich hab auch keine Möglichkeit auf meinem privaten Rechner dies zu testen.
Ich meine mich zu erinnern, dass der Dialog als Dateinamen den ServerNamen/Ordner des Shared Ordners mitliefert. Diesen muss man dann durch das lokale Laufwerk ersetzen.
Teste mal mit dem folgenden Makro, was der Dateidialog als Dateiname liefert. Danach kann ich dir dann ggf. weiterhelfen.
LG
Franz
Sub Test_Datei_oeffnen()
Dim varFMC_Datei
'FMC-Datei auswählen
varFMC_Datei = Application.GetOpenFilename("Text Files (*.FMC), *.FMC", _
Title:="Bitte FMC-Datei neue Version auswählen")
If varFMC_Datei = False Then Exit Sub
MsgBox "Name der ausgewählten Datei:" & vbLf & varFMC_Datei, vbOKOnly, "Test Öffnen Datei"
End Sub

Anzeige
AW: Fremddatei in Excel einfügen, umwandeln
08.12.2020 22:17:22
Uwe
Hallo Franz,
es klappt jetzt doch. Nochmal herzlichen Dank!
Gruß
Uwe
AW: Fremddatei in Excel einfügen, umwandeln
07.12.2020 12:51:37
Yal
Hallo Uwe,
Du Benutzt Excel in dem Fall als "Programmiersprache".
Ich denke, Du bist besser bedient, wenn Du vom Formeln ins VBA wechselst.
Ich habe deinen Auftrag in 2 Teile getrennt:
_ Durchgehen alle Dateien in einem bestimmten Verzeichnis
_ Behandlung einer Datei
Ich verwende Excel nicht als Zwischenablage sondern wandle von FMC zu FMC-Datei.
Ungetestet und ohne Gewähr. Die originale Dateien sind zwar nicht gefährdet, aber Spiele zuerst in einem Testverzeichnismit nur ein paar Dateien-Kopie.
Offene Frage: was passiert nach Zeile 61? (siehe letzter Case-Behandlung)
Du muss auch in Extras, Verweise "Windows Scripting Runtime" anbinden.
Setzt Dich mit dem Code auseinander. Du wirst wahrscheinlich hier und da Anpassungen machen müssen.
Private FSO As FileSystemObject
Private zielName As String
Private V As Folder
Private Fq As File
Private Fz As File
Const cVerz = "C:\temp"
Sub Datei_durchgehen()
Set FSO = New FileSystemObject
Set V = FSO.GetFolder(cVerz)
If V Is Nothing Then
MsgBox "Verzeichnis """ & cVerz & """" & vbCr & "nicht vorhanden oder nicht erreichabr." _
, vbCritical + vbOKOnly, "Abbruch"
Exit Sub
End If
For Each Fq In V.Files
If Right(Fq.Name, 4) = ".fmc" And Right(Fq.Name, 6)  "_A.fmc" Then
zielName = Mid(Fq.Name, Len(Fq.Name) - 4) & "_A.fmc"
If FSO.GetFile(zielName) Is Nothing Then
Datei_bearbeiten zielName
End If
End If
Next
End Sub
Sub Datei_bearbeiten(zielName As String)
Dim Dq As TextStream
Dim Dz As TextStream
Dim aktZeile As String
Dim i
Set Dq = Fq.OpenAsTextStream
Set Dz = FSO.CreateTextFile(V.Path & "\" & zielName, True)
i = 0
Do While Not Dq.AtEndOfStream
i = i + 1
aktZeile = Dq.ReadLine
Select Case i
Case 1: Dz.WriteLine "[VARDEFAU]"
Case 2: Dz.WriteLine "INH=7.0"
Case 3: Dz.WriteLine "VAR=@VERSION"
Case 4: Dz.WriteLine ""
Case 5: Dz.WriteLine "[VARDEFAU]"
Case 6: Dz.WriteLine "INH=14"
Case 7: Dz.WriteLine "VAR=@SUBVERSION"
Case 8: Dz.WriteLine ""
Case 9: Dz.WriteLine "[VARDEFAU]"
Case 10: Dz.WriteLine "INH=0.10000"
Case 11: Dz.WriteLine "VAR=@MASSTAB"
Case 12: Dz.WriteLine ""
Case 13: Dz.WriteLine "[VARDEFAU]"
Case 14: Dz.WriteLine "INH=311"
Case 15: Dz.WriteLine "VAR=@WKSEXPAND"
Case 16 To 26: Dz.WriteLine aktZeile
Case 27 To 61: Dz.WriteLine Replace(aktZeile, "60]", "30]")
'        Case Is >= 27: Dz.WriteLine Replace(aktZeile, "60]", "30]")
End Select
Loop
Dq.Close
Dz.Close
End Sub
Es wäre übrigens auch mit Power Query gut machbar. Siehe dafür die gute youtube-Videos von ExcelHero.
Viel Erfolg
Yal
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige