Autor
|
Thema: Speichern unter - Neuer Ordner nach Benutzereingabe VBA (6405 mal gelesen)
|
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 17. Jun. 2008 17:54 <-- editieren / zitieren --> Unities abgeben:
Guten Abend, ich möchte eine Mappe speichern. Hierzu wird per VBA der Standard-Dialog Speichern unter aufgerufen. In der Dialogbox lässt sich rechts oben (siehe Anhang) ein Neuer Ordner erstellen. Dieser neue Ordner bekommt dann vom User einen Namen verpasst. Eine "automatische" Vergabe des Ordnernamens (samt automatischer Erstellung) scheidet aus, weil der Benutzer den Namen ganz bewusst vergeben soll. Die Suche im Forum und in Google hilft nicht recht weiter - da kommen "nur" die vollautomatischen Varianten wie z. B. diese hier. Ja, es ist durchaus zumutbar, dass der Benutzer die Schaltfläche Neuer Ordner selbst betätigt. Allerdings gibt es eine Reihe "vergesslicher" Anwender - und die wundern sich dann, warum ihre Datei nicht im gewünschten Ordner erscheint und überhaupt. Tastenkürzel via SendKeys (mit 5x "{TAB}" und 4x "{RIGHT}" plus "{ENTER}") vor oder nach dem Aufruf der Dialogbox bringen mich nicht zum Ziel. Weiß jemand Rat - oder schlage ich mir diese Idee aus dem Kopf? Besten Dank einstweilen Frederik ------------------ DIN1055.de | Lastannahmen für Anwender Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 17. Jun. 2008 20:20 <-- editieren / zitieren --> Unities abgeben: Nur für Paulchen
hmmm, ist zwar jetzt OT, da kurz vor Feierabend und ich nicht wirklich der Vba-bastler bin ;-) entweder voll automatisch - oder den Anwender entscheiden lassen, Bei Letzterem ist es mir egal ob der Mensch das wieder findet - suchen kann ja Disziplin fördern (löl^^) Bei Ersterem, wenn eh eine Struktur vorhanden wäre, warum den Menschen entscheiden lassen ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
carsten-3m Mitglied Dipl.-Ing. Mbau (Produktmanagement, Patent- und Normwesen)
Beiträge: 950 Registriert: 08.05.2007 Excel 2010
|
erstellt am: 18. Jun. 2008 11:40 <-- editieren / zitieren --> Unities abgeben: Nur für Paulchen
Ich bin vielleicht auch nur zu blöde Frederik, aber ich hab nicht begriffen wie die eigentliche Frage lautet. Hmm, manchmal hilft methodisches Denken, vielleicht hier auch - gepaart mit der altbekannten Glaskugel. Ich denk mal laut... - Speichern -- Alternative 1: Speichern in vorgegebenen Ordner -- Alternative 2: Speichern in anderen Ordner --- Alt. 2a: Speichern in neu erstellten anderen Ordner ---- Alt. 2a1: Ordnername durch VBA eingestellt ---- Alt. 2a2: Ordnername durch User eingestellt --- Alt. 2b: Speichern in neu gewählten anderen Ordner Deinem Startbeitrag entnehme ich, dass Alt. 2a1 aus der Matrix entfernt werden kann, da nicht gewünscht. Leider sind Deine weiteren Ausführungen bereits mitten im Thema, ohne eine passende Vorgeschichte. Warum etwas "durchaus zumutbar" sein könnte und wozu plötzlich Tastenkürzel erörtert werden, wird in diesem Sinne nicht klar. Vielleicht kannst Du die eigentliche Problemzone etwas klarer darstellen?! ------------------ Seit Pro/E Version 1 dabei, auwei... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 18. Jun. 2008 13:09 <-- editieren / zitieren --> Unities abgeben:
Hallo carsten-3m, danke, dass Du Dich der Fragestellung annimmst - auch ohne Glaskugel . Zitat: - Speichern -- Alternative 1: Speichern in vorgegebenen Ordner -- Alternative 2: Speichern in anderen Ordner --- Alt. 2a: Speichern in neu erstellten anderen Ordner ---- Alt. 2a1: Ordnername durch VBA eingestellt ---- Alt. 2a2: Ordnername durch User eingestellt --- Alt. 2b: Speichern in neu gewählten anderen Ordner
Alternative 1 ist abgehakt, wir kommen direkt zu Alternative 2. Hiervon scheidet 2b aus, da es hin und wieder sein kann, dass der Ordner erst noch erstellt werden muss - manchmal ist der Ordner schon vorhanden. Also weiter mit 2a. 2a1 scheidet aus, weil ich ganz bewusst will, dass der User den Ordnernamen vergibt. Somit bleibt nur noch 2a2. Meine eigentliche Frage lautet: Wie erzeuge ich die Anfrage nach dem Ordnernamen (wie im Screenshot oben dargestellt) mittels VBA? Dadurch wird genau ein Mausklick gespart - und der Nutzer muss weniger denken. Vorgeschichte gibt es keine. Ich komme einfach nicht direkt an den Button "Neuer Ordner" ran, der Gedanke mit den Tastenkürzeln ist nur ein (Um-)Weg zum Button. @Thomas: Na, so OT bist Du gar nicht - denke auch, dass disziplinarische Fördermaßnahmen hilfreich sein können, also: User wählen lassen. Eigentlich ist die ganze Sache halb so wild, evtl. löse ich es über eine InputBox - daran bastle ich jetzt. Danke fürs Lesen Frederik ------------------ DIN1055.de | Lastannahmen für Anwender Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
carsten-3m Mitglied Dipl.-Ing. Mbau (Produktmanagement, Patent- und Normwesen)
Beiträge: 950 Registriert: 08.05.2007 Excel 2010
|
erstellt am: 18. Jun. 2008 17:49 <-- editieren / zitieren --> Unities abgeben: Nur für Paulchen
Zitat: Original erstellt von Paulchen: Meine eigentliche Frage lautet: Wie erzeuge ich die Anfrage nach dem Ordnernamen (wie im Screenshot oben dargestellt) mittels VBA?
Ich ahnte es schon... da bin ich leider überfragt. Ich hab mal ein wenig gesurft, aber nichts verwertbares gefunden. Da brauchste einen "echten" Fachmann für ------------------ Seit Pro/E Version 1 dabei, auwei... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
wronzky Ehrenmitglied V.I.P. h.c. CAD-Dienstleistungen für Architekten
Beiträge: 2154 Registriert: 02.05.2005 CAD: AutoCAD 2.6 bis 2013 ADT 2005 bis 2013 Arcibem System: Windows NT, 2000, XP Internet-Startseite: http://www.archi.de
|
erstellt am: 19. Jun. 2008 00:00 <-- editieren / zitieren --> Unities abgeben: Nur für Paulchen
Hi Frederik, wie wäre es denn mit einem shell-Objekt: Code: Function select_folder(base_folder) Set fs = CreateObject("shell.application") Set f = fs.BrowseForFolder(0, "Ordner wählen", 1, base_folder) If Not f Is Nothing Then select_folder = f.self.Path Else select_folder = base_folder End If End Function
Das kannst Du erst aufrufen, und dann den speichern-unter Dialog mit der Vorgabe des zurückgegebenen Ordners...Grüsse, Henning ------------------ Henning Jesse VoxelManufaktur Computer-Dienstleistungen für Architekten und Ingenieure http://www.voxelman.de Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 19. Jun. 2008 08:57 <-- editieren / zitieren --> Unities abgeben:
Ich habe eine "Lösung". (Zumindest dachte ich das gestern Abend noch, bevor wronzky gepostet hat).Variante 1 - User Leider keine, die mir den Eingabedialog Neuer Ordner anzeigt - aber eine brauchbare. Ich habe den Kollegen mitgeteilt, dass sich schlichtweg den Neuen Ordner selbst erstellen müssen - wie Thomas oben schon erwähnt. Der Speichern Unter...-Dialog zeigt immer die "Hauptebene" an - diese ist fix, einheitlich und wird per VBA vorher festgelegt. Sollte der Ordner schon bestehen, können sie ihn auswählen (und dabei mitdenken); sollte er noch nicht bestehen, sollten sie ihn erstellen (und dabei ebenfalls mitdenken). Gleiches gilt beim Öffnen einer Datei: Hier zeige ich die gleiche Ebene an; der (die) vorhandene Unterordner (mit beliebigem Namen, da vom Nutzer selbst irgendwann zuvor erstellt) wird wiederum vom Anwender gewählt. Der Vollständigkeit halber noch die Sache mit der InputBox. Toll wäre, wenn die Inputbox "über" den geöffneten Speichern unter...-Dialog gelegt werden könnte, damit es für die Anwender "plastisch" wird. Eine InputBox in Excel selbst (ohne den Speichern Unter...-Dialog im Hintergrund) ist wenig hilfreich, da evtl. vorhandene Unterordner nicht sichtbar sind. Technisch ist das (für mich) jedoch nicht umsetzbar (für andere glücklicherweise schon - siehe unten). Trotzdem thx to ruebe für diesen Vorschlag. Zitat: Ich hab mal ein wenig gesurft, aber nichts verwertbares gefunden.
So gings mir auch. Trotzdem Danke für die Mühe, Carsten! Fazit 1: Ganz ohne Disziplin kommt selbst der DAU nicht aus. Die Ordnernamen sind flexibel - Problem gelöst. Variante 2 - shell Mich hauts von den Socken. Schnell, einfach, anpassbar, komfortabel... Was habe ich schon Zeilen geschrieben, um erst das Laufwerk (ChDrive) und dann das Verzeichnis (ChDir) zu ändern - und wieder zurück! Heute habe ich frei und keinen Zugriff auf das Netzwerk des Brötchengebers; aber gleich morgen wird das im Ernstfall getestet. Mir fallen gerade 10.000 Sachen ein, wo sich genau das einsetzen lässt *träum*. Probelauf zuhause mit z. B. Code: Application.GetSaveAsFilename select_folder("D:\")
ist mehr als zufriedenstellend .Fazit 2 bleibt also noch aus - ich werde ausführlich berichten. BTW: Diese ganze Diskussion wegen einem Mausklick... Danke euch allen Frederik ------------------ DIN1055.de | Lastannahmen für Anwender Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Paulchen Mitglied Bauing./SW-Entwickler
Beiträge: 1227 Registriert: 19.08.2004 Büro: Win10 Enterprise 64bit, Office Professional Plus 2013 - Privat: Linux Mint 15, LibreOffice
|
erstellt am: 26. Jun. 2008 11:53 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, leider schaffe ich es nicht, die Sub so zu implementieren, wie ich es vorhatte - mir fehlt einfach die Zeit, andere Dinge sind meinem Boss wichtiger. Ich weiß, dieser Beitrag ist ein klein wenig OT; allerdings habe ich oben erwähnt, dass ich mich nochmal melde. Ich mag es nicht, wenn Dinge so offen im Raum stehen... Wie bereits erwähnt, werden diese ganz ausgezeichneten Codezeilen sicher zum Einsatz kommen. Besten Dank nochmal. Frederik ------------------ DIN1055.de | Lastannahmen für Anwender Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|