Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1880to1884
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

Wenn dann S-Verweis

Wenn dann S-Verweis
25.04.2022 15:33:10
Eisi
https://www.herber.de/bbs/user/152651.xlsm
Hallo zusammen,
bitte um Hilfe :-)
Das Problem habe ich wie folgt beschrieben und eine Mappe angehängt. Was fehlt im Code, bzw. was ist falsch?
Kann mir jemand freundlicherweise helfen?
Herzlichen Dank.
VG Eisi :-)
--------------------------------------------------------
Aufgabe: Hole den Hyperlink
1. Suche den Farbcode 16638867 in der Spalte B (=B10 und B28)
2. Sverweis >>- Suchbegriffe: Kennung 404 + 408 in der Zelle C13 + C31= Offset 4, 2 >> Es können auch mehr Suchbegriffe sein, je nachdem wie viele Tabellen untereinander stehen.
- Matrix: tbl_H_Zubehoer_nachtraeglich
- Spalte: 55 = BC
3. Den Link aus Sverweis hier hin übertragen >>
- Sheet: AngebotDrucken immer >> = Offset 4, 3

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Wenn dann S-Verweis
25.04.2022 15:42:45
ChrisL
Hi
Ohne durchzutesten. In der Beschreibung sprichst du korrekt von Offset, im Code steht an der Stelle aber Cells.
cu
Chris
AW: Wenn dann S-Verweis
25.04.2022 15:53:00
Eisi
Hallo Chris,
VBA meckert immer noch?
.Range("B" & lngZeile).Offset(4, 3).Value = wsf.VLookup(.Range("B" & lngZeile).Offset(4, 2).Value, rngBereich, 55, False)
AW: Wenn dann S-Verweis
25.04.2022 16:10:12
ChrisL
Hi
Wer zählen kann (Offset-Werte), ist im Vorteil :)
Abgesehen davon, es reicht nicht die Worksheet-Funktion als Variable zu dimensionieren, du müsstest der Variable auch noch ein Objekt zuordnen.

Sub HyperlinksNeuSetzen_ZubehoerNachtraeglich()
Dim lngZeile As Long, lngZeileMax As Long
Dim rngBereich As Range
Dim wsf As WorksheetFunction: Set wsf = Application.WorksheetFunction
Dim wsAngebot As Worksheet
Dim wsZubehoer As Worksheet
Set wsAngebot = tbl_AngebotDrucken
Set wsZubehoer = tbl_H_Zubehoer_nachtraeglich
Set rngBereich = wsZubehoer.Range("A2:BC300")
With wsAngebot
lngZeileMax = .Range("B" & .Rows.Count).End(xlUp).Row
For lngZeile = 10 To lngZeileMax
If .Range("B" & lngZeile).Interior.Color = 16638867 Then
.Range("B" & lngZeile).Offset(3, 2).Value = wsf.VLookup(.Range("B" & lngZeile).Offset(3, 1).Value, rngBereich, 55, False)
.Range("B" & lngZeile).Offset(3, 2).Font.Size = 9
End If
Next lngZeile
End With
End Sub
cu
Chris
Anzeige
Eigentlich funktioniert der Code
26.04.2022 14:10:16
Eisi
Hallo Chris,
bei dieser Zeile kommt Debug:
.Range("B" & lngZeile).Offset(3, 3).Value = wsf.VLookup(.Range("B" & lngZeile).Offset(3, 2).Value, rngBereich, 55, False)
>>> Laufzeitfehler 1004: Die VJookup-Eigenschaft des WorksheetFunction-Objektes kann nicht zugeordnet werden.
Wobei ich sagen darf, bei der Musterdatei geht es, aber in meiner Original-Datei nicht. Ich habe alles mir mögliche recherchiert, ich finde den Fehler nicht.
Was müsste eigentlich an dem Code noch geändert werden, damit der Hyperlink mit einem eigenen Namen benannt wird?
Hast Du da noch eine Idee?
GLG Eisi
Anzeige
AW: Eigentlich funktioniert der Code
26.04.2022 15:15:58
ChrisL
Hi

Sub HyperlinksNeuSetzen_ZubehoerNachtraeglich()
Dim lngZeile As Long, lngZeileMax As Long
Dim rngBereich As Range
Dim wsf As WorksheetFunction: Set wsf = Application.WorksheetFunction
Dim wsAngebot As Worksheet
Dim wsZubehoer As Worksheet
Set wsAngebot = tbl_AngebotDrucken
Set wsZubehoer = tbl_H_Zubehoer_nachtraeglich
Set rngBereich = wsZubehoer.Range("A2:BC300")
With wsAngebot
lngZeileMax = .Range("B" & .Rows.Count).End(xlUp).Row
For lngZeile = 10 To lngZeileMax
If .Range("B" & lngZeile).Interior.Color = 16638867 Then
.Range("B" & lngZeile).Offset(3, 2).MergeArea.ClearContents
.Hyperlinks.Add Anchor:=.Range("B" & lngZeile).Offset(3, 2), _
Address:=wsf.VLookup(.Range("B" & lngZeile).Offset(3, 1).Value, rngBereich, 55, False), _
TextToDisplay:="Datenblatt"
.Range("B" & lngZeile).Offset(3, 2).Font.Size = 9
End If
Next lngZeile
End With
End Sub
cu
Chris
Anzeige
Klasse :-) Herzlichen Dank. :-)
26.04.2022 15:45:26
Eisi
Hallo Chris,
danke für die Hilfe, sehr freundlich. :-)
Das ist die perfekte Lösung.
Das kenne ich noch gar nicht: MergeArea
Freue mich riesig über Deine Lösung.
Vielen herzlichen Dank.
GLG Eisi :-)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige