Browser Button in Excel

Hallo!

Ich habe ein CommandButton als Browser Button programmiert. Hier der Code dazu:

Private Sub cmdBrowser_Click()

Dim strDatei As String
strDatei = Application.GetOpenFilename

End Sub

Weiß jemand was mir in dem Code fehlt, damit die ausgewählte Datei auch angezeigt wird??
Der Button ist völlig funktionslos ich kann zwar alle Dateien sehen aber es gibt keine Reaktion auf meine Auswahl…

Danke & Gruß
Krissy

Hi Krissy,
da ich selbst in Sachen VBA nicht so bewandert bin habe ich mal nen Kollegen gefragt, der darin ziemlich fit ist… hier seine Antwort:

Kommt drauf an was er damit machen möchte.
Ich lese die Dateien für den Tagesticker auch mit dem FileOpen-Dialog aus.
Den Rückgabewert schreibe ich dann in ein Textfeld auf einem Formular:

Function Datei_choose()

Dim fd As FileDialog
Dim Dateiauswahl As Variant

Set fd = Application.FileDialog(msoFileDialogFilePicker)

With fd
.InitialFileName = „C:\Test“

(Hier kann der Standardpfad für den Fileopen-Dialog übergeben werden)

.AllowMultiSelect = False

(Nur einfache Auswahl, nicht mehrere Dateien, sonst mit true umschaltbar)

If .Show = -1 Then

(.Show öffnet den Filedialog und wenn nix ausgewählt wurde oder abgebrochen wurde ist die Rückgabe = 0, bei -1 erfolgte Auswahl)

For Each Dateiauswahl In .SelectedItems

(.SelectedItems ist quasi ein kleiner Recordset, welcher alle ausgewählten Dateien (hier nur eine mögliche) beinhaltet -> kompletter Dateipfad Bsp:

C:\Test\Testdatei.txt
Me.Imp_Text = Dateiauswahl

(Me.Imp_Text ist mein Formularfeld, an welches ich den Inhalt des Fileopen übergebe. Hier eine beliebiege Variable als String declariert und du kannst damit rum spielen :o)

Next Dateiauswahl

Else

Me!Imp_Text = „(keine)“

(Behandlung des Textfeldes auf Formular wenn keine Auswahl erfolgt ist)

End If

End With

myexit:
DoCmd.Hourglass False

(Standarfehlerbehandlung…)

Exit Function

myerror:
MsgBox Err.Description
Resume myexit
End Function

Hoffe das hilft :o)

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hi Krissy,

hier noch eine kleine Ergänzung meines Kollegen…:

Mit dem Inhalt des Textfeldes auf dem Formular steuere ich nun den Import in eine Datenbank.
Man kann hier aber auch mit der FileOpen() Anweisung die Datei öffnen, oder mit FileCopy() die Datei kopieren, oder mit Kill() die Datei löschen, oder oder oder… ) Hier kommt der Part, dass ich nicht weiss was er damit tun möchte ;o)
Der Inhalt der Textvariable (in meinem beispiel der Inahlt des textfeldes) ist der komplette Dateipfad der ausgewählten Datei. Alle Funktionen die diesen benötigen können das nun mit der Variable durchführen.
mfg SBI_Fabi

Sorry, keine Ahnung
Hallo!

Ich habe ein CommandButton als Browser Button programmiert.
Hier der Code dazu:

Private Sub cmdBrowser_Click()

Dim strDatei As String
strDatei = Application.GetOpenFilename

End Sub

Weiß jemand was mir in dem Code fehlt, damit die ausgewählte
Datei auch angezeigt wird??
Der Button ist völlig funktionslos ich kann zwar alle Dateien
sehen aber es gibt keine Reaktion auf meine Auswahl…

Danke & Gruß
Krissy

Hi Martin!

Erstmal vielen Dank für deine Mühe!!

Also, was ich haben möchte ist ein Browser Button, über dem man eine Datei auswählen kann und diese dann als Icon zum anklicken im Excel Sheet angezeigt wird, da das Formular rumgeschickt wird und die ausgewählten Dateien sichtbar und zum anklicken bereit stehen sollten…
Mein Formular ist nämlich keine UserForm, sondern in einem Sheet integriert.

Vielleicht haben deine Kollegen dazu auch eine tolle Idee =)

