Supportnet Computer
Planet of Tech

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)

 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

Antwort 3 von Beverly

Hi Marion,

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

Antwort 5 von Beverly

Hi Marion,

und in welcher Zeile wird markiert?

Bis später,
Karin

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: