Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  Excel
  Speichern unter - Neuer Ordner nach Benutzereingabe VBA

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  Speichern unter - Neuer Ordner nach Benutzereingabe VBA (6405 mal gelesen)
Paulchen
Mitglied
Bauing./SW-Entwickler


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Speicherei.png

 
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 ツ




Sehen Sie sich das Profil von Thomas Harmening an!   Senden Sie eine Private Message an Thomas Harmening  Schreiben Sie einen Gästebucheintrag für Thomas Harmening

Beiträge: 2897
Registriert: 06.07.2001

Das Innerste geäussert
und aufs Äusserste verinnerlicht

erstellt am: 17. Jun. 2008 20:20    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Paulchen 10 Unities + Antwort hilfreich

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)


Sehen Sie sich das Profil von carsten-3m an!   Senden Sie eine Private Message an carsten-3m  Schreiben Sie einen Gästebucheintrag für carsten-3m

Beiträge: 950
Registriert: 08.05.2007

Excel 2010

erstellt am: 18. Jun. 2008 11:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Paulchen 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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)


Sehen Sie sich das Profil von carsten-3m an!   Senden Sie eine Private Message an carsten-3m  Schreiben Sie einen Gästebucheintrag für carsten-3m

Beiträge: 950
Registriert: 08.05.2007

Excel 2010

erstellt am: 18. Jun. 2008 17:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Paulchen 10 Unities + Antwort hilfreich

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



Sehen Sie sich das Profil von wronzky an!   Senden Sie eine Private Message an wronzky  Schreiben Sie einen Gästebucheintrag für wronzky

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Paulchen 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von Paulchen an!   Senden Sie eine Private Message an Paulchen  Schreiben Sie einen Gästebucheintrag für Paulchen

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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 >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz