Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Duplikate (automatisch) verlinken bzw. Bezug herstellen
#1
Guten Abend,

nach längerer Recherche ohne das gewünschte Ergebnis, bin ich auf dieses Forum gestoßen.
Ich hatte mir vorgenommen Duplikate in einer Spalte beim Eintragen sichtbar zu machen. Das hat auch super geklappt und erfüllt genau das was ich mir vorgestellt habe.

Nun aber zu meiner Frage: Ich möchte sofern dies in Excel möglich ist, sobald ein doppelter Eintrag vorgenommen wird, automatisch einen Bezug bzw. eine Verlinkung zu dem Eintrag, welcher bereits in
der Spalte existiert, herstellen. Beispielsweise existiert der Name Uwe in Zeile 5. Gebe ich in Zeile 30 ebenfalls den Namen Uwe ein, dann soll hier eine Verlinkung bzw. ein Sprung in die Zeile vorgenommen werden, in welcher der
Name bereits existiert.

Über Antworten würde ich mich sehr freuen :)
Antworten Top
#2
Hallo,

folgender Code kommt in das schon vorhandene VBA-Modul des entsprechenden Tabellenblattes:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim lngZ As Long
  lngZ = Application.Match(Target.Value, Target.EntireColumn, 0)
  If lngZ < Target.Row Then
    On Error Resume Next
    Application.EnableEvents = False
    Target.Formula = "=" & Cells(lngZ, Target.Column).Address(0, 0)
    Application.EnableEvents = True
    On Error GoTo 0
  End If
End Sub

Gruß Uwe
Antworten Top
#3
Hallo Uwe,
vielen Dank für die schnelle Antwort! Ich habe die Spalte über "Bedingte Formatierung" auf Duplikate gefiltert. Ist das mit dem von dir gezeigten Makro kompatibel?
Den Code verstehe ich, allerdings stellt sich mir die Frage mit welchem der Elemente ich das implementieren soll. Es gibt Formularsteuerelemente und die ActiveX-Steuerelemente, die Unterschiede sind mir nicht bekannt.
Damit hatte ich leider noch nicht zu tun Undecided 

LG
Antworten Top
#4
Hallo,

(19.01.2021, 20:37)Münzenminister schrieb: ... stellt sich mir die Frage mit welchem der Elemente ich das implementieren soll.

mit gar keinem, weil das automatisch bei jeder Änderung irgendeiner Zelle gestartet wird.

Gruß Uwe
Antworten Top
#5
Hm ok ich habe einiges ausprobiert, leider hat es nicht geklappt. Ich werde nochmal eine neue Tabelle erstellen und es erneut probieren.


Angehängte Dateien Thumbnail(s)
   
Antworten Top
#6
Hallöchen,

Zitat: leider hat es nicht geklappt.
ist nicht so ganz die Aussage, mit der man weiter arbeiten kann Sad

eventuell meinst Du es so?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim lngZ As Long
  'Suche in der Spalte die erste gefundene Zeile mit dem Begriff
  lngZ = Application.Match(Target.Value, Target.EntireColumn, 0)
  If lngZ < Target.Row Then
    On Error Resume Next
    Application.EnableEvents = False
'    Target.Formula = "=" & Cells(lngZ, Target.Column).Address(0, 0)
    'Erzeugt einen Link nach Spalte A zur ersten gefundenen Zeile mit dem Begriff
    ActiveSheet.Hyperlinks.Add Anchor:=Target, Address:="", SubAddress:= _
        "Tabelle1!A" & lngZ, TextToDisplay:=Target.Value
    Application.EnableEvents = True
    On Error GoTo 0
  End If
End Sub

Könnte man auch statt nach Ax in die Target-Spalte verlinken...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#7
Hallo,

für alle, die das noch nicht wussten:

Wenn man unter Optionen - Erweitert - Bearbeitungsoptionen den Haken bei Direkte Zellbearbeitung zulassen enfernt, gelangt man per Doppelklick auch auf die in der Formel stehende direkte Vorgängerzelle. Wink

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • Fred11
Antworten Top
#8
Hallo Münzenminister,

hier ein Vorschlag mit einer Formellösung mit einer Hilfsspalte und der Funktion HYPERLINK()

Arbeitsblatt mit dem Namen 'Tabelle1'
AB
1Namen
2Otto
3Karl
4Hugo
5Kurt
6Wilhelm
7Ottogibt’s schon
8Hugogibt’s schon
9Max
10Paul
11Ernst
12Ernstgibt’s schon
13
14

ZelleFormel
B2=WENN(ZÄHLENWENN($A$2:A2;A2)>1;HYPERLINK("#"&"A"&VERGLEICH(A2;A:A;0);"gibt’s schon");"")
Verwendete Systemkomponenten: [Windows (32-bit) NT 6.02] MS Excel 2010
Diese Tabelle wurde mit Tab2Html (v2.6.0) erstellt. ©Gerd alias Bamberg

Gruß
Fred
[-] Folgende(r) 1 Nutzer sagt Danke an Fred11 für diesen Beitrag:
  • Münzenminister
Antworten Top
#9
Danke für die vielen hilfreichen Beiträge!

@Fred11
Eventuell habe ich etwas übersehen, aber die Formel scheint bei mir nicht das erwünschte Ergebnis zu bringen :(
Habe es mal im Anhang verlinkt. Denke aber mit einem Makro komme ich eher weiter, da ich die von dir gezeigte Formel in etwa als "Doppelte Werte" anzeigen implementiert habe.
Oder enthält die Formel eine Verlinkung der doppelten Einträge? Konnte es leider nicht ausprobieren.




@schauan & @Kuwer
Ich habe es eben erneut getestet und hatte bereits einen längeren Bericht geschrieben mit Anhängen wieso es denn nicht klappt :)
Mir ist dann aufgefallen, dass die Duplikate unterstrichen sind. Es funktioniert genauso wie gewünscht. Danke!!!

Leider referenziert er nur den ersten Eintrag. Wie müsste ich das Makro abändern um immer zu dem Eintrag zu springen der als letztes eingetragen wird? Also wie die Funktion "suchen" mit Strg-F?

LG

PS: Ein super-Forum! Wäre mir in meiner Uni-Zeit sehr gelegen gekommen.
Antworten Top
#10
Hallöchen,

dann mit dem Link in etwa so:

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim lngZ As Long
  On Error Resume Next
  'Suche in der Spalte die letzte gefundene Zeile mit dem Begriff
  'ab Zeile 1 und vor der Eingabezelle
  lngZ = Application.Match(Target.Value, _
      Cells(1, Target.Column).Resize(Target.Row - 1, 1))
  If lngZ > 0 And lngZ < Target.Row Then
    Application.EnableEvents = False
    'Erzeugt einen Link nach Spalte A zur letzten gefundenen Zeile mit dem Begriff
    ActiveSheet.Hyperlinks.Add Anchor:=Target, Address:="", SubAddress:= _
        "Tabelle1!A" & lngZ, TextToDisplay:=Target.Value
    Application.EnableEvents = True
  End If
End Sub
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
[-] Folgende(r) 1 Nutzer sagt Danke an schauan für diesen Beitrag:
  • Münzenminister
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste