Ich versuche gerade mit Hilfe eines VBA Makros ein Arbeitsblatt in eine Textdatei mit dem Format .depa umzuwandeln.
Das Ergebnis soll danach so aussehen:
Außerdem tritt dieser Fehler nicht auf, wenn man das Arbeitsblatt von Hand abspeichert, obwohl das oben beschriebene Speichermakro nix weiter ist als der aufgezeichnete Speichervorgang nur mit variablem Speicherpfad und -namen.
Ehrlich gesagt bin ich mit meinem Latein am Ende.
Ist es möglich per Makro die Anführungszeichen in der Textdatei zu ändern, ohne diese in Excel zu importieren? (lustigerweise werden die Anführungszeichen nicht mit importiert, sondern entstehen nur beim Abspeichern mit diesem Makro)
Als alternative Abspeichervariante habe ich noch folgendes Makro verwendet, welches die Auswahl des Speicherortes und des Namens ermöglichen sollte:
Wie kann ich dieses Makro so umändern, dass nur ein Arbeitsblatt abgespeichert wird?
MfG Shisu
Das Ergebnis soll danach so aussehen:
Hierbei bin ich so vorgegangen, dass ich drei Spalten verwendet hatte, wobei in der ersten Spalte die GrößenbezeichnungenTyp_Applikation=WG-Formular
Version_Druckapplikation=2.0.4
Version_Interface=2.0.3
Software=Beispiel-Datei
[Allgemeine_Angaben]
Objekt_Typ=WBS 70
Objekt_PLZ=01234
Objekt_Ort=Musterstadt
Objekt_Strasse=Muster Weg 1
Objekt_Gebaeudeteil=Hauptgebäude
Baujahr_Gebaeude=1970
Baujahr_Anlage=1970
AN=1580
Anzahl_Wohneinheiten=1
Erstellungsdatum=39476
GueltigBis=43129
Ausstellgrund_Neubau=0
Ausstellgrund_Vermietung=1
Ausstellgrund_Modernisierung=1
Ausstellgrund_Sonstiges=0
Ermittlung_durch_Energiebedarf=0
Ermittlung_durch_Energieverbrauch=1
HinweiseZusatzInfos=0
Aussteller_AusgabeArt=0
Datenerhebung_Eigentuemer=0
Datenerhebung_Aussteller=1
Aussteller_Firma=Muster Ag
Aussteller_Vorname_Name=M. Mustermann
Aussteller_Strasse_Nr=Muster Straße 1
Aussteller_PLZ_Ort=01234 Musterstadt
DenaAusstellerNr=0
Wohnflaeche=1580
AusstellerLogo_Pfad=
AusstellerUnterschrift_Pfad=
Aussteller_AusgabeUnterschrift=0
GebaeudeFoto_Pfad=
[Bewertungsgroessen]
[Energiebedarf]
[Energieverbrauch]
Energieverbrauchskennwert=77,79
Warmwasser_enthalten=1
Wird_gekuehlt=0
Energieverbrauch_Energietraeger_1=Braunkohle
...
und in der zweiten Spalte die Werte stehen, welche an anderer stelle eingetragen werden...
[Allgemeine_Angaben]
Objekt_Typ=
Objekt_PLZ=
Objekt_Ort=
Objekt_Strasse=
Objekt_Gebaeudeteil=
Baujahr_Gebaeude=
Baujahr_Anlage=
AN=
Anzahl_Wohneinheiten=
Erstellungsdatum=
GueltigBis=
Ausstellgrund_Neubau=
Ausstellgrund_Vermietung=
Ausstellgrund_Modernisierung=
...
in der dritten Spalte werden die beiden ersten Spalten mit hilfe eines Makros in die benötigte Form gebracht....
WBS 70
01234
Musterstadt
Muster Weg 1
Hauptgebäude
1970
1970
1580
1
39476
43129
0
1
1
...
Abschließend kopiere ich die dritte Spalte auf ein neues Arbeitsblatt und speicher dieses mit diesem Makro,Sub Umwandlungsmakro()
Dim i As Variant
i = 7
Sheets("Werteerfassung").Select
Do
If Not Cells(i, 1).Value = "" Then
Cells(i, 3).Value = Cells(i, 1).Value & Cells(i, 2).Value
Else
Exit Do
End If
i = i + 1
Loop
End sub
das Problem, welches dabei entsteht ist der Energieverbrauchskennwert welcher normalerweise soPrivate Sub CommandButton1_Click()
Dim pfad As String
Dim name As String
Dim var_Speichere As Variant
Dim str_FileName As String
Call Umwandlungsmakro
pfad = Application.ActiveWorkbook.Path
Worksheets("Datenblatt_Wertesammlung").Activate
name = Worksheets("Datenblatt_Wertesammlung").Cells(5, 2).Value 'hier wird der Straßenname von einer Extraseite ausgelesen.
Worksheets("Datenblatt_Ausgabe").Activate
ActiveWorkbook.SaveAs Filename:=pfad & "\" & name & ".depa", FileFormat:=xlText, CreateBackup:=False
Worksheets("Start").Activate
End Sub
aussehen sollte, in der abschließenden .depa Datei jedoch in Anführungszeichen stehtEnergieverbrauchskennwert=77,79
Jede Zelle, auf die für die Erstellung dieses Wertes zugegriffen wird, ist als Zahl formatiert. Auf dem abzuspeicherndem Datenblatt ist jede Zelle gleich formatiert, dennoch wird diese eine Zelle anders abgespeichert, als der Rest."Energieverbrauchskennwert=77,79"
Außerdem tritt dieser Fehler nicht auf, wenn man das Arbeitsblatt von Hand abspeichert, obwohl das oben beschriebene Speichermakro nix weiter ist als der aufgezeichnete Speichervorgang nur mit variablem Speicherpfad und -namen.
Ehrlich gesagt bin ich mit meinem Latein am Ende.
Ist es möglich per Makro die Anführungszeichen in der Textdatei zu ändern, ohne diese in Excel zu importieren? (lustigerweise werden die Anführungszeichen nicht mit importiert, sondern entstehen nur beim Abspeichern mit diesem Makro)
Als alternative Abspeichervariante habe ich noch folgendes Makro verwendet, welches die Auswahl des Speicherortes und des Namens ermöglichen sollte:
Unter verwendung dieses Makros schafft es Excel die komplette Datei sammt Datenbank, Tabellenblättern, Formatierungen und VBA Makros in eine Textdatei umzuwandeln, welche im Editor zwar nur aus irgendwelchen Sonderzeichen besteht, so groß ist wie die Orginaldatei und bei einem Tabstopgetrennten Import die alte Arbeitsmappe wieder herstellt. Obwohl laut den Angaben Excels dies nicht möglich ist.Private Sub CommandButton1_Click()
Dim pfad As String
Dim name As String
Dim var_Speichere As Variant
Dim str_FileName As String
pfad = Application.ActiveWorkbook.Path
Worksheets("Datenblatt_Wertesammlung").Activate
name = Worksheets("Datenblatt_Wertesammlung").Cells(5, 2).Value
Worksheets("Datenblatt_Ausgabe").Activate
str_FileName = name & ".depa"
var_Speichere = Application.GetSaveAsFilename( _
InitialFilename:=str_FileName, _
FileFilter:="Text (Tabstop getrennt) (*.depa), *.depa", _
Title:="Datei speichern unter...")
If var_Speichere = False Then
Worksheets("Start").Activate
frmEnEV.Hide
frmMain.Show
Exit Sub
End If
ActiveWorkbook.SaveAs var_Speichere
Worksheets("Start").Activate
frmEnEV.Hide
frmMain.Show
End Sub
Wie kann ich dieses Makro so umändern, dass nur ein Arbeitsblatt abgespeichert wird?
MfG Shisu