Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

In Hyperlink Text aus Zelle einfügen

Frage Entwicklung VB for Applications

Mitglied: flo7689

flo7689 (Level 1) - Jetzt verbinden

21.01.2010 um 11:57 Uhr, 7237 Aufrufe, 9 Kommentare

Servus Leute,
ich bin auf dem Gebiet von VBA nicht wirklich der Fitteste! Deshalb hoffe ich, dass ihr mir helfen könnt...

Mein Problem sieht wie folgt aus:
Ich habe ein großes Excel-Datenblatt in dem in Spalte B etliche Links stehen. Diese müssen nun alle geändert werden. Und zwar muss an Stelle 20 (des Links) der Text aus Spalte D da rein (also in B1 --> D1, in B2 --> D2, ...).

Und hinter den Teil aus der Spalte D möchte ich noch einen eigenen Text einfügen ("_neu\").

Vielen Dank schon mal für eure Hilfe!
Gruß
Flo
Mitglied: kristov
21.01.2010 um 12:18 Uhr
Hallo,

etwa so (für etwa E1):
01.
=LINKS(B1;20)&D1&"_neu\"&TEIL(B1;21;LÄNGE(B1))
Vllt. kannst Du noch dazuschreiben, für welche Excelversion (obiger Code für 2007).

lg,
kristov
Bitte warten ..
Mitglied: flo7689
21.01.2010 um 14:00 Uhr
Hi Kristov,

danke für deine Antwort. Das Ganze ist für Excel 2007.

Dein Code, geht leider nicht, da die Hyperlinks "versteckt" sind. Also, in der Zelle steht ein Text, der mit einem Hyperlink kombiniert ist.

Gruß
Flo
Bitte warten ..
Mitglied: 76109
21.01.2010 um 14:13 Uhr
Hallo flo7689!

Stellt sich die Frage, ob das eine einmalige Sache ist bzw. alle Hyperlinks in Spalte B ersetzt werden sollen oder ob die Hyperlinks generell aus mehreren Teilen zusammengefügt werden sollen. Letzteres ließe sich mit einer einfachen Formel z.B. in Spalte A realisieren:

Formel z.B. in Spalte A1:
=WENN(D1<>"";HYPERLINK(LINKS(B1;20) & D1 & "_neu\" & TEIL(B1;21;LÄNGE(B1)-20);"Link");"")

Gruß Dieter
Bitte warten ..
Mitglied: flo7689
21.01.2010 um 14:21 Uhr
Hi Dieter!

Also, die Hyperlinks sollen in Spalte B ersetzt werden, deshalb wird es nicht ohne Makro gehen...

Ich muss aber noch mal was korriegieren. Und zwar soll mein Text ("_new\") erst nach dem 4. "\" eingefügt werden.

Ist das überhaupt realisierbar?

Grüße
Flo
Bitte warten ..
Mitglied: kristov
21.01.2010 um 14:23 Uhr
Dein Code, geht leider nicht, da die Hyperlinks "versteckt" sind. Also, in der Zelle steht ein Text, der mit einem
Hyperlink kombiniert ist.

Doch, das ganze funktioniert genau lt. Deiner Problemstellung. Dafür, daß Du die jetzt geändert hast, kann mein Code jetzt echt nix
Bitte warten ..
Mitglied: flo7689
21.01.2010 um 14:33 Uhr
Okay, sorry...

Aber kann sich dein Code den verwandeln, dass er danach wieder funktioniert?
Bitte warten ..
Mitglied: 76109
21.01.2010 um 14:52 Uhr
Hallo flo7689!

Zitat von flo7689:
Also, die Hyperlinks sollen in Spalte B ersetzt werden, deshalb wird es nicht ohne Makro gehen...

Ich muss aber noch mal was korriegieren. Und zwar soll mein Text ("_new\") erst nach dem 4. "\" eingefügt
werden.

Ist das überhaupt realisierbar?
Ja ist es, aber das dauert ein wenig, da ich gleich Unterwegs sein werden

Inzwischen könntest Du mal ein Vor- und Nachherbeispiel posten.

Gruß Dieter
Bitte warten ..
Mitglied: kristov
21.01.2010 um 14:58 Uhr
Naja, vba ist nicht so mein Ding.
Anhaltspunkt könnte das hier sein, dann hast Du mal die Links, ein Schleifchen zum Zählen der "\" dazu und in etwa das vba-Äquivalent zu meiner Formel, damit sollte das lösbar sein. Interessiert mich selbst, aber mir pressiert's zur Zeit etwas.
Bitte warten ..
Mitglied: 76109
23.01.2010 um 14:08 Uhr
Hallo flo7689 und Hallo kristov!

@flo7689
Da Du kein Beispiel gepostet hast, musst Du die Codes Deinen Wünschen entsprechend selbst anpassen.

Hier 3 verschiedene Versionen:
Version 1 - Gilt für den 1. Beitrag
Version 2 - Verwendet die Ersetzen-Funktion und ist beliebig einsetzbar
Version 3 - Verwendet das Zeichen "\" mit Positionsangabe

Version 1:
Spalte B X:\Text1\Text2\Text3\Text4\Text5\Text6
Spalte D \TextD
Einfügen \TextNeu
Ergebnis X:\Text1\Text2\Text3\TextD\TextNeu\Text4\Text5\Text6
01.
Const LinkSheet = "Tabelle1"        'Tabelle mit den Hyperlinks 
02.
 
03.
Const LinkSpalte = 2                'Spalte B - Hyperlink 
04.
Const PlusSpalte = 2                'Spalte D - Relativ zur Link-Spalte (B=0, C=1, D=2...) 
05.
 
06.
Const InsertText = "\TextNeu"       'Einfügen-Text 
07.
 
08.
Sub ReplaceHyperlinks() 
09.
    Dim Link As Hyperlink 
10.
     
11.
    For Each Link In Sheets(LinkSheet).Hyperlinks 
12.
        With Link 
13.
            If .Range.Column = LinkSpalte Then  'Nur Links in Spalte B 
14.
               .Address = Left(.Address, 20) & .Range.Offset(0, PlusSpalte) & InsertText & Mid(.Address, 21) 
15.
               .TextToDisplay = .Address 'Kann auch beliebiger Text sein z.B. "Link" in Zelle anzeigen 
16.
            End If 
17.
        End With 
18.
    Next 
19.
End Sub
Version 2 (Replace):
Spalte B X:\Text1\Text2\Text3\Text4\Text5\Text6
Spalte D \TextD
Einfügen \TextNeu
Ergebnis X:\Text1\Text2\Text3\TextNeu\TextD\Text4\Text5\Text6"
01.
Const LinkSheet = "Tabelle1"        'Tabelle mit den Hyperlinks 
02.
 
03.
Const LinkSpalte = 2                'Spalte B - Hyperlink 
04.
Const PlusSpalte = 2                'Spalte D - Relativ zur Link-Spalte (B=0, C=1, D=2...) 
05.
 
06.
Const SearchFor = "Text3"           'Text suchen 
07.
Const ReplaceTo = "Text3\TextNeu"   'Text ersetzen 
08.
 
09.
Sub ReplaceHyperlinks() 
10.
    Dim Link As Hyperlink 
11.
         
12.
    For Each Link In Sheets(LinkSheet).Hyperlinks 
13.
        With Link 
14.
            If .Range.Column = LinkSpalte Then  'Nur Links in Spalte B 
15.
               .Address = Replace(Left(.Address, 20) & .Range.Offset(0, PlusSpalte) & Mid(.Address, 21), SearchFor, ReplaceTo) 
16.
               .TextToDisplay = .Address  'Kann auch beliebiger Text sein z.B. "Link" in Zelle anzeigen 
17.
            End If 
18.
        End With 
19.
    Next 
20.
End Sub
Version 3 (4. "\"-Position):
Spalte B X:\Text1\Text2\Text3\Text4\Text5\Text6
Spalte D \TextD
Einfügen \TextNeu
Ergebnis X:\Text1\Text2\Text3\TextNeu\TextD\Text4\Text5\Text6"
01.
Const LinkSheet = "Tabelle1"        'Tabelle mit den Hyperlinks 
02.
 
03.
Const LinkSpalte = 2                'Spalte B - Hyperlink 
04.
Const PlusSpalte = 2                'Spalte D - Relativ zur Link-Spalte (B=0, C=1, D=2...) 
05.
 
06.
Const InsertText = "\TextNeu"       'Zusätzlicher Einfüg-Text 
07.
 
08.
Sub ReplaceHyperlinks() 
09.
    Dim Link As Hyperlink 
10.
     
11.
    For Each Link In Sheets(LinkSheet).Hyperlinks 
12.
        With Link 
13.
            If .Range.Column = LinkSpalte Then  'Nur Links in Spalte B 
14.
               .Address = GetLink(Left(.Address, 20) & .Range.Offset(0, PlusSpalte) & Mid(.Address, 21), 4, InsertText) 
15.
               .TextToDisplay = .Address  'Kann auch beliebiger Text sein z.B. "Link" in Zelle anzeigen 
16.
            End If 
17.
        End With 
18.
    Next 
19.
End Sub 
20.
 
21.
Private Function GetLink(ByVal Link As String, ByVal Position As Integer, ByRef Insert) As String 
22.
    Dim aLink As Variant 
23.
         
24.
    aLink = Split(Link, "\"):  Position = Position - 1 
25.
     
26.
    If UBound(aLink) >= Position Then aLink(Position) = aLink(Position) & Insert 
27.
     
28.
    GetLink = Join(aLink, "\") 
29.
End Function
Gruß Dieter
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
gelöst Wie kann man die Standard-Schriftart bei einfügen von Text in Word 2013 festlegen? (3)

Frage von Rene1976 zum Thema Microsoft Office ...

VB for Applications
VBA - Welchen Inhalt hat eine Zelle die mit der Taste Enft geleert wird? (3)

Frage von Juckie zum Thema VB for Applications ...

Outlook & Mail
Outlook 2016 löscht Text aus E-Mail beim senden (4)

Frage von Peacer zum Thema Outlook & Mail ...

Microsoft Office
"Microsoft Excel kann die Daten nicht einfügen" (2)

Frage von arik12 zum Thema Microsoft Office ...

Neue Wissensbeiträge
Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(5)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(5)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Viren und Trojaner

Neue Magazin Ausgabe: Malware und Angriffe abwehren

Information von Frank zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Windows Systemdateien
Warum System auf "C:" (29)

Frage von DzumoPRO zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Cisco SG200: Auf bestimmtem vLAN bestimmte TCP-Ports sperren (19)

Frage von SarekHL zum Thema LAN, WAN, Wireless ...

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Batch & Shell
gelöst Batch um Benutzer aus Sitzung abzumelden (15)

Frage von zeroblue2005 zum Thema Batch & Shell ...