AW: Hyperlink in anders Tabellenblatt übertragen
20.07.2012 22:07:05
fcs
Hallo Dominic,
natürlich kann man auch einen vorhandenen Datensatz aus der Liste ins Eingabe-Blatt übertragen.
Ich hab unter mal 2 Möglichkeiten vorbereitet, wie du den Taransfer realisieren kannst.
Variante 1: Makro wird gestartet und fragt nach der Datensatz-Nr.
Variante 2: Im Blatt "Liste" wird per Doppelklick in die Zelle mit der Datensatz-Nr der Datentransfer gestartet.
Beide Varianten übergeben die Zeilennummer an die Übertragungsroutine und können auch parallel verwendet werden.
Im wesentlichen (außer beim Hyperlink) werden im Unterschied zum Transfer Eingabe nach Liste die Ausdrucke links und rechts des Gleichheitszeichens getauscht.
Gruß
Franz
'Code im Modul von Tabellenblatt "Liste"
Option Explicit
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 1 And IsNumeric(Target) Then
Call Werte_aus_Liste_holen(lngZeile:=Target.Row)
Worksheets("Eingabe").Activate
Cancel = True
End If
End Sub
'Code in einem alllgemeinen Modul der Datei.
Option Explicit
Sub SuchwertEingeben()
Dim varSuchen As Variant
Dim rngSuchen As Range
varSuchen = Application.InputBox(Prompt:="Nummer des auszulesenden Zeichensatzes", _
Title:="Datensatz einlesen", _
Type:=1)
If varSuchen False Then
Set rngSuchen = Worksheets("Liste").Columns(1).Find(What:=varSuchen, _
LookIn:=xlValues, lookat:=xlWhole)
If rngSuchen Is Nothing Then
MsgBox "Datensatz-Nr. """ & varSuchen & """ nicht gefunden!", _
vbInformation + vbOKOnly, "Datensatz einlesen"
Else
Call Werte_aus_Liste_holen(lngZeile:=rngSuchen.Row)
End If
End If
End Sub
Public Sub Werte_aus_Liste_holen(lngZeile As Long)
Dim wksEingabe As Worksheet
Dim wksListe As Worksheet
Set wksEingabe = Worksheets("Eingabe") 'Eingabetabellenblatt
'Tabellenblatt in das die Daten geschrieben werden sollen
Set wksListe = Worksheets("Liste")
With wksListe
wksEingabe.Range("B3").Value = .Cells(lngZeile, 2).Value
wksEingabe.Range("B5").Value = .Cells(lngZeile, 3).Value
wksEingabe.Range("E6").Value = .Cells(lngZeile, 4).Value
wksEingabe.Range("B10").Value = .Cells(lngZeile, 5).Value
wksEingabe.Range("E10").Value = .Cells(lngZeile, 6).Value
'usw.
' Zellewert und Hyperlink-Infos aus Spalte 7 auslesen und in _
Eingabe-Zelle C12 einfügen
With wksEingabe.Range("C12")
If .Hyperlinks.Count > 0 Then .Hyperlinks(1).Delete
.Value = wksListe.Cells(lngZeile, 7).Value
End With
With .Cells(lngZeile, 7)
If .Hyperlinks.Count > 0 Then
With .Hyperlinks(1)
wksEingabe.Hyperlinks.Add Anchor:=wksEingabe.Range("C12"), _
Address:=.Address
If .SubAddress "" Then _
wksEingabe.Range("C12").Hyperlinks(1).SubAddress = .SubAddress
If .TextToDisplay "" Then _
wksEingabe.Range("C12").Hyperlinks(1).TextToDisplay = .TextToDisplay
If .ScreenTip "" Then _
wksEingabe.Range("C12").Hyperlinks(1).ScreenTip = .ScreenTip
End With
End If
End With
End With
End Sub