PDA

Vollständige Version anzeigen : Link Commandbutton zuweisen


S3bbo
11.12.2017, 10:46
Hallo Forum,

Ich bin VBA Einsteiger und bitte deshalb um Rücksicht =)

Ausgangssituation:

Tabelle mit 20 Spalten
in Spalte 1 steht eine ID
in den anderen nur Infos
in Spalte 20 ist ein Hyperlink hinterlegt

Der Link der geöffnet werden soll befindet sich in einem Ordner. C:...

Ich möchte einem Commandbutton auf meiner UserForm einen Link zuweisen. Allerdings soll das nicht immer dersselbe Link sein, sondern der ID, welche in Textbox1 eingetragen ist, zugewiesene.

d.h. wenn ich also in Textbox1 z.B. 99 eintrage, soll bei klick auf den Commandbutton der Link mit der ID 99 geöffnet werden.

Vielen Dank für eure Hilfe

Jonas0806
11.12.2017, 11:18
Hallo,

das lässt sich doch mit einem einfachen SVERWEIS (In VBA Worksheetfunction.Vlookup) lösen.

Als Suchwert einfach den Wert der Textbox angeben.

S3bbo
11.12.2017, 12:18
wie gesagt totaler Anfänger.

kannst du mir bitte ein Sub mit konkretem Inhalt zeigen. Anpassung meinerseits ist kein Problem

Jonas0806
11.12.2017, 12:51
Hallo,

Private Sub CommandButton1_Click()
MsgBox WorksheetFunction.VLookup(ComboBox1.Value, Tabelle1.Range("A1:T100"), 20, 0)
End Sub

S3bbo
11.12.2017, 13:16
habe mittlerweile was passendes zusammengebastelt:

Private Sub CommandButton7_Click()

Dim link As String

link = Cells(zeile, 21)

ThisWorkbook.FollowHyperlink (link)

End Sub

wenn in der entsprechenden Zeile eine Internetadresse (http://...) steht öffnet er per klick die gewünschte Seite

ich will aber dass er auch z.B. Bilder öffnet
in der Tabelle ist ein link hinterlegt, der auf ein Bild verweist.
da brint er dann immer eine Fehlermeldung.

(angegebene Datei konnte nicht gefunden werden)
was ist falsch?

Jonas0806
11.12.2017, 14:18
Hallo,

die Meldung sagt es Dir ja...Dein Pfad existiert nicht.

S3bbo
11.12.2017, 18:14
wenn ich auf den link auf meiner tabelle klicke erscheint das Bild, der pfad existiert

Jonas0806
12.12.2017, 07:54
Hallo,

nun, VBA sieht das anders. Was steht denn in der Variable link? Wie und wann wird diese befüllt?

MisterBurns
12.12.2017, 08:06
Private Sub CommandButton7_Click()

Dim link As String

link = Cells(zeile, 21)

ThisWorkbook.FollowHyperlink (link)

End Sub

Du hast in deinem Eingangsposting geschrieben, dass der Link sich in Spalte 20 befindet, du verweist aber auf Spalte 21. Liegt darin vielleicht der Fehler?

S3bbo
12.12.2017, 19:37
@Jonas0806

die Zelle in der Tabelle die über den Button angesprochen werden soll enthält einen Pfad C:.... der auf ein .jpg oder .pdf verweist

der Button funktioniert allerdings nur dann, wenn wie im Anhang befindliches Bild zeigt, eine http:// Adresse in der Zelle steht


@MisterBurn

das stimmt schon so, da ich weiter Spalten hinzugefügt habe. Der zu öffnende Link befinet sich jetzt in Spalte 23

Private Sub CommandButton9_Click()

Dim link As String

link = Cells(zeile, 23)

ThisWorkbook.FollowHyperlink (link)

S3bbo
12.12.2017, 21:04
habe ein kleines Erfolgserlebnis,

wenn ich den Dateipfad in die Zelle schreibe, anstatt einen Text(versehen mit dem Link zum Pfad) klappt es.

jetzt habe ich nurnoch ein Problem.

Ich würde diesen benötigten Pfad gerne in diese Zelle eintragen lassen
d.h. wenn ich auf den Button drücke öffnet sich ein Dateipfad (als würde man etwas in einem Ordner abspeichern wollen), dann wähle ich die Datei aus und der Pfad dieser Datei würd in die Zelle übertragen.

Jonas0806
13.12.2017, 07:45
Hallo,

wenn ich den Dateipfad in die Zelle schreibe, anstatt einen Text(versehen mit dem Link zum Pfad) klappt es.

:rolleyes:....Gibt man zu einem Objekt keine explizite Eigenschaft an, wird die Standard-Eigenschaft verwendet. Diese ist bei Range .Value, nicht .Hyperlinks(1).Address

Außerdem hattest Du in Deinen vorherigen Posts davon gesprochen, dass der Link in Deiner Zelle steht, was ja ganz offensichtlich nicht stimmt.

Du solltest lernen zu Debuggen (Direktbereich, Überwachungsausdrücke) Das wäre Dir wie folgt ganz einfach aufgefallen

Private Sub CommandButton9_Click()

Dim link As String

link = Cells(zeile, 23)
debug.print link
'ThisWorkbook.FollowHyperlink (link)
end sub

S3bbo
13.12.2017, 18:05
ich arbeite mit vba seit 3 Tagen da fältt mir nichts so leicht auf ^^

Jonas0806
14.12.2017, 08:06
Guten Morgen,
ich arbeite mit vba seit 3 Tagen da fältt mir nichts so leicht auf ^^

Das versteht ja auch jeder. Du solltest Dir dann allerdings Deine Formulierungen vorher mal ganz objektiv durchlesen und beurteilen. Ein potentieller Helfer kann Deine Datei nicht sehen, wenn Du diese nicht zur Verfügung stellst.

Wir müssen dann also mit Deinen Angaben arbeiten, sind diese nicht präzise, kann es die Antwort auch nicht werden.

Also: Bitte nicht böse, sondern als konstruktiv auffassen. Und, bevor Du in VBA weiter voranschreitest, solltest Du Dir das Thema Debugging näher zu Gemüte führen.

In diesem Sinne, dran bleiben ;)

S3bbo
15.12.2017, 08:27
mir ist durchaus bewusst dass es in den meißten Fälle, weniger an der Komplexität der Problemstellung, mehr an der Art und Weise wie dies kommuniziert wird stockt. Ich werde deinen Rat beherzigen, vielen Dank für deine Hilfe =)