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, 7132 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ä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
gelöst Beim Bestätigen einer Zelle automatisch zwei neue Zeilen einfügen (5)

Frage von striding zum Thema VB for Applications ...

Batch & Shell
Text in neue 1. Zeile in Textdatei einfügen (4)

Frage von FuxxLi zum Thema Batch & Shell ...

Microsoft Office
gelöst Excel: Text in Zellbereich prüfen mit Vergleichstext ggf. mit Exact-Funktion (5)

Frage von Michi1 zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...