Hallo zusammen,
nach den so guten Erfahrungen hier, wollte ich mal wieder um eure Hilfe bitten.
Folgendes:
Beim anklicken einer Zelle aus der Spalte B (Tabellenblatt1) soll deren Inhalt mit den Einträgen der Spalte 3 aus Tabellenblatt 2 (also Tabelle2) verglichen werden. Stimmt der Inhalt überein, soll die komplette Zeile (mit dem entsprechenden Eintrag in Spalte 3 in Tabellenblatt 2) markiert werden.
Ich habe folgenden Ansatz:
In das Tabellenblatt1 schreibe ich:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If ActiveCell.Address = Range(„B1:B100“) Then
Call Makro1
End If
End Sub
Das Makro1 sieht dann so aus:
Sub Makro1()
Dim i As Long
For i = 0 To 100
If ActiveCell.Value = Sheets(„Tabelle2“).Cells(i, 3).Value Then
Sheets(„Tabelle2“).Cells(i, 3).Select
End If
Next i
End Sub
Geht aber nicht und ich steh mal wieder auf dem Schlauch. Wär wirklich super, wenn ihr mir mal wieder helfen könntet.
Danke schon mal im Vorraus.
Hallo,
tut mir leid aber dein Problem übersteigt meine Kenntnisse.
Da kann ich nicht weiterhelfen.
Sorry.
Gruß,
Vampire.13
Hallo,
ich denke, du musst auch die Spalte 3 hochzählen, nicht nur Spalte 2.
Gruß
Bezeichnung Zelle als Link ist hier woh nich angebracht,
eher Eintrag in Liste suchen:
Makro Tabelle 1, die eine Selection überwacht, wober der gültige Bereich von Einträgen Zeile, Spate oder was auch immer über den Namen Suchbegiffe definiert ist.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
AktuellePos = ActiveCell.AddressLocal
x = "Suchbegriffe " & AktuellePos 'Aktuelle Pos auf suchkriterien ?
On Error GoTo Fehler_1 'Wenn der Cursor nicht im Bereich B_Eingabe1
'steht wird ein fehler ausgelöst
y = Range(x).Value2 'Wenn nicht, dann Fehler
On Error GoTo 0
If y = „“ Then 'Wenn nichts drin steht
MsgBox „Ihre Auswahl enthält keinen Eintrag !“
Else 'sonst diese Eintrag in Tabelle 2 suchen
Call Fu1.Suche(y)
End If
Exit Sub
Fehler_1:
MsgBox „Die Auswahl ist nicht im Suchbereich“
End Sub
im Modul Fu1 ist das Such und markier Markro:
Sub Suche(Was As Variant)
With Worksheets(2).Range(„B1:B32“)
Set res = .Find(Was, LookIn:=xlValues, MatchCase:=True, SearchFormat:=False)
If Not res Is Nothing Then
fundstelle = res.Address
Sheets(„Tabelle2“).Select
Rows(Range(fundstelle).Row & „:“ & Range(fundstelle).Row).Select
End If
End With
End Sub
Hier nochmal suche erweitert um Prüfung, ob es eindeutig ist, oder es weitere Fundstellen gibt.
'##########
Sub Suche(Was As Variant)
With Range(„Suchbereich“) 'Bereich in dem gesucht wird mit Namen versehen
Qty = 0
Set res = .Find(Was, LookIn:=xlValues, MatchCase:=True, SearchFormat:=False)
If Not res Is Nothing Then
Qty = 1
Fundstelle = res.Address
Do 'Prüfen ob Ergebniss eindeutig, oder weitere Fundstellen
Set res = .FindNext(res)
If res Is Nothing Then
Exit Do
ElseIf res.Address = Fundstelle Then
Exit Do
End If
Qty = Qty + 1
Loop
Sheets(.Worksheet.Name).Select
Rows(Range(Fundstelle).Row & „:“ & Range(Fundstelle).Row).Select
MsgBox "Suchbegriff gefunden, Anzahl Fundstellen gesamt = " & Qty & vbCrLf & _
„Erste Fundstelle bei [“ & .Worksheet.Name & „!“ & Fundstelle & „]“
End If
End With
End Sub
Hi,
das Problem liegt im Code von Makro1:
For i = 0 To 100
If ActiveCell.Value = Sheets(„Tabelle2“).Cells(i, 3).Value Then
Sheets(„Tabelle2“).Cells(i, 3).Select ’
Hallo,
es tut mir leid. Ich kann derzeit leider nicht helfen.
Gruß Marx
Hi,
probier’s 'mal mit folgendem:
Private Sub Worksheet\_SelectionChange(ByVal Target As Range)
If ActiveCell **Target**.Address = Range
und verwende bitte immer die Pre-Tags.
HTH.
Markus
hmmm … wenn ich mir das so anschaue, geht’s schon - nur wird dann gleich die nächste Zelle geprüft, und jetzt ist ActiveCell die gerade markierte Zelle.
Probier’s doch (ungetestet) mit i=101 vor dem End If.
Und?
lg