3.8k Aufrufe
Gefragt in Tabellenkalkulation von
Hallo zusammen,
ich habe folgende Bitte.
Ich habe eine Gültigkeitsprüfung (schönen Dank nochmal an M.O.)in der überprüft wird, ob ein Name schon mal vorhanden ist.
Wenn ja meckert Excel "Name schon vorhanden!". Soweit alles prima.
Nach der Meldung wird der Name aber automatisch gelöscht und das ist der Knackpunkt. In der täglichen Arbeit hat sich herausgestellt, dass es besser wäre, wenn zwar die Meldung kommt, aber der Name stehen bleibt, damit man dann eine 2 oder 3 usw. (je nachdem wie oft der Name schon vorkam) anfügen kann und nicht den kompletten Namen noch einmal eingeben muss.
Jetzt die Bitte. Kann mir jemand die VBA-Prüfung so ändern, dass der Name nach der Prüfung stehen bleibt.
Hier die VBA-Prüfung:

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

Danke und Gruß Flodnug

24 Antworten

0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Flodnug,

hier die Datei mit dem geänderten Makro: KLICK MICH!

Gruß

M.O.
0 Punkte
Beantwortet von fedjo Experte (2.2k Punkte)
Hallo Flodnug,
in deiner Datei ist die Zeile nicht gelöscht.
Löschen, Speichern
http://www.xup.in/dl,84161440/KUNDENLISTE_2015_VBA_bearbeitet.xlsm/

M.O. hat Dir jetzt deine Datei geändert.

Gruß
fedjo
0 Punkte
Beantwortet von
Hallo M.O., hallo fedjo,
vielen Dank für Eure große Geduld mit mir.
Excel hat mir immer großen Spass bereitet, weil ich gern logische Zusammenhänge verstehe, aber jetzt muss ich leider sagen: Ich gebe auf (was dieses Profekt angeht).
Ich kriege es einfach nicht in meine Birne, wieso die geänderte Datei von M.O. funktioniert und wenn ich den kompletten VBA-Script in die Original kopiere/ersetze, die Datei dann nicht funktioniert.
Es wird mir also nichts anderes übrig bleiben, als alle Kundendaten aus der Originaldatei in die geänderte M.O.-Datei zu übertragen.
Oder gibt es (mal wieder) eine einfache Erklärung mit der ich mir die ganze Arbeit dann sparen kann?
Auf alle Fälle möchte ich Euch nochmal einen ganz großen Dank für Eure Hilfe aussprechen. Macht weiter so.
Gruß Flodnug
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo Flodnug,

ohne deine Originaldatei zu kennen, kann man nur schwer Aussagen darüber treffen, warum es dort nicht funktioniert. Ich nehme mal an, dass da etwas anderes dazwischen funkt (anderes Makro, Gültigkeitsprüfung?).



Gruß

M.O.
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

wahrscheinlicher verursacher
Application.EnableEvents = False


der zustand ist wie folgt erfassbar
KontrollVariable=Application.EnableEvents


gruss nighty
0 Punkte
Beantwortet von
Hallo M.O.,
das ist ja das verrückte. Deine abgeänderte Datei ist natürlich die komplette Originaldatei. Es sind lediglich ein paar (ca. 200) Datensätze gelöscht, damit die Datei nicht so groß ist und von den vorhandenen Namen die persönlichen Daten (Adresse, Tel.-Nr., Anlass) entfernt.

Hallo Nighty,
danke für Deine Antwort. Ich weiss nur leider nicht, wie ich sie verwerten kann.
Deine zweite Zeile (Kontroll......) für deine erste Zeile (Application.........) ersetzen oder deine zweite Zeile in das Script einfügen. Wenn ja, dann wo?

Danke nochmal Euch beiden.
Gruß Flodnug
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi Flodnug ^^

Worksheet.Change-Ereignis

https://msdn.microsoft.com/de-de/library/office/ff839775.aspx

gruss nighty
0 Punkte
Beantwortet von
Hallo nighty,
danke nochmals für deine Antwort.
Gruß Flodnug
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi Flodnug ^^


True waere zum einschalten,dann gehen auch die anderen makros denk ich

gruss nighty

Sub Makro()
Application.EnableEvents = True
End Sub
0 Punkte
Beantwortet von
Hallo nighty,
vielen Dank für deine weitere Hilfe.
Du hast ja mitbekommen, wie ich mitlerweile an dieser Aufgabe verzweifle.
Kannst Du mir bitte Dein, ich nenne es jetzt mal Submacro, in meine Datei einbauen?
Dann brauch ich vielleicht doch bloß den gesamten Script in die Originaldatei kopieren.
Den link findest Du unter Antwort 11 von M.O.
Danke und Gruß Flodnug
...