Supportnet / Forum / Tabellenkalkulation
Makro für Sverweis
Frage
Hallo Leute,
ich möchte ein Makro schreiben, dass mir automatisch wenn ich bei D15 "Ja" auswähle und in M19 ein Wert eingebe automatisch ein Sverweis macht. Ich versuch schon ewig rum und komm zu keinem Ergebnis.
Suchkriterium: I25
Matrix: Datenpflege!K2:L30000
Spaltenindex: 2
Wäre für Hilfe wirklich sehr dankbar
Vielen Dank und Grüsse
marion
Antwort 1 von Beverly
Hi Marion,
versuche es mit diesem Code (ungetestet)
Bis später,
Karin
versuche es mit diesem Code (ungetestet)
Private Sub Worksheet_Change(ByVal Target As Range)
Dim raZelle As Range
If Target.Address <> "$M$19" Then Exit Sub
If Range("D15") = "Ja" Then
Set raZelle = Worksheets("Datenpflege").Range("K2:K30000").Find(Range("I25"), lookat:=xlWhole)
MsgBox raZelle.Offset(0, 1)
End If
End Sub
Bis später,
Karin
Antwort 2 von mmarion
Dankeschön, aber excel bringt bei mir die Fehlermeldung:
Mehrdeutiger Name: Worksheet Change
wie weise ich denen verschiedene Namen zu:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$D$5" Then Exit Sub
If Target = "Ja" Then
With Range("D9").Validation
.Delete
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlEqual, _
Formula1:="=Account"
End With
Else
Range("D9").Validation.Delete
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim raZelle As Range
If Target.Address <> "$M$19" Then Exit Sub
If Range("D15") = "Ja" Then
Set raZelle = Worksheets("Datenpflege").Range("K2:K30000").Find(Range("I25"), lookat:=xlWhole)
MsgBox raZelle.Offset(0, 1)
End If
End Sub
Mehrdeutiger Name: Worksheet Change
wie weise ich denen verschiedene Namen zu:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$D$5" Then Exit Sub
If Target = "Ja" Then
With Range("D9").Validation
.Delete
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlEqual, _
Formula1:="=Account"
End With
Else
Range("D9").Validation.Delete
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
Dim raZelle As Range
If Target.Address <> "$M$19" Then Exit Sub
If Range("D15") = "Ja" Then
Set raZelle = Worksheets("Datenpflege").Range("K2:K30000").Find(Range("I25"), lookat:=xlWhole)
MsgBox raZelle.Offset(0, 1)
End If
End Sub
Antwort 3 von Beverly
Hi Marion,
jede Tabelle hat nur ein einziges Worksheet_Change Ereignis, deshalb musst du beide Codes zusammenführen
Bis später,
Karin
jede Tabelle hat nur ein einziges Worksheet_Change Ereignis, deshalb musst du beide Codes zusammenführen
Private Sub Worksheet_Change(ByVal Target As Range)
Dim raZelle As Range
If Target.Address <> "$D$5" And Target.Address <> "$M$19" Then Exit Sub
Select Case Target.Address
Case "$D$5"
If Target = "Ja" Then
With Range("D9").Validation
.Delete
.Add Type:=xlValidateList, _
AlertStyle:=xlValidAlertStop, _
Operator:=xlEqual, _
Formula1:="=Account"
End With
Else
Range("D9").Validation.Delete
End If
Case "$M$19"
If Range("D15") = "Ja" Then
Set raZelle = Worksheets("Datenpflege").Range("K2:K30000").Find(Range("I25"), lookat:=xlWhole)
MsgBox raZelle.Offset(0, 1)
End If
End Select
End Sub
Bis später,
Karin
Antwort 4 von mmarion
Hi Karin,
vielen Dank für die schnelle Antwort. Aber Excel bringt mir die Fehlermeldung '91': Objektvariable oder With-Block Variable nicht festgelegt.
Vielen Dank und Grüsse
vielen Dank für die schnelle Antwort. Aber Excel bringt mir die Fehlermeldung '91': Objektvariable oder With-Block Variable nicht festgelegt.
Vielen Dank und Grüsse
Antwort 5 von Beverly
Hi Marion,
und in welcher Zeile wird markiert?
Bis später,
Karin
und in welcher Zeile wird markiert?
Bis später,
Karin