Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
352to356
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
352to356
352to356
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Excel-Datei mit spezieller Endung speichern

Excel-Datei mit spezieller Endung speichern
18.12.2003 11:06:33
Christoph Gaupp
Hallo,
habe immer noch das problem das ich es nicht hinbekomme, das excel die dateien in dem format, wie ich es unbedingt benötige, abspeichert.

ich brauche als endung .ida0001 mit fotlaufender nummer (ida0002,ida0003 usw)
die datei soll als unformatierter text ausgegeben werden.

er hängt mir immer .prn dahinter, wie bekomm ich das weg

danke im voraus

christoph

mein speicherbefehl ist momentan:
ActiveWorkbook.SaveAs Filename:=pfaedle & ordner & "\" & "Druckverlauf_Zylinder" & z & "_n" & drehzahl & ".ida" & Format(((l - 2) * c) + z, "0000"), FileFormat:=xlTextPrinter

also vereinfacht:

ActiveWorkbook.SaveAs Filename:="blablabla" ".ida" & Format(counter, "0000"), FileFormat:=xlTextPrinter


mein gesamter speicherbefehl ist wie folgt:

Windows(fenster).Activate
pfaedle = ThisWorkbook.Path
ordner = "\" & "Druckverläufe_" & Cells(1, 1) & "_" & Cells(1, 11)
sdirectory = Dir(pfaedle & ordner & "\*.*")
If (sdirectory <> "") Then
Else
MkDir pfaedle & ordner
End If

Windows(neu).Activate

