4.8k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo zusammen,
ich brauche mal wieder Eure Hilfe in folgender Weise.
In einer Datei "Kundenliste 2015" überprüfe ich in Spalte C mit der Formel: =ZÄHLENWENN(C:C;C6)<2, ob Namen bereits vorhanden sind.
Leider funktionert das nicht, wenn ich eine Namendoppelung aus der Datei "Kundenliste 2014" überprüfen möchte.
Wie muss man vorgehen, wenn man bei Eingabe in Kundendatei 2015 eine Überprüfung aus externer Datei (alternativ externem Arbeitsblatt) vornehmen möchte?
Gruß und Danke im voraus Flodnug

PS.: Falls das hilfreich ist, hier die adäquate Zellenbezeichnung aus der Kundendatei 2014: ='[Kundenliste 2014.xlsm]Tabelle1'!$C$6

26 Antworten

0 Punkte
Beantwortet von
Hallo M.Ö.,
ok. das reicht mir als Antwort.
Hab nochmal vielen Dank für Deine gesamte Hilfe.
Gruß und schönen Sommer Flodnug
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Gundolf,

gern geschehen und auch dir noch eine gute Zeit.

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo zusammen,
leider muss ich mich heute nochmal melden.
Nachdem alles funktionert hat (habe folgende Formel benutzt: =ZÄHLENWENN(C:C;C6)+ZÄHLENWENN(Namensliste;C6)<2), bin ich heute wieder in die Datei gegangen und es funktionerte die externe Gültigkeitsprüfung nicht mehr.
Nachdem ich ein paar mal alles neu gemacht habe -> alles funktionerte -> Datei geschlossen -> Datei wieder geöffnet -> externe Prüfung ging nicht mehr, habe ich jetzt aufgegeben.
Könnt ihr (M.O.) mir bitte nochmal helfen, wo das Problem liegt.
Hier zum abkürzen und falls hilfreich der Link für die Datei:
http://www.xup.in/dl,16328742/Kundenliste_2015_test.xlsm/
Danke und hoffentlich bis bald
Flodnug
0 Punkte
Beantwortet von
Hallo nochmal,
habe als Zusatzinfo vergessen zu sagen, dass ich den Bereich "Namensliste" im Arbeitsblatt "Kundenliste alle" von C6 - C3005 definiert habe.
Gruß Flodnug
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Flodnug,

das kommt daher, dass in der Gültigkeitsprüfung der Zellbezug nicht stimmt. Schau dir mal z.B. beim letzten Namen in der Formel der Gültigkeitsprüfung an, welche Zelle überprüft wird.

Da du eine Gültigkeitsprüfung über das Worksheet-Change-Ereignis in deinem Arbeitsblatt hast, würde ich das Makro einfach erweitern und die Gültigkeitsprüfung löschen.

Private Sub Worksheet_Change(ByVal Target As Range)
Set Bereich1 = Columns(3)
Set Bereich2 = Worksheets("Kundenliste alle").Columns(3)
If Target.Cells.Count > 1 Then Exit Sub
If Target.Value = "" Then Exit Sub
If Intersect(Bereich1, Target) Is Nothing Then Exit Sub
If WorksheetFunction.CountIf(Bereich1, Target.Value) + WorksheetFunction.CountIf(Bereich2, Target.Value) > 1 Then
MsgBox "Name schon vorhanden!", 16, "Fehler"
Application.EnableEvents = False
Target.Value = ""
Application.EnableEvents = True
Target.Select
End If

End Sub


Mir ist bei Test aufgefallen, dass bei einigen Namen in der Tabelle "Kundenliste alle" ein Leerzeichen hinter dem Namen steht, so dass die Gültigkeitsprüfung bzw. Zählenwenn ins Leere laufen (und das sind keine Einzelfälle!).
Das kannst du z.B. mit GLÄTTEN bereinigen und die per Formel generierten Namen per Kopieren - Inhalte einfügen - Werte wieder in Spalte C einfügen.

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo M.O.,
vielen Dank für Deine schnelle Antwort.
Ich verzweifele langsam an diesem Sch...problem.
Also gut, ich werde mich in die Lösung einarbeiten und mich gegebenenfalls in ein paar Tagen nochmal melden.
VBA-Lösungen sind nämlich nicht so mein Ding, da ich Formellösungen besser nachvollziehen kann.
Erlaube mir daher noch ein, zwei Fragen.
Funktioniert die VBA-Lösung sofort nach Eingabe oder muß ich die Prüfung z.B. mit einem Steuerelement erst auslösen?
Muß ich die Glättung dann trotzdem noch vornehemen?
Und einlesen muß ich mich auch erst noch zum Thema Work_Sheet-Ereignis.
Also nochmal vielen Dank und Gruß Flodnug
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Flodnug,

die VBA-Lösung funktioniert sobald die Eingabe in eine Zelle abgeschlossen ist. Zum Worksheet-Change-Ereignis kannst du mal hier nachschauen: KLICK MICH!

Das mit dem Glätten solltest du auf alle Fälle machen, da ansonsten sowohl die Makro-Lösung als auch die Formel-Lösung nicht richtig funktionieren.

Das Problem mi den falschen Bezügen kommt auch daher, dass du Makros zur Sortierung benutzt. Dabei geht u.a. auch die bedingte Formatierung vorloren.
Willst du das umgehen, so musst du auch mit einer Hilfsspalte arbeiten.
Schreibe in die Hilfsspalte die folgende Formel:
=ZÄHLENWENN(C:C;C6)+ZÄHLENWENN(Namensliste;C6)
und ziehe sie nach unten.
Wenn deine Hilfsspalte z.B. die Spalte N ist, dann schreibe in die Gültigkeitsprüfung die folgende Formel:
=N6<2

Dann sollte die Gültigkeitsprüfung auch nach Sortierungen klappen.

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo M.O.,
Danke, Danke, Danke.
Diese Antwort hat mir sehr gefallen, da ich sie gut nachvollziehen konnte.
Aber wenn ich es richtig verstanden habe, brauche ich doch mit der Hilfsspalte die VBA-Lösung nicht mehr. Richtig?


Sag bitte Ja. :-)

Gruß Flodnug
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Flodnug,

ja, mit der Hilfsspalte kannst du das ohne VBA machen ;-).

Gruß

M.O.
0 Punkte
Beantwortet von
Hallo M.O.,
juhu - danke für alles bis dahin.
Melde mich in ein paar Tagen wieder und berichte, ob jetzt alles so klappt, wie gewünscht.
Letzte Frage bis dahin. Wenn ich in die Gültigkeitsprüfung =N6<2 eintrage, muß ich dafür N6 bis N3005 markieren oder reicht es N6 zu markieren?
Gruß Flodnug
...