Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Pfad der aktiven Exceldatei auslesen und diesen als Startordner im Filedialog festlegen

Frage Entwicklung VB for Applications

Mitglied: fcmfanswr

fcmfanswr (Level 1) - Jetzt verbinden

20.08.2007, aktualisiert 22.08.2007, 25845 Aufrufe, 18 Kommentare

Hallo,

ich arbeite mit vba unter excel.
Ich habe einen Filedialog zur Ordnerauswahl.
Wenn der Filedialog öffnet befindet er sich standartmäßig im Ordner "Eigene Dateien". Ich würde aber als Startordner gerne den Ordner haben, wo auch die Excel-Datei abgelegt ist.

Geht das?wenn ja wie?

Vielen Dank im Vorraus.
Mitglied: SvenGuenter
20.08.2007 um 15:52 Uhr
Solltest du dem File System Object den Ordner mitgeben und diesen dann immer instanzieren
Bitte warten ..
Mitglied: fcmfanswr
20.08.2007 um 16:10 Uhr
ja, nur muß ich ja erstmal den ordner rauskriegen, der ist ja bei jedem mal anders!
Bitte warten ..
Mitglied: SvenGuenter
20.08.2007 um 18:32 Uhr
ahhh nun weiß ich was du meinst. Es geht darum das das Excelsheet immer aus einem anderen Ordner aufgerufen wird. Nun soll dien Script erkennen aus welchem Ordner es aufgerufen wurde und dieses als Standardpfad Voreinstellen. Sehe ich das so richtig?
Bitte warten ..
Mitglied: bastla
20.08.2007 um 19:33 Uhr
Hallo fcmfanswr!

Eine Frage vorweg: Bist Du Geheimnisträger, oder darfst Du ev doch etwas über die Excel-Version oder sogar ein Stück Code preisgeben?
Wenn ich von einem Standarddialog neueren Datums ausgehe, könnte Dir vielleicht etwas in der Art helfen:
01.
objFileDialog.InitialFileName = ActiveWorkbook.Path & "\"
Sollte doch nicht nur die Auswahl eines Ordners, sondern vielleicht einer xls-Datei das Ziel sein, dann etwa:
01.
objFileDialog.InitialFileName = ActiveWorkbook.Path & "\*.xls"
Wenn es allerdings, wie SvenGuenter vermutet, überhaupt nur darum geht, den Pfad der aktiven Exceldatei auszulesen, dann würde ein Beitragstitel "Pfad der aktiven Exceldatei auslesen" vermutlich besser passen ...

Grüße
bastla
Bitte warten ..
Mitglied: fcmfanswr
20.08.2007 um 20:35 Uhr
vielen dank für die Antworten.

ja ich geb ja zu, dass das thema nicht ganz optimal formuliert ist, allerdings ist mir erst später das problem so richtig klar geworden.
ja es geht um den pfad der aktiven (geöffneten)excel datei.
@bastla: die lösung hab ich schon probiert leider funktioniert das nicht.b ei mir ist immer: ActiveWorkbook.Path = "" . spricht da steht nie was drin.
ich muß noch dazu sagen, die excel datei die ich ausführe ist eine excel- vorlage, sprich eine .xlt-datei, vllt. hat es ja damit zu tun?

hat jemand noch ne ahnung, wie man es machen kann?
Bitte warten ..
Mitglied: SvenGuenter
20.08.2007 um 21:36 Uhr
Dim test
test = CurDir()
MsgBox (test)



versuche es mal damit damit bekommst meines Wissens den aktuellen Pfad des Excelsheets welches du gerade auf hast ;o)
Bitte warten ..
Mitglied: SvenGuenter
20.08.2007 um 21:39 Uhr
Dim test
test = CurDir()
MsgBox (test)



versuche es mal damit damit bekommst meines
Wissens den aktuellen Pfad des Excelsheets
welches du gerade auf hast ;o)

Bevor ich es vergesse mit Office 2003 und PlugIn für 2007. Ich weiß nicht ob andere VBA versionen oder Excel versionen das auch können
Bitte warten ..
Mitglied: bastla
20.08.2007 um 21:49 Uhr
Hallo fcmfanswr!

Mittlerweile nehme ich zwar an, Dein Problem verstanden zu haben, kann Dir auch eine Erklärung dafür anbieten, warum der Pfad nicht ausgelesen werden kann, habe aber leider keinen Lösungsweg parat.

Auch wenn's nicht wirklich hilft: "ActiveWorkbook.Path" oder "ThisWorkbook.Path" können nur den Wert "" haben, da das Ausführen der xlt-Datei ja (bestimmungsgemäß) eine neue xls-Datei entstehen lässt, welche aber noch nicht gespeichert wurde (daher gibt es noch keinen Speicherpfad). Die xlt-Datei tritt dabei aber (zumindest programmiertechnisch verwertbar) eigentlich nicht in Erscheinung.

Als (leider äußerst schwacher) Trost: Du bist nicht der Erste, der dieses Problem hatte (siehe zB http://www.ozgrid.com/forum/showthread.php?t=26789) ...

@SvenGuenter
Mit CurDir() wirst Du in diesem (speziellen) Fall vermutlich nur den in den Optionen eingetragenen Standardspeicherpfad erhalten ...

Grüße
bastla
Bitte warten ..
Mitglied: SvenGuenter
20.08.2007 um 22:10 Uhr
hi bastla.

Ich habe das gerade versucht habe ein und die selbe exceldatei auf verschiedenen Laufwerken und da in verschiedenen Ordnern abgelegt die Messagebox hat mir jedesmal den Ort der Datei ausgespuckt von wo Sie geöffnet wurde. Kannst du auch mal testen. Würde mich interessieren ob das nur bei mir ist ( dann würde es an den AddIns liegen ) oder auch bei anderen klappt. Sprich die methode wäre von der funktionalität anders von Version zu Version und das wäre schon gut zu wissen

CurDir gibt nämlich meines Wissens den Pfad an der als Verzeichnis gilt in dem die Datei geöffnet wurde. Wenigstens steht das so in der MSDN
Bitte warten ..
Mitglied: bastla
20.08.2007 um 22:25 Uhr
Hallo SvenGuenter!

Und Du hast das mit einer xlt-Datei getestet (am besten aus dem Explorer mit Doppelklick gestartet)?

Grüße
bastla
Bitte warten ..
Mitglied: SvenGuenter
20.08.2007 um 22:33 Uhr
öhm nein sorry mit einer xls

mache ich aber nachher nochmal.


EDIT
Also mit einer xlt klappt es nicht. Ich bin nun einen anderen Weg am probieren melde mcih wenn der klappt oder auch nicht.
Bitte warten ..
Mitglied: fcmfanswr
21.08.2007 um 08:05 Uhr
vielen dank, dass ihr euch so damit auseinandersetzt.
das problem habt ihr richtig verstanden.
ich glaube aber mitlerweile, dass es garnicht möglich ist.
Bitte warten ..
Mitglied: SvenGuenter
21.08.2007 um 13:03 Uhr
Doch ich habe da gerade was gefunden was ich teste. Man kan über die Windows API das Verzeichnis auslesen welches der Explorer hatte als das Klickereignis stattgefunden hat. Nun nur noch testen wie und ob es echt klappt. Werde das dann hier direkt posten
Bitte warten ..
Mitglied: fcmfanswr
21.08.2007 um 13:08 Uhr
ok, cool, bin gespannt. hoffe, dass es klappt
Bitte warten ..
Mitglied: SvenGuenter
21.08.2007 um 17:40 Uhr
Hallo,

nach einigem Hin und Her habe ich auch keine Lösung gefunden. Selbst bei Microsoft selber habe ich keinen Lösungsansatz bekommen. Dort kommen die Sogar noch mit einer ganz anderen Methode. Und zwar ein xls erzeugen dieses Speichern dann umbenennen als xlt und dieses kann kann aufgerufen werden. Das Problem ist wohl das innerhalb der Vorlage der Erstellungsort der Vorlage gespeichert wird. Dies steht als Information im Dokument drin. Nicht wie bei der xls der Speicherort. Diesen Erstellungsort liest du mit den bekannten Funktionen aus. Tut mir leid wenn ich dir da nicht weiterhelfen konnte. Die einzige alternative sehe ich das man da was in C oder C++ macht was aber glaube ich den Rahmen sprengen würde. Aber das Problem ist klasse und ich werde mal versuchen das weiter zu lösen.
Bitte warten ..
Mitglied: fcmfanswr
22.08.2007 um 08:03 Uhr
ok, vielen dank für deine mühe.
ich hab auch keine lösung gefunden und nehme vorerst als vorlage keine .xlt sondern eine normale .xls.
Bitte warten ..
Mitglied: wakko
22.08.2007 um 16:33 Uhr
Okay, habe einen Ansatz denke ich (schnell und schmutzig):
01.
Application.RecentFiles.Item(1).Path
liest den Pfad der zuletzt geöffneten Datei aus (auch xlt-Dateien!)
Also in die xlt folgendes Macro rein:
01.
Sub auto_open() 
02.
Application.ActiveWorkbook.SaveAs Replace(Application.RecentFiles.Item(1).Path, ".xlt", ".xls") 
03.
End Sub
Dann wird die xls im entspr. Ordner unter dem Namen (ohne Dateiendung) der xlt gespeichert...
Vieleicht hilft das ja noch...
Gruß,
Henrik

edit: @bastla: schade, klar, hab das Template einmal gespeichert, deswegen lief das bei mir....
Bitte warten ..
Mitglied: bastla
22.08.2007 um 17:56 Uhr
@wakko

Nette Idee, aber wenn die xlt "geöffnet" würde, hätten wir das Problem nicht.

Leider dient sie (als Vorlage) nur der Erstellung einer neuen xls und findet daher den Weg in die Liste der "RecentFiles" nur, wenn sie über Excel (über "Datei / Öffnen") tatsächlich zum Bearbeiten geöffnet, nicht aber, wenn sie nur im Explorer per Doppelklick gestartet wird ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Excel - Zellen aus anderen Exceldateien auslesen
gelöst Frage von Cubic83Microsoft Office10 Kommentare

Hallo, ich stecke mal wieder bei einem Excel Problem fest und hoffe ihr könnt mir helfen. Ich habe in ...

Windows Netzwerk
Aktive Computer Gruppenrichtlinie auslesen
gelöst Frage von Markus1977Windows Netzwerk1 Kommentar

Mit dem Befehle gpresult /r kann man die Gruppenrichtlinien anzeigen lassen, jedoch betrifft das nur für die Benutzer Gruppenrichtlinien. ...

Windows Server
Alle aktiven User per PowerShell auslesen
gelöst Frage von ITler891Windows Server1 Kommentar

Hallo zusammen, ich würde gerne alle aktiven User per PowerShell auslesen und diese in eine csv Datei exportieren. Danke ...

Microsoft Office
Exceldatei: Erstellungsdatum auslesen und in Spalte integrieren per VBA
gelöst Frage von abuelitoMicrosoft Office2 Kommentare

Hallo an Alle, ich wieder mal mit einem Problem. In einem Ordner habe ich ca 500 xls Dateien mit ...

Neue Wissensbeiträge
Batch & Shell

Open Object Rexx: Eine mittlerweile fast vergessene Skriptsprache aus dem Mainframebereich

Information von Penny.Cilin vor 4 StundenBatch & Shell6 Kommentare

Ich kann mich noch sehr gut an diese Skriptsprache erinnern und nutze diese auch heute ab und an noch. ...

Humor (lol)

"gimme gimme gimme": Automatischer Test stolpert über Easter Egg im man-Tool

Information von Penny.Cilin vor 6 StundenHumor (lol)6 Kommentare

Interessant, was man so alles als Easter Egg implementiert. Ist schon wieder Ostern? "gimme gimme gimme": Automatischer Test stolpert ...

MikroTik RouterOS

Mikrotik - Lets Encrypt Zertifikate mit MetaROUTER Instanz auf dem Router erzeugen

Anleitung von colinardo vor 22 StundenMikroTik RouterOS8 Kommentare

Einleitung Folgende Anleitung ist aus der Lage heraus entstanden das ein Kunde auf seinem Mikrotik sein Hotspot Captive Portal ...

Sicherheit

Sicherheitslücke in HP-Druckern - Firmware-Updates stehen bereit

Information von BassFishFox vor 22 StundenSicherheit1 Kommentar

Ein weiterer Grund, dass Drucker keinerlei Verbindung nach "auswaerts" haben sollen. Unter Verwendung spezieller Malware können Angreifer aus der ...

Heiß diskutierte Inhalte
Windows Server
RDP macht Server schneller???
Frage von JaniDJWindows Server17 Kommentare

Hallo Community, wir betrieben seit geraumer Zeit diverse virtuelle Maschinen und Server mit Windows Server 2012. Leider haben wir ...

Windows 10
Windows 10 dunkler Bildschirm nach Umfallen
Frage von AkcentWindows 1015 Kommentare

Hallo, habe hier einen Windows 10 Rechner der von einem User umgefallen wurde (Beine übers Knie, an den PC ...

Server-Hardware
Braucht ein Server eine Grafikkarte?
gelöst Frage von lcer00Server-Hardware14 Kommentare

Hallo zusammen, habe gerade 3 Stunden gebraucht, um herauszubekommen, dass die Remotemanagement-Console von Intel (RMM4) nur funktioniert, wenn die ...

Windows 10
Bitlocker nach Verschlüsselung nicht mehr aufrufbar!
gelöst Frage von alexlazaWindows 1013 Kommentare

Hallo, ich besitze ein HP ZBook 17 G4 mit einem Windows 10 Pro Betriebssystem. Bei diesem Problem handelt sich, ...