zahler = 1
10 zahler = zahler + 1
sfile = Dir(pfaedle & ordner & "\" & "Druckverlauf_Zylinder" & z & "_n" & drehzahl & ".ida" & Format(((l - 2) * c) + z, "0000") & ".prn")
sfile2 = Dir(pfaedle & ordner & "\" & "Druckverlauf_Zylinder" & z & "_n" & drehzahl & "_Version" & zahler & ".ida" & Format(((l - 2) * c) + z, "0000") & ".prn")

If (sfile <> "") Then
If (sfile2 <> "") Then GoTo 10
ActiveWorkbook.SaveAs Filename:=pfaedle & ordner & "\" & "Druckverlauf_Zylinder" & z & "_n" & drehzahl & "_Version" & zahler & ".ida" & Format(((l - 2) * c) + z, "0000"), FileFormat:=xlTextPrinter
Else
ActiveWorkbook.SaveAs Filename:=pfaedle & ordner & "\" & "Druckverlauf_Zylinder" & z & "_n" & drehzahl & ".ida" & Format(((l - 2) * c) + z, "0000"), FileFormat:=xlTextPrinter
End If
Application.DisplayAlerts = False
ActiveWorkbook.Close
Application.DisplayAlerts = True

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Als Versuch etwas aus dem Archiv ...
18.12.2003 21:58:35
Volker Croll
Hallo Christoph,

habe im Archiv dies gefunden: https://www.herber.de/forum/archiv/100to104/t100832.htm

Denke es muesste gehen, nach dem Speichern die Datei "umzubennen", also alter Name mit .prn, neuer Name ohne.

Vielleicht hilft's.

Gruss Volker
AW: Excel-Datei mit spezieller Endung speichern
18.12.2003 22:08:52
Reinhard
Hallo Christoph,
das mit .ida habe ich jetzt schon mehrmals gelesen, also nehm ich mal an du hast die Frage mehrmals gestellt.
Dazu mal folgendes.
Unübersichtlicher Code schreckt sehr ab, mich auch, denn deshalb antworte ich erst jetzt.
Für die Fragestellung wäre doch

Sub test()
dim counter as integer
counter=37
ActiveWorkbook.SaveAs Filename:="blablabla" & ".ida" & Format(counter, "0000"), FileFormat:=xlTextPrinter
End Sub

ausreichend gewesen.
Benutze hier im Forum bitte vor Codefragmenten den pre-Tag, also einfach <pre> vor die Codezeilen und </pre> danach hinschreiben, dann werden Einrückungen die man bei If For usw machen sollte auch dargestellt.
Oder schreibe komplette Makros, also mit

Sub x() ... End Sub
, dann macht dass dieses Forum automatisch.
Damit wird der Code um Klassen schneller und besser lesbar.

So, jetzt zu deinem Problem, durch den Parameter xlTextPrinter setzt Excel automatisch die Endung .prn hintendran.
Einfache Lösung, wenn das Workbook geschlossen ist, manuell den namen ändern.
Lösung2, nimm das folgende Makro dass ich grad frisch von Karl-Otto hier im Forum gemopst habe. Dort wo "," also Komma als Trennzeichen steht, kannst du es dir ggfs auf ";" o.ä. anpassen.
Bei Rückfragen melde dich hier.
Sollte alles zufriedenstellend klappen, so beende bitte alle deine anderen Threads zu dieser Frage, indem du mit dem Betreff "geschlossen o.T" darauf antwortest. Danke.
Gruß
Reinhard


Sub Christoph()
Dim TB As Worksheet
Dim TMP$, ExePath
Dim z%, s%
Dim Dateiname as String
Dateiname="blablabla" & ".ida" & Format(counter, "0000")
ExePath = Application.Path
Set TB = ActiveSheet
Open ExePath & "\" & Dateiname For Output As #1
For z = 1 To TB.UsedRange.Rows.Count
For s = 1 To TB.UsedRange.Columns.Count
TMP = TMP & CStr(TB.Cells(z, s).Text) & "," ' Komma als Trennzeichen
Next s
Print #1, left(TMP,len(TMP)-1)
TMP = ""
Next z
Close 1
'Workbooks.Open ExePath & "\" & Dateiname
End Sub

Anzeige
AW: Excel-Datei mit spezieller Endung speichern
19.12.2003 08:46:27
christoph Gaupp
prinzipiell funktioniert dein code in soweit, das meine datei-endungen stimmen, nur ist die datei die erzeugt wird nicht mehr so formatiert wie sie sein muss.
brauche z.B. in der ersten zeile 8 zeichen für Beschreibung dann 6 für.....
mit dem xlTextPrinter macht er mir das. mit dem code kann ich aber nur einen festes trennzeichen "," oder " " machen.

werde versuchen die dateien umzubenennen.

danke mal, auch für evtl. weitere ideen!

gruß christoph

ps das andere topic habe ich geschlossen und zu deiner sache mit dem code. hatte unten den ganzen code gepostet ja, aber oben den benötigten teil alleine hingeschrieben(also vereinfacht:

ActiveWorkbook.SaveAs Filename:="blablabla" ".ida" & Format(counter, "0000"), FileFormat:=xlTextPrinter). hatte den code nur gepostet, falls sich einer für interessiert und evtl. kritik zu bekommen
Anzeige
AW: Excel-Datei mit spezieller Endung speichern
19.12.2003 10:38:55
Reinhard
Hallo Cristoph,
wie werden die Daten erwartet?
Wie geht "brauche z.B. in der ersten zeile 8 zeichen für Beschreibung dann 6 für....." denn weiter für eine ganze Zeile?
Wenn diese 'Breiten' für alle Zeilen gelten, jeweils nur in Spalten unterschiedlich sind, ist es recht einfach dies in dem SpeicherMakro miteinzubauen.

TMP=TMP & left(CStr(TB.Cells(z, s).Text)& "              ",10) 'o.ä.


Ich habe jetzt mehrmals .prn abgespeichert also mit xlTextPrinter als Parameter.
Im Editor sieht man, dass, im Gegensatz zum Text unten der aus der ExcelHilfe stammt, keine Kommas drin stehen. Jede Spalte wird mit 10 Zeichen abgespeichert (in der Standardeinstellung für die Zellenbreite). Text steht dann linksbündig in diesen 10 Zeichen, Zahlen rechstbündig in diesen 10 Zeichen. Aufgefüllt wird mit Leerzeichen. Längeres als 10 wird abgeschnitten. Datum wird wie Zahlen rechtsbündig in der Form dd/mm/yy gespeichert. Zeilenende ist wie üblich 0D0A.
Gruß
Reinhard

Formatierter Text (durch Leerzeichen getrennt)-Format
Das Format formatierter Text (Leerzeichen getrennt) (*.prn) speichert nur den Text und die Werte, wie diese in den Zellen im aktiven Tabellenblatt angezeigt werden.

Alle Zeilen werden gespeichert. Wenn eine Zeile mit Zellen mehr als 240 Zeichen enthält, werden die Zeichen nach dem 240. Zeichen in eine neue Zeile am Ende der konvertierten Datei umbrochen. Wenn beispielsweise die Zeilen 1 bis 10 jeweils mehr als 240 Zeichen enthalten, wird der restliche Text aus Zeile 1 in Zeile 11 eingefügt, der restliche Text aus Zeile 2 in Zeile 12 eingefügt usw.

Datenspalten werden durch Kommata getrennt; alle Datenzeilen werden durch eine Zeilenschaltung abgeschlossen. Wenn Zellen Formeln an Stelle von Formelwerten anzeigen, werden die Formeln als Text konvertiert. Alle Formatierungen, Grafiken, Objekte und andere Tabelleninhalte gehen verloren.

Vor dem Speichern eines Tabellenblatts in diesem Format sollten Sie sicherstellen, dass alle zu konvertierenden Daten angezeigt werden und dass sich zwischen den Spalten ein ausreichender Abstand befindet. Ist dies nicht der Fall, können möglicherweise Daten verloren gehen oder in der konvertierten Datei nicht korrekt getrennt werden. Unter Umständen müssen Sie die Spaltenbreiten im Tabellenblatt anpassen.
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige