Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1396to1400
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

Suchbereich aktive Zelle

Suchbereich aktive Zelle
16.12.2014 09:45:33
Timo
Hallo Zusammen,
Ich habe folgendes Problem bei dem ich eure Hilfe brauche: Ich habe einen Code der meine Tabelle nach doppelten Einträgen durchsucht. Funktioniert auch soweit ganz gut, das einzige Problem ist, dass die aktuelle Eingabe mit sich selbst verglichen wird, also laut Excel die Eingabe bereits im aktuellen Feld vorhanden ist.
Hier der Code:

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngLetzteSpalteA As Long
Dim rngSuchBereich As Range
Dim Bereich As Range
If Target.Cells.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
lngLetzteSpalteA = IIf(IsEmpty(Range("XFA1")), Range("XFA1").End(xlUp).Row, 1)
Set Bereich = Range("C1:XFA1" & lngLetzteSpalteA - 1)
Set rngSuchBereich = Bereich.Find(Target.Value, LookIn:=xlValues, LookAt:=xlWhole)
If Not rngSuchBereich Is Nothing Then
MsgBox "Bauteil bereits vorhanden in Zeile 1, Spalte" & Replace(Cells(1, rngSuchBereich. _
Column).Address(0, 0), "1", "")
End If
Set rngSuchBereich = Nothing
Set Bereich = Nothing
End Sub
Könnt ihr mir dabei bitte Helfen?
Danke schonmal im Voraus.
Gruß

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchbereich aktive Zelle
16.12.2014 10:31:28
Timo
Ok habs selber rausgefunden.
Falls es jmd interessert:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lngLetzteSpalteA As Long
Dim rngSuchBereich As Range
Dim Bereich As Range
If Target.Cells.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
Set Bereich = Range(ActiveCell.End(xlToRight), ActiveCell.End(xlToLeft))
Set rngSuchBereich = Bereich.Find(Target.Value, LookIn:=xlValues, LookAt:=xlWhole)
If Not rngSuchBereich Is Nothing Then
MsgBox "Bauteil bereits vorhanden in Zeile 2, Spalte" & Replace(Cells(1, rngSuchBereich. _
Column).Address(0, 0), "1", "")
End If
Set rngSuchBereich = Nothing
Set Bereich = Nothing
End Sub

Anzeige
AW: Suchbereich aktive Zelle
16.12.2014 10:49:04
Matthias
Hallo
Ich würde Zählenwenn beutzen ...
If Application.WorksheetFunction.CountIf(Bereich, Target.Value) > 1 Then
Die Meldung in welcher Zelle der eingegebene Wert gefunden wurde würde ich weglassen.
Denn wenn man links von einem vorhandenen Wert eine Zelle mit diesem Wert füllt, wird die Adresse dieser Zelle ausgegebn und nicht die vom bereits Vorhanden.
Das Dein neu geposteter Code besser ist kann ich nicht bestätigen.
Gruß Matthias

AW: Suchbereich aktive Zelle
16.12.2014 16:17:01
Timo
Hallo,
Die Option die Meldung wegzulassen möchte ich aber nicht. Einfach nur anzuzeigen, dass der Wert vorhanden ist, hatte ich schon und es ist einfach mühselig dann nach dem Teil zu suchen, um etwas nachzutragen. Ausserdem zu der Tatsache, dass mein Code nur die von Rechts eingegebenen anzeigt, was nicht schlimm ist, da dort keine Daten eingetragen werden, zeigt er nur kopierte Felder als Duplikate an und keine manuell Eingegebenen, was mich wieder mal an meine Grenzen stößen lässt.
Kann mir dementsprechend jmd helfen?
Danke und Gruß Timo
PS: Ich weiß, dass meine Codeversuche schrott sind, bin ja auch Amateur :P

Anzeige
AW: Suchbereich aktive Zelle
18.12.2014 10:33:56
Matthias
Hallo

  • das einzige Problem ist, dass die aktuelle Eingabe mit sich selbst verglichen wird

  • Ausserdem zu der Tatsache, dass mein Code nur die von Rechts eingegebenen anzeigt, was nicht schlimm ist,
    da dort keine Daten eingetragen werden, zeigt er nur kopierte Felder als Duplikate an...


Das widerspricht sich aber
Bin ratlos was Du wirklich möchtest.
Gruß Matthias

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige