Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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
GELÖST

Mit VBA einen Speicherpfad aus Auswahlfenster definieren (EXCEL)

Frage Entwicklung VB for Applications

Mitglied: Joerg18470

Joerg18470 (Level 1) - Jetzt verbinden

22.09.2012 um 09:34 Uhr, 25069 Aufrufe, 11 Kommentare

Hallo zusammen,
Ich habe in einer Tabelle einen Speicherbutton eingebaut und möchte noch ein Auswahlfenster für diesen einrichten.

Das ganze stelle ich mir so vor das ich einen Speicherpfad in einer der Excelzellen hinterlege, an den dann auch der Speicherbutton die Tabelle speichert. Zur Zeit ist es so das ich in dem Button einen festen Pfad eingetragen habe, jetzt möchte ein Kollege von mir auch diese Tabelle und er soll sich dann seinen Pfad via Auswahlfenster in einer Zelle eintragen können, da ja jeder andere Pfade zum speichern nutzen möchte. Wie könnte man das dann so bewerkstelligen ?
Mitglied: bastla
22.09.2012, aktualisiert um 11:53 Uhr
Hallo Joerg18470!

Wozu soll das Auswahlfenster gut sein - wenn ohnehin der Pfad in einer Zelle stehen soll, kann er dort doch auch einfach manuell eingetragen werden ...

... ansonsten:
01.
Pfad = Application.GetSaveAsFilename 
02.
If Pfad <> "Falsch" Then Range("C4").Value = Pfad
Grüße
bastla

P.S.: Falls das noch nicht genügt, solltest Du die Frage als "nicht gelöst" markieren ...
Bitte warten ..
Mitglied: Joerg18470
22.09.2012 um 12:13 Uhr
[Code]
Sub MappeSpeichern()
MsgBox "C:\Users\Joerg\Documents\Stunden " & FileNameToken & ".xlsm"
ActiveWorkbook.SaveAs Filename:="C:\Users\Joerg\Documents\Stunden " & FileNameToken & ".xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub
[/code]
Anstatt dieses fest eingetragenen Pfads möchte ich gern das man sich irgendwo seinen persönlichen Pfad auswählen kann der dann in diesem Code anstatt des festen Pfades genommen wird. Sicher kann man den Pfad auch manuell in einer Zelle eingeben. Ich dachte aber das es komfortabler ist wenn man sich diesen in einer Zelle auswählen kann. Via Hyperlink Eintrag sollte es natürlich auch funktionieren das da der richtige Pfad drin steht, nur muß dieser dann auch vom oben stehenden Code übernommen werden.
Bitte warten ..
Mitglied: bastla
22.09.2012 um 15:52 Uhr
Hallo Joerg18470!

Um tatsächlich nur einen Pfad auszuwählen und in einer Zelle zu hinterlegen etwa so:
01.
Sub PfadFestlegen() 
02.
Set Fld = CreateObject("Shell.Application").BrowseForFolder(0, "Datei oder Verzeichnis wõhlen", 16, 17) 
03.
If Not TypeName(Fld) = "Nothing" Then 
04.
    Pfad = Fld.Self.Path 
05.
End If 
06.
Range("C4").Value = Pfad
Verwenden kannst Du den Pfad dann so:
01.
Sub MappeSpeichern() 
02.
Pfad = Range("C4").Value 
03.
If Pfad <> "" Then 
04.
    ActiveWorkbook.SaveAs Filename:=Pfad & FileNameToken & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False 
05.
Else 
06.
    MsgBox "Es wurde noch kein Pfad festgelegt!" 
07.
End If 
08.
End Sub
Grüße
bastla
Bitte warten ..
Mitglied: Joerg18470
23.09.2012 um 11:21 Uhr
Hallöchen,
mit dem Pfad festlegen das geht schon erst mal prima, nur mit dem speichern harpert da noch was. Die Datei lässt sich nicht finden, aber wenn ich nochmals speichern klicke bekomme ich die Antwort das die Datei schon vorhanden ist. Ich habe schon alle möglichen Anzeigeoptionen versucht nur kann ich diese nicht finden. Denke da habe ich noch was falsch gemacht.Was bedeutet eigentlich die 16,17 bei dir unter Verzeichnis auswählen ? Habe mir jetzt ein Buch gekauft "Einstieg in VBA mit EXCEL" von Thomas Theis nur habe ich da eine solche Deklaration noch nicht gefunden.
Bitte warten ..
Mitglied: Joerg18470
23.09.2012 um 11:35 Uhr
Habe die Datei gefunden und denke mal somit auch den Fehler, er speichert bei einem ausgesuchten Pfad :

D:\Joerg\Desktop

eine Datei unter D:\Joerg mit dem Namen DesktopSeptember.xlsm

so müßte ich doch nur noch irgendwo eine Trennung rein machen das er den z.B Desktop noch zum Pfad nimmt und nicht schon als Namen der Datei. Da kann doch nur irgendwo noch ein Kürzel fehlen.
Trotzdem erstmal schon vielen Dank bis hierher, du hast mir schon sehr viel geholfen... DANKE !!!
Bitte warten ..
Mitglied: Joerg18470
23.09.2012 um 11:52 Uhr
Wenn ich den Pfad per Hand einfüge und nach dem Desktop noch den Bachslash anhänge funktioniert das ganze wirklich prima.
Bitte warten ..
Mitglied: Joerg18470
23.09.2012 um 12:05 Uhr
So habe es hinbekommen. Habe in diesem Fall bei der Namensdeklaration nur noch den Bakslash hinzufügen lassen und es geht prächtig, hier der gesamte Code nochmal komplett für Mappe speichern:

[QUOTE]
Sub MappeSpeichern()
Pfad = Range("G7").Value & "\"
MsgBox Pfad & FileNameToken & ".xlsm"
If Pfad <> "" Then
ActiveWorkbook.SaveAs Filename:=Pfad & FileNameToken & ".xlsm", FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
Else
MsgBox "Es wurde noch kein Pfad festgelegt!"
End If

End Sub



Private Function FileNameToken() As String

Dim i As Integer
With ThisWorkbook
For i = 2 To 13
If .Sheets(i).Cells(40, 3).Value = 0 Then
If i = 1 Then
FileNameToken = .Sheets(i).Name
FileNameToken = "Keiner"
Exit Function
Else
FileNameToken = .Sheets(i - 1).Name
Exit Function
End If
End If
Next i
End With
End Function
[/QUOTE]

Mit welchem Befehl hast du eine solch schöne Codeauflistung hier eingefügt ?
Danke nochmal und somit betrachte ich diesen Thread als gelöst !!!
Bitte warten ..
Mitglied: 76109
23.09.2012, aktualisiert um 12:13 Uhr
Hallo Joerg18470!

Yepp, in etwa so:
01.
If Not TypeName(Fld) = "Nothing" Then 
02.
    Pfad = Fld.Self.Path & "\" 
03.
End If
Gruß Dieter

PS. In Deinem letzten Code ist der Backslash an der falschen Stelle plaziert. Der Test mit 'If Pfad <> "" Then..' funktioniert dann nicht mehr, weil im Fehlerfall der Pafd "\" lauten würde.
Bitte warten ..
Mitglied: Joerg18470
23.09.2012 um 13:15 Uhr
01.
> If Not TypeName(Fld) = "Nothing" Then 
02.
>     Pfad = Fld.Self.Path & "\" 
03.
> End If 
04.
> 

Du hast Recht !
Wenn ich jetzt deinen Code versuche bricht der bei " Pfad = Fld.Self.Path & "\" " mit Laufzeitfehler ab. Objekt ist erforderlich.
Kann es sein das der Befehl objFolder.Self.Path heißen müßte ?
Bitte warten ..
Mitglied: Joerg18470
23.09.2012, aktualisiert um 13:49 Uhr
Sorry Dieter,
hatte nur die falschen Füßchen

Alles in Butter und nochmal Danke Euch beiden

Gruß Jörg
Bitte warten ..
Mitglied: bastla
23.09.2012, aktualisiert um 13:30 Uhr
Hallo Joerg18470!

Das Objekt "Fld" wird in der Zeile
Set Fld = CreateObject("Shell.Application").BrowseForFolder(0, "Datei oder Verzeichnis wõhlen", 16, 17)
erzeugt - wenn es diese Zeile gibt, sollte es auch das Objekt geben ...

Grüße
bastla

[Edit] Hatte Deinen letzten Kommentar noch nicht gesehen ... [/Edit]
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
gelöst Excel-Formel oder VBA (7)

Frage von nicki01 zum Thema Microsoft Office ...

VB for Applications
gelöst VBA Excel Skript - Hilfe! (1)

Frage von 133202 zum Thema VB for Applications ...

VB for Applications
SNMP Abfrage in EXCEL über VBA (7)

Frage von SebastianL zum Thema VB for Applications ...

Basic
gelöst Excel VBA - speichern, senden, Pfad angeben (3)

Frage von next01de zum Thema Basic ...

Neue Wissensbeiträge
Humor (lol)

Wo ist der Fehler auf dem Bild?

(3)

Information von the-buccaneer zum Thema Humor (lol) ...

Windows Update

Offenbar erneutes MS-Update mit Fehlerschleife (2012 R2)

Information von VGem-e zum Thema Windows Update ...

Windows Installation

Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen

(14)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Heiß diskutierte Inhalte
Exchange Server
gelöst Proxy Server Settings Cloud + EWS (17)

Frage von SomebodyToLove zum Thema Exchange Server ...

Windows Server
PDF Editor für den Einsatz auf Terminal Servern (16)

Frage von kwame501 zum Thema Windows Server ...

Windows Installation
Unorthodoxer Weg, um an einen Offline-Installer für Adobe Flash zu kommen (14)

Tipp von beidermachtvongreyscull zum Thema Windows Installation ...

Virtualisierung
Unterschied zwischen VDI und Terminal Server Lösungen (13)

Frage von tukawi06 zum Thema Virtualisierung ...