Danke & Gruß
Krissy

Hast du denn den Button auf deine Programmierung zugewiesen? Ich meine, die beiden miteinander verknüpft?
LG

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Sorry,

das übersteigt etwas meine Kompetenz > und ich hab (zwecks Wechsel des Aufgabengebiets) schon lange nicht mehr mit VBA gearbeitet > hoffe aber
jemand anders kann Dir weiterhelfen!

Gruß

Alex

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Ja habe ich…
Hab jetzt mal was gefunden was mir den Pfad anzeigt

Sub cmdBrowser_Click()
Dim strPfad As String, strFile
strPfad = ThisWorkbook.Path
'ChDrive Left(strPfad, 1)
If Right(strPfad, 1) „“ Then strPfad = strPfad & „“
ChDir strPfad
strFile = Application.GetOpenFilename(„Alle Dateien (*.*), *.*“)
If strFile = „“ Or strFile = False Then Exit Sub

Range(„N12“) = strFile
End Sub

Weißt du vielleicht wie sich der Code umschreiben lässt damit der File Icon angezeigt wird und nicht der Pfad??

Gruß
Krissy

Hallo Krissy!
Was soll denn mit der ausgewählten Datei passieren? Soll sie in Excel angezeigt werden, oder mit einem anderen Programm geöffnet werden?

Falls es sich um eine Excel-Arbeitsmappe handelt, müsstest du folgende Codezeile hinzufügen, um die Datei zu öffnen:

Application.Workbooks.Open strDatei
Gruß Tom

Hallo Tom!

Habe dein Vorschlag mal getestet, bei mir kommt aber in dieser Zeile eine Fehleremldung…Und ich möchte nicht, dass die Datei gleich geöffnet wird (wie ich es deinem Makro verstanden habe)…möchte dass die ausgewählte Datei als Icon im Formular sichtbar erscheint damit andere die ausgewählte Datei per Klick öffnen können…ist das überhaupt möglich in Excel??

Gruß
Krissy

Hallo Krissy!
Ich wusste es bis gerade selbst nicht, aber das ist möglich. Zuerst der manuelle Weg zum besseren Verständnis:

  1. Die Zelle markieren, in der das Icon erscheinen soll.
  2. Einfügen->Objekt->Aus Datei erstellen->Durchsuchen und die Datei auswählen
  3. Als Symbol anhaken
  4. Ok

In einem Makro sähe das folgendermaßen aus:

Private Sub CmdBrowse_Click()
Dim strDatei As String
strDatei = Application.GetOpenFilename
ActiveSheet.Range(„C3“).Select

strIcon = Application.Path & „\excel.exe“
ActiveSheet.OLEObjects.Add Filename:=strDatei, Link:=False, DisplayAsIcon:=True, IconLabel:=strDatei, IconFileName:=strIcon, IconIndex:=0
End Sub

Gruß Tom

Hi Tom!

Danke für deine Hilfe, dass Makro ist sicher na dran an dem was ich mir vorstelle…es erscheint aber eine Fehelermeldung bei strIcon. Als was muss ich dass definieren??Und ich möchte Zugriff zu allen Dateien nicht nur Excel haben…

Du bist grad dabei mein Leben zu retten!!!

Vielen Danke & Gruß!
Krissy

Hallo Krissy!
strIcon ist der Pfad zum Icon, dass benutzt werden soll. strIcon ist also ein String:

Dim strIcon As String

Das Ganze sollte genauso mit anderen Dateien funktionieren. Nur das Icon ist dann vielleicht etwas unpassend. Was für Dateien sollen es denn sein? Man müsste ein .exe File finden, dessen Ort auf der Festplatte bekannt ist und von dem man das Icon klauen kann. Dessen Pfad muss dann in strIcon rein.
Gruß Tom

Hallo Krissy,

du bekommst mit deinem Code nur den Öffen Dialog angezeigt, es fehlt der eigentliche Öffnungsvorgang:

Workbooks.Open Filename:=strDatei

bau diese Zeile am Ende deiner Sub ein - müsste funktionieren

Private Sub cmdBrowser_Click()

Dim strDatei As String
strDatei = Application.GetOpenFilename
Workbooks.Open Filename:=strDatei
End Sub

Gruß
Anja