Nach dem einfügen der Const Zeile - diese beiden Zeilen im Makor einfach löschen! Das ist schon alles!
strDateiname = Empty '("Testmappe.xls") '## Empty löschen und direkt eine Namen angeben, oder strDateiname = Range("xxx").Value '## Const ganz oben vpr Sub Import einfügen!!
17.05.2017, 13:28 (Dieser Beitrag wurde zuletzt bearbeitet: 18.05.2017, 06:22 von WillWissen.
Bearbeitungsgrund: Code in Codetags gesetzt und Smilies deaktiviert
)
Hallo nochmal, Dankeschön für die vielen Hilfestellungen. Ich komme aber mit den Tips einfach nicht zurecht.
Ich habe noch nie mit Makros gearbeitet und diese ganzen Befehle sind für mich komplett unverständlich, daher mache ich es sicher irgendwie falsch.
Das ist aktuell mein Makro:
Code:
Sub Import_vorbereiten()
' Import_vorbereiten Macro
'Datei über Dialog Öffnen
Datei = Application.GetOpenFilename
If Datei = Empty Then Exit Sub
'wofür ist der 1.Befehl ??? wird er gebraucht??
ExecuteExcel4Macro "WINDOW.MOVE(16,-35,"""")"
Workbooks.Open Filename:=Datei
'Datei Vorgabe zum Speichern (oder Empty)
strDateiname = Import
'Datei über Dialog speichern
Application.Dialogs(xlDialogSaveAs).Show (strDateiname)
ActiveWindow.Close
Workbooks("Import vorbereiten.xlsm").Close False
Application.Quit
End Sub
Ein paar Dinge funktionieren noch nicht so richtig.
Zum einen würde ich den Dateinamen und die Endung definieren.
Außerdem sollte es automatisch abgespeichert werden ohne Frage an den Benutzer -> gewünscht währe da dass es genau an dem selben Ort gespeichert wird wo auch die OpenReport Datei liegt. Sprich egal auf welchem Computer ich arbeite dass der Pfad immer der der Open Report Datei ist.
Und am Ende nach dem Speichern (was manuell schon funktioniert) stürzt Excel allerdings komplett ab. Die Datei ist gespeichert aber trotzdem irritierend für den späteren Nutzer.
Ich weiß es ist viel verlangt aber wenn jemand Lust hat währe es cool wenn mir jemand den vollständigen Code schickt den Ich einfügen kann das währe wirklich super.
Zitat:Zum einen würde ich den Dateinamen und die Endung definieren.
Im Code steht
Code:
'Datei über Dialog Öffnen
Datei = Application.GetOpenFilename
Du nimmst dann nicht den Dialog sonder Deine Vorgabe, ggf. inklusive Pfad. Wenn die Exceldatei im gleichen Pfad liegt, reicht als Angabe ThisWorkbook.Path. Schaue Dir das aber in der Überprüfung an, eventuell fehlt ein Backslash.
Die nächste Zeile im Code ist
Code:
If Datei = Empty Then Exit Sub
Das geht dann nicht auf. Hier prüfst Du dann mit Dir:
Code:
If Dir(Datei)="" Then Exit Sub
Falls Du das Verzeichnis wählen musst, dann melde Dich noch mal. Dann nehmen wir das auch noch in Angriff.
. \\\|/// Hoffe, geholfen zu haben. ( ô ô ) Grüße, André aus G in T ooO-(_)-Ooo (Excel 97-2019+365)
Hallo Ihr Excel Profis :)
Nach langem Urlaub und ich gebs zu ich hab zwischendurch auch aufgegeben ::)ersuch ich das ganze jetzt nochmal. Irgendwie muss es ja funktionieren.
Unten eingebettet mal der Code. Da sind auch noch die Notizen eines Helfers aus diesem Thread drin.
Da ich wie gesagt totaler Noob bin währ es cool wenn mor jemand den Code anpassen kann ?
Zu meinem Vorredner, ich habe deine Ämderunge hoffentlich richtig eingefügt. Gut währe es (ich weiss nicht ob man das pauschal definieren kann) wenn die aufzurufende Datei eine Ordnerebene höher liegen kann.
Der Ordner indem die Datei Import.xls liegt heisst Kronos Viewer in diesem ist ein Ordner Systemdateien in welchem dann die XLSM liegt in der untenstehendes Script liegt. Vlt kann mir einer von euch helfen :)
Lg Philipp
Code:
Sub Import_vorbereiten()
' Import_vorbereiten Macro
'Datei über Dialog Öffnen
Datei = ThisWorkbook.Path
If Dir(Datei) = "" Then Exit Sub
'wofür ist der 1.Befehl ??? wird er gebraucht??
ExecuteExcel4Macro "WINDOW.MOVE(16,-35,"""")"
Workbooks.Open Filename:=Datei
08.08.2017, 16:01 (Dieser Beitrag wurde zuletzt bearbeitet: 08.08.2017, 16:01 von philippu2006.)
Danke für die schnelle Antwort. Aber ich muss da leider passen. Das was du da schreubst ist sicher korrekt aber ich kann damit null anfangen da ich nicht weiss was diese Zeichenketten bedeuten und ich dies wie gesagt nur dieses eine mal brauchen werde da ich sonst nie mit excel arbeite. Cool währe wenn du den tipp einfach in meinen code anhang einfügen könntest und wenn ich dann noch etwas anpassen muss einfach dazuschrieben.
Weil ich leider nichts mit instrgrev oder msgbox anfangen kann.
Sorry wenn ich da nich so viel erfahrung mit habe :)
Also folgendes sollte passieren mit dem Code den ich eingebettet habe.
Bei Klick auf den Button in der Excel Datei öffnet sich automatisch die Datei Import.xls eine Ordnerebene höher.
Diese wird dannn bearbeitet (funktioniert super)
Dann wird sie wieder abgespeichert automatisch mit dem Dateinamen Filemaker_Import.xls in dem Ordner wo auch Import.xls liegt
Sollte die Datei schon vorhanden sein dann wird Sie automatisch überschrieben ohne Nachfrage bestenfalls.