Gültigkeitsprüfung mit Excel
Hallo an Alle!
Ich hätte da eine Frage zu der Excel-Gültigkeitsprüfung. Kann man mit dieser Funktion bestimmten Text sperren? Es soll wirklich ein bestimmtes Wort sein. Habe es mit der benutzdefinierten Variante probiert, aber er sperrt entweder alles oder nichts. Kann mir da bitte jemand weiter helfen?
Vielen Dank imk Voraus!!!
Antwort schreiben
Antwort 1 von coros vom 04.11.2019, 06:47 Options
Hallo naomi10123,
also mit der Gültigkeitsprüfung kann man, wie das Wort ja bereits sagt, Daten auf Ihre Gültigkeit prüfen. Das bedeutet, Wert, Texte usw., die in der Gültigkeitsprüfung eingetragen wurden, dürfen verwendet werden. Alle anderen Werte, Texte usw. die nicht den Vorgaben entsprechen, werden geblockt und auf Wunsch wird eine Meldung angezeigt.
Das bedeutet, Du kannst nicht die Gültigkeitsregel dazu verwenden, um bestimmte Werte, Texte usw. zu sperren.
Wobei ich das aus Deiner Fragestellung so verstehe, dass es Dir darum geht aus einem eingetragenen Text, ein bestimmtes Wort herauszufiltern, und das als Falsch auszuwerten. Also z.B. soll im Text "Heute ist ein wunderschöner Sonntag" auf das Wort "wunderschöner" geprüft werden. Wird in einem Text das Wort, wie im Beispiel, verwendet, soll es eine Meldung geben.
Wenn Du Dir das so vorstellst, wird das wahrscheinlich nur mit VBA gehen. Dazu müsste man aber etwas mehr Infos von Dir haben.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du
ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 2 von Nomi10123 vom 04.11.2019, 08:08 Options
Hallo Oliver!
Vielen Dank für deine Antwort. Ich weiß, dass die Gültigkeitsprüfung nicht gerade das beste Tool für mein Vorhaben ist, aber ich dachte, vielleicht kann ich es mit irgendeine Formel oder NICHT-Formel umgehen. Ich dachte vielleicht mit wenn-nicht oder so etwas. Nur leider fehlt mir nichts ein.
Ein Makro traue ich mir nicht zu, da ich mich mit Basic nicht auskenne.
Ich habe eine kleine Datenbank, die mir meine Hotelzimmer zusammenfast. Ich brauche in eine Spalte eine Warnmeldung. Wenn jemand das Wort "Trace" reinschreibt, soll eine Stop-Meldung den Hinweiß zeigen "Traces bitte nur an dem Tag eintragen, an dem sie tatsächlich stattfinden!".
Es geht darum, dass die Kollegen, die Datenbank richtig anwenden. Außerdem darf diese Meldung meine benutzdefinierte Formatierung nicht stören. Ich habe Excel 2003 und bin draufgekommen, dass die Gültigkeitsprüfung die benutzdefinierte Formatierung ausschaltet.
Viellecht fällt dir dazu etwas ein!
Vielen Dank im Voraus!!!
Antwort 3 von rainberg vom 04.11.2019, 08:26 Options
Hallo zusammen,
mit dem Benutzerdefinierten Kriterium in der Gültigkeit
=ISTFEHLER(FINDEN("wunderschöner";A1))
kann man "wunderschöner" sowohl als Einzelwort als auch innerhalb eines Satzes ausschließen.
Wenn nur das Einzelwort gemeint ist reicht auch
=A1<>"wunderschöner"
Gruß
Rainer
Antwort 4 von coros vom 04.11.2019, 08:28 Options
Hallo Nomi10123,
es geht nur um das Wort "Trace"?
Kannst Du bitte mal ein kleines Beispiel liefern und dazu schreiben , welche Spalten von Dein Vorhaben betroffen sind?
Mal ein Beispiel für das Wort "Trace", wenn dieses in Spalte C eingetragen wird. Das ist natürlich noch nicht so, wie Du es komplett benötigst, da dazu eben noch Angaben fehlen.
Zum Testen kopiere den Code in das VBA-Projekt eines Tabellenblattes.
[b]Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 3 And _
LCase(Target.Cells.Value) = LCase("Trace") Or _
UCase(Target.Cells.Value) = UCase("Trace") Then
MsgBox "Traces bitte nur an dem Tag eintragen, an dem sie tatsächlich stattfinden!", vbCritical, "Info..."
Target.Cells.ClearContents
End If
End Sub[/b]
Ich hoffe, Du kommst mit dem Beispiel klar.
Solltest Du nicht wissen, wie Du den Code in Deine Datei bekommst, dann schau mal auf
meiner HP in der
Rubrik Anleitungen und dort dann in der
Anleitungsnummer 2 nach. Dort stelle ich dazu eine bebilderte Anleitung zur Verfügung, die Dir sicherlich helfen wird.
Bei Fragen melde Dich.
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 5 von coros vom 04.11.2019, 08:33 Options
Morgen Rainer,
schöne Lösung. Formeln sind halt nicht mein Steckenpferd. VBA liegt mir, wie man weiß, besser.
MfG,
Oliver
Jeder macht was er will, keiner macht was er soll, aber alle machen mit.
Antwort 6 von naomi10123 vom 04.11.2019, 08:46 Options
Antwort 7 von naomi10123 vom 04.11.2019, 08:49 Options
Hallo Reiner!
Dir auch vielen Dank für deine Antwort. Leider funktoniert das bei mir nicht. Es ist das alte Problem. In dem einem Fall lässt er mich alles eintragen ohne eine Warnung und die zweite Formel lässt keinen Text zu.
Trotzdem vielen Dank!!!
LG
Antwort 8 von naomi10123 vom 04.11.2019, 09:01 Options
Hallo Reiner!
Tausendmal entschuldigung! Die erste Formel funktioniert einwandfrei! Das einzige Problem ist, dass ich die Daten immer am ende Des Tages übertragen muss.Wenn ich diese aber übertrage, kopiere ich die Gültigkeitsprüfung mit und genau das soll nicht so sein. Die Sperre soll also wirklich nur für die Spalte N sein, und wenn ich die Daten dann übertrage ind anderen Spalten, soll die Gültigkeitsprüfung nicht mitkopiert werden. Das konntest du natürlcih nicht wissen. Nochmals vielen Dank. Super Arbeit.
LG
Antwort 9 von rainberg vom 04.11.2019, 09:08 Options
Hallo Naomi,
das funktioniert auch mit der einfacheren Formel, die im konkreten Fall so lauten muss
=N4<>"Trace"
Markierie N4:N152, trage diese Formel unter Benutzerdefiniert ein und vergib Deine Warnmeldung.
Das Kopierproblem:
Kopiere Spalte N, gehe ins neue Blatt und wähle "Inhalte einfügen" - "Werte", dann wird die Gültigkeitsprüfung nicht mit kopiert.
Gruß
Rainer
Antwort 10 von coros vom 04.11.2019, 09:08 Options
Hallo naomi10123,
nachfolgender VBA-Code reagiert auf das Wort "Trace" in Spalte N. Wird das Wort eingetragen, erscheint eine Hinweismeldung und das Wort wird wieder gelöscht.
Der Code gehört in das VBA-Projekt "DieseArbeitsmappe".
[b]Option Explicit
Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
If Target.Column = 14 And Target.Row >= 4 And Target.Row <= 152 Then
If LCase(Target.Cells.Value) = LCase("Trace") Or _
UCase(Target.Cells.Value) = UCase("Trace") Then
MsgBox "Traces bitte nur an dem Tag eintragen, an dem sie tatsächlich stattfinden!", vbCritical, "Info..."
Target.Cells.ClearContents
End If
End If
End Sub[/b]
MfG,
Oliver
Da hier der einzige Lohn für die Helfer eine Rückmeldung ist, wäre es nett, wenn Du ein Feedback abgeben könntest, ob der Lösungsvorschlag Dein Problem gelöst hat.
Antwort 11 von naomi10123 vom 04.11.2019, 09:24 Options
Hallo Reiner und Oliver!
Ihr seid wirklich die wahren Excel-Exerten. Ihr beide habt mir wahsinnig viel geholfen! Diese Forum ist echt genial. Schnell und ohne Hintergedanken wurde mir hier schon zum zweiten mal geholfen.
Respekt Jungs, ihr habt was drauf!!!
Nochmals vielen Dank!!!
LG
P.S. Coole Homepage Oliver!