Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1268to1272
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Hyperlink in einem Formular erweitern | Herbers Excel-Forum

Hyperlink in einem Formular erweitern
19.07.2012 10:49:18
Ralf

Hallo Forum,
ich habe in einer Arbeitsmappe ein Formular hinterlegt, wo ich die Email Adresse des zuständigen Ansprechpartners mit Hyperlink hinterlegt habe. Nun möchte ich bei anklicken des Hyperlinks gleich ein Subject mit eintragen. Wenn möglich soll der Inhalt der Zelle C6 (Tabelle 5) als Subject ausgelesen werden. In der Zelle B6 steht die Email Adresse.
Wie mache ich das? Ich habe es selber probiert einfach ?subject= anzuhängen, das geht aber nicht.
Hier mal zum verdeutlichen der Code:
Option Explicit

Private Sub cmdOk_Click()
Unload Me
End Sub

Private Sub lblErst2_Click()
End Sub

Private Sub lblErst3_Click()
End Sub

Private Sub lblErst4_Click()
Dim strLink1 As String
strLink1 = lblErst4.Caption
If LCase(Left(strLink1, 7)) <> "mailto:" Then
strLink1 = "mailto:" & strLink1
End If
ActiveWorkbook.FollowHyperlink Address:=strLink1, NewWindow:=True
End Sub

Private Sub UserForm_Initialize()
lblVNr.Caption = Tabelle5.Range("B1").Value 'Version
lblVDat.Caption = Tabelle5.Range("B2").Value 'Datum
lblErst1.Caption = Tabelle5.Range("B3").Value '
lblErst2.Caption = Tabelle5.Range("B4").Value 'Ersteller
lblErst3.Caption = Tabelle5.Range("B5").Value 'Telefonnr.
lblErst4.Caption = Tabelle5.Range("B6").Value 'Emailadresse
Label10.Caption = Tabelle5.Range("B7").Value 'Internetlink
End Sub

Private Sub cmdFollowHyperlink1()
Dim strLink1 As String
strLink1 = lblErst4.Caption
If LCase(Left(strLink1, 3)) = "mailto:" Then
strLink1 = "mailto:lauter_nette@leute.de?subject=Zellinhalt C6" & strLink1
End If
ActiveWorkbook.FollowHyperlink Address:=strLink1, NewWindow:=True
End Sub
Vielen Dank im Voraus für eine Rückmeldung.
Viele Grüße
Ralf

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
If LCase(Left(strLink1, 3)) = "mailto:" Then ???
19.07.2012 11:44:46
NoNet
Hallo Ralf,
ohne das zu testen, fällt mir eines auf :
If LCase(Left(strLink1, 3)) = "mailto:" Then
Das kann ja NIE sein, da mailto: aus 7 Zeichen und nicht nur aus 3 Zeichen besteht !
Ändere das mal folgendermassen ab :
If LCase(Left(strLink1, 7)) = "mailto:" Then
Habe es aber wie gesagt nicht getestet...
Gruß, NoNet

http://www.exceltreffen.de/index.php?page=224

Anzeige
AW: If LCase(Left(strLink1, 3)) = "mailto:" Then ???
19.07.2012 11:56:08
Ralf
Hallo NoNet,
hm, wenn Du das sagst, ....
So genau kenn' ich mich in VBA ned aus. So wie ich es reinkopiert habe, funktioniert es aber. Ich möchte nun nur noch den Subject Text aus der Zelle C6 mit einfügen.
Viele Grüße
Ralf
7 auf einen Streich oder doch nur 3 ??
19.07.2012 12:14:13
NoNet
Hallo Ralf,
So genau kenn' ich mich in VBA ned aus. 

Aber ich schon eingermassen ;-) - daher weise ich Dich ja auch auf den Fehler hin ...
So wie ich es reinkopiert habe, funktioniert es aber. 

Klaor, hier im Code wird ja auch zuerst der Link zur Mail zusammengesetzt - mit Prüfung auf 7 Zeichen :
Private Sub lblErst4_Click()
Dim strLink1 As String
strLink1 = lblErst4.Caption
If LCase(Left(strLink1, 7)) <> "mailto:" Then
strLink1 = "mailto:" & strLink1
End If
ActiveWorkbook.FollowHyperlink Address:=strLink1, NewWindow:=True
End Sub

Ich möchte nun nur noch den Subject Text aus der Zelle C6 mit einfügen.

Schon verstanden, der Code dazu ist ja auch vorhanden - nur eben fehlerhaft (mit Prüfung auf 3 Zeichen) !
Ergo : vorhandenen Code wie beschrieben abändern, dann funktioniert es auch mit den Nachbarn... ;-)
Salut, NoNet
Userbild
Anzeige
AW: 7 auf einen Streich oder doch nur 3 ??
19.07.2012 12:26:46
Ralf
Haalo NoNet,
ok, ok, ich habe es verstanden. Totzdem erscheint kein Inhalt im Subject.
Ich habe jetzt selber mal versucht den Code so zu erweitern mit "lblErst5", dass der Zellinhalt C6 zum Subject in der Email wird. Leider ohne Erfolg.
Der Code sieht momentan so aus:
Option Explicit
Private Sub cmdOk_Click()
Unload Me
End Sub

Private Sub lblErst2_Click()
End Sub

Private Sub lblErst3_Click()
End Sub

Private Sub lblErst4_Click()
Dim strLink1 As String
strLink1 = lblErst4.Caption
If LCase(Left(strLink1, 7)) <> "mailto:" Then
strLink1 = "mailto:" & strLink1
End If
ActiveWorkbook.FollowHyperlink Address:=strLink1, NewWindow:=True
End Sub
Private Sub lblErst5_Click()
Dim strLink11 As String
strLink11 = lblErst5.Caption
If LCase(Left(strLink1, 9)) <> "?subject=" Then
strLink11 = "?subject=" & strLink11
End If
'ActiveWorkbook.FollowHyperlink Address:=strLink11, NewWindow:=True
End Sub

Private Sub Label10_Click()
Dim strLink2 As String
strLink2 = Label10.Caption
If LCase(Left(strLink2, 3)) = "www" Then
strLink2 = "http://" & strLink2
End If
ActiveWorkbook.FollowHyperlink Address:=strLink2, NewWindow:=True
End Sub

Private Sub UserForm_Initialize()
lblVNr.Caption = Tabelle5.Range("B1").Value 'Version
lblVDat.Caption = Tabelle5.Range("B2").Value 'Datum
lblErst1.Caption = Tabelle5.Range("B3").Value 'Ersteller
lblErst2.Caption = Tabelle5.Range("B4").Value '
lblErst3.Caption = Tabelle5.Range("B5").Value 'Telefonnr.
lblErst4.Caption = Tabelle5.Range("B6").Value 'Emailadresse
lblErst5.Caption = Tabelle5.Range("C6").Value 'Subject
Label10.Caption = Tabelle5.Range("B7").Value 'Internetlink
End Sub

Private Sub cmdFollowHyperlink1()
Dim strLink1 As String
strLink1 = lblErst4.Caption
If LCase(Left(strLink1, 7)) = "mailto:" Then
strLink1 = "mailto:lauter_nette@leute.de" & strLink1 & strLink11
End If
ActiveWorkbook.FollowHyperlink Address:=strLink1 & strLink11, NewWindow:=True
End Sub

Private Sub cmdFollowHyperlink2()
Dim strLink2 As String
strLink2 = Label10.Caption
If LCase(Left(strLink2, 3)) = "www" Then
strLink2 = "http://www.test.de" & strLink2
End If
ActiveWorkbook.FollowHyperlink Address:=strLink2, NewWindow:=True
End Sub

Viele Grüße
Ralf
Anzeige
Lade bitte mal die Datei hoch
19.07.2012 12:41:47
NoNet
Hallo Ralf,
da hast Du möglicheweise mehr verschlimmbessert als gerade gebogen :-(
Kannst Du nicht einfach mal Deine Mappe hochladen, denn ich habe keine Lust Dein Bsp. mit den Labels etc. nachzubauen !
Salut, NoNet
Fehler über Fehler....
19.07.2012 13:34:05
NoNet
Hallo Ralf,
die Mappe nbzw. der Code beinhaltete ja etliche Fehler :
- einige leere Makros, die nur Speicherplatz kosten und die Lesbarkeit des Codes erschweren
- Bezug auf ein "lblErst5", das im UserForm garnicht existiert
- 2 angebliche "FollowHyperlink"-Prozeduren (cmdFollowHyperlink1 und cmdFollowHyperlink2) ohne jegliche Funktion, da sie nie aufgerufen werden (das hast Du wohl mit Private Sub Worksheet_FollowHyperlink oder Private Sub Workbook_SheetFollowHyperlink verwechselt ?)
Lösche den gesamten Code und kopiere diesen Code hinein :
Option Explicit
Private Sub UserForm_Initialize()
lblVNr.Caption = Tabelle5.Range("B1").Value 'Version
lblVDat.Caption = Tabelle5.Range("B2").Value 'Datum
lblErst1.Caption = Tabelle5.Range("B3").Value 'Ersteller
lblErst2.Caption = Tabelle5.Range("B4").Value '
lblErst3.Caption = Tabelle5.Range("B5").Value 'Telefonnr.
lblErst4.Caption = Tabelle5.Range("B6").Value 'Emailadresse
'lblErst5.Caption = Tabelle5.Range("B7").Value 'Subject
Label10.Caption = Tabelle5.Range("B8").Value 'Internetlink
End Sub
Private Sub lblErst4_Click()    'Klick auf Mailadresse
Dim strLink1 As String, strLink2 As String
strLink1 = lblErst4.Caption
strLink2 = lblErst1.Caption     'Subject aus Ersteller
If LCase(Left(strLink1, 7)) <> "mailto:" Then
strLink1 = "mailto:" & strLink1 & "?subject=" & strLink2
End If
ActiveWorkbook.FollowHyperlink Address:=strLink1, NewWindow:=True
End Sub
Private Sub Label10_Click() 'Klick auf Internet-Adresse
Dim strLink3 As String
strLink3 = Label10.Caption
If LCase(Left(strLink3, 3)) = "www" Then
strLink3 = "http://" & strLink3
End If
ActiveWorkbook.FollowHyperlink Address:=strLink3, NewWindow:=True
End Sub
Private Sub cmdOk_Click()
Unload Me
End Sub
Der Betreff der Mail wird nun aus dem Feld "lblErst1" (=Ersteller) des Userforms gebildet, das kannst Du natürlich noch anpassen !
Gruß, NoNet

http://www.exceltreffen.de/index.php?page=224

Anzeige
AW: Fehler über Fehler....
19.07.2012 14:22:31
Ralf
Hallo NoNet,
oh, ....... so viel Probleme?
Vielen, vielen Dank für Deine Unterstützung.
Ein Problem bleicht noch: Ich möchte ja den Text aus der Zelle B7 als Subject einfügen.
Lösche ich nun vor der Variable lblErst5 das Zeichen ' und schalte diese Variable aktiv erscheint die Fehlermeldung "Fehler beim kompilieren, Variable nicht definiert".
Woran liegt dies?
Den Code von Private Sub lblErst4_Click (strLink2) habe ich natürlich ebenfalls auf lblErst5 geändert.
Ich hoffe, Du kannst mir dies noch kurz beantworten.
Viele Grüße
Ralf
Den Zusammenhang verstehe ich nicht.
Anzeige
NoNet antwortet leider nicht ...... (owT)
23.07.2012 07:43:02
Ralf
..
AW: NoNet antwortet leider nicht ...... (owT)
23.07.2012 09:01:03
Matthias L
Hallo Ralf
Zitat:
Lösche ich nun vor der Variable lblErst5 das Zeichen ' und schalte diese Variable aktiv erscheint die Fehlermeldung "Fehler beim kompilieren, Variable nicht definiert".
Das ist vollkommen korrekt so!
lblErst5 ist der Name eines (bei Dir nicht vorhandenen Label)
Das ist keine Variable.
Du musst im Userform ein neues Label erstellen. Diesem Control den Namen lblErst5 geben.
Nun kannst Du das Hochkomma entfernen und es kommt keine Fehlermeldung mehr.
Gruß Matthias
AW: NoNet antwortet leider nicht ...... (owT)
23.07.2012 11:56:24
Ralf
Hallo Mathias,
danke für Deine Unterstützung.
Geht leider nicht.
Sei's drum. Muss auch so reichen.
Viele Grüße
Ralf
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige