ich brauche unbedingt Eure Hilfe für mein Tool meiner Masterarbeit: Ich habe ein kleines Makro geschrieben, das nur eine Arbeitsmappe ("Zieltabelle") aus einer Exceldatei als CSV-Datei speichern soll.
Das Problem ist, dass die Textboxen auf einer anderen Arbeitsmappe ("Auswahlmaske") erscheinen sollen. Gespeichert werden soll im Anschluss die Arbeitsmappe ("Zieltabelle")-
Dabei gibt es folgende Textboxen:
1. "Soll die Datei als CSV-Datei gespeichert werden?"
--> bei "Ja" soll die Datei an einem festen Speicherort gespeichert werden, allerdings soll der Nutzer den Dateinamen selber eingeben können, sodass der Speicherort fix bleibt und nur der Dateiname veränderbar ist
--> bei "Nein": kommt die 2. Textbox:
2. "Zur weiteren Verarbeitung in QGIS muss das Ergebnis im CSV-Format gespeichert _
werden. Wollen Sie das Ergebnis als CSV-Datei speichern?"?"
--> bei "Ja" soll das Fenster "Speichern unter" aufgehen, wo der Nutzer die Datei beliebig abspeichern kann
--> bei "Nein" soll das gar nichts passieren.
Folgende Probleme treten bei meinem Code auf:
1)Bei mir funktioniert nicht, dass ich mehrere Workbooks in einem Code verwenden kann
2)Nicht die Mappe "Zieltabelle" wird als CSV-Datei abgespeichert, sondern die ganze Excel-Datei wird an den angegbenen Ort als CSV-Datei gespeichert.
3) Die Textboxen öffnen sich nicht auf dem richtigen Arbeitsblatt
Hier ist mein Code dazu:
Sub Datei_speichern()
' Dim wsAuswahlmaske As Worksheet
' Dim wsZiel As Worksheet 'Variable: Zieldatei anlegen
' Set wsZiel = Worksheets("Zieltabelle") 'Variable: Zieldatei "Zieltabelle" _
festlegen
' Set wsAuswahlmaske = Worksheets("Auswahlmaske")
Dim wbZieltabelle As Workbook
Dim wbAuswahlmaske As Variant
Dim dateiname As String
'* CSV-Datei
If MsgBox("Zur weiteren Verarbeitung in QGIS muss das Ergebnis im CSV-Format gespeichert _
werden. Wollen Sie das Ergebnis als CSV-Datei speichern?", vbYesNo) = vbYes Then
dateiname = InputBox("Dateiname:")
If dateiname = "" Then
MsgBox "Dateiname ist ungültig!"
Exit Sub
End If
With wbZieltabelle
wbZieltabelle.Copy
wbZieltabelle.SaveAs "C:\Users\GIS\Desktop\Exceltool_Ergebnis\CSV-Dateien" & dateiname & ". _
_
csv"
End With
With wbAuswahlmaske
wbAuswahlmaske.MsgBox("Datei wurde als CSV-Datei gespeichert!", vbOK) = vbOK _
_
'Hinweis wo Ergebnis gespeichert wurde
wbAuswahlmaske.MsgBox("Zur weiteren Verarbeitung in QGIS muss das Ergebnis im CSV-Format _
gespeichert werden. Wollen Sie das Ergebnis als CSV-Datei speichern?", vbYesNo) = vbNo
ActiveWorkbook.MsgBox("Wollen Sie das Ergebnis als Excel-Datei speichern?", vbYesNo) = _
vbYes
End With
With wbZieltabelle
fileToOpen = Application.GetOpenFilename("Microsoft Excel-Dateien (*.xls), *.xls")
Pfad.Text = fileToOpen
ActiveWorkbook.MsgBox("Datei wurde als CSV-Datei gespeichert!", vbOK) = vbOK
End With
With wbAuswahlmaske
ActiveWorkbook.MsgBox("Wollen Sie das Ergebnis als Excel-Datei speichern?", vbYesNo) = vbNo
End With
'ActiveWorkbook.Close False
End If
End Sub
Vielen Dank für eure Untersützung! VG, Anka