Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: MsgBox-Warnung, Wert in Spalte bereits vorhanden

MsgBox-Warnung, Wert in Spalte bereits vorhanden
06.06.2018 16:27:20
Carolin
Hallo liebes Forum,
momentan sitze ich an einem Problem, das für mich als begeisterter Excel-Anfänger ein mit Google nicht lösbares Hindernis darstellt. Daher die Frage an euch...
Ich habe 2 Tabellenblätter, wobei das erste zum Daten eingeben dient und automatisch diese in das zweite überträgt. Dadurch entsteht dort eine Liste.
Diese Liste soll nun überprüft werden, ob meine Eingabe schon vorhanden ist und dementsprechend eine MsgBox mit Warnung ausgeben.
Also muss Sheet1 A:A durchsucht werden, ob Sheet2 B1 schon vorkommt.
Eingebettet in If... Then MsgBox("Bereits vorhanden")
Irgendwie finde ich keine Funktion zum durchsuchen und vergleichen.
Wenn mir da jemand helfen kann wäre ich sehr dankbar!!!
Viele Grüße,
Nilo20
Anzeige

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Nilo20 oder Carolin oder wie?
06.06.2018 16:37:28
Oberschlumpf
Hallo
hier, versuch mal (ungetestet)
den Code musst du im VBA-Explorer in Sheet1 eintragen.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim lloRow As Long
If Target.Address = "$B$2" And _
Target.Value  "" Then
With Sheets("Tabelle2") 'wenn bei dir Sheet2 nicht "Tabelle2" heißt, dann  _
anpassen
For lloRow = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
If Target.Value = .Range("A" & lloRow).Value Then
MsgBox "Diesen Eintrag gibt es schon.", vbExclamation, "Hinweis"
With Application
.EnableEvents = False
.Undo
.EnableEvents = True
End With
Exit For
End If
Next
End With
End If
End Sub
Hilfts?
Ciao
Thorsten
Anzeige
AW: Nilo20 oder Carolin oder wie?
06.06.2018 17:04:12
Carolin
Hola Thorsten,
Top vielen Dank für die schnelle Antwort!
Carolin stimmt schon, das Nilo20 war aus Gewohnheit eines anderen Forums reingerutscht :P
Zum Code, es kommt zu einem Laufzeitfehler '424' Objekt erforderlich, bei
If Target.Address = "$B$2" And _
Target.Value "" Then
Ich habe meinen adressnamen eingegeben, aber in der form ("name1") kam dieselbe meldung.. Wahrscheinlich habe ich es falsch eingegeben.
LG Caro
Anzeige
AW: Nilo20 oder Carolin oder wie?
06.06.2018 17:25:00
Oberschlumpf
Hi Caro,
zeig uns bitte mal, per Upload-Funktion in diesem Forum, eine Bsp-Datei mit Bsp-Daten und allem, was wichtig ist, um dein Problem nachvollziehen bzw lösen zu können.
Ciao
Thorsten
AW: MsgBox-Warnung, Wert in Spalte bereits vorhanden
06.06.2018 16:37:56
Matthias
Moin!
Schau mal hier. Dort die Blattnamen anpassen und den Suchwert.
https://msdn.microsoft.com/de-de/vba/excel-vba/articles/range-find-method-excel
VG
Anzeige
AW: MsgBox-Warnung, Wert in Spalte bereits vorhanden
06.06.2018 17:14:17
Carolin
Hey,
Vielen Dank für den schnellen Tipp! Ich werde mich da mal einlesen und das ausprobieren :)
Allerdings ist das eingegebene variabel, weshalb ich die Zelle B1 anspreche. Kann ich statt dem txt dann einfach ("B1") eingeben?
VG, Caro
AW: MsgBox-Warnung, Wert in Spalte bereits vorhanden
06.06.2018 17:29:22
Daniel
Hi
funktioniert prinzipell auch auch ohne VBA:
richte für die Zelle B1 auf Sheet2 folgende Gültigkeitsprüfung ein
über DATEN - DATENTOOLS - DATENÜBERPRÜFUNG (2x)
dort "benutzerdefiniert" auswählen und als Formel eingeben: =ZÄHLENWENN(Sheet1!A:A;A1)=0
damit kannst du dann in diese Zelle nur Werte eingeben, die noch nicht in Sheet1 Spalte A vorhanden sind.
auch im Code könntest du einfach das ZählenWenn verwenden:
if Worksheetfunction.CountIf(Sheets("Sheet1").Range("A:A"), Sheets("Sheet2").Range("B1")) = 0  _
Then
hier der Code zum übertragen des Wertes
Else
msgbox "Wert schon vorhanden"
End if
Gruß Daniel
Anzeige
AW: MsgBox-Warnung, Wert in Spalte bereits vorhanden
06.06.2018 20:40:13
Carolin
Hey,
Danke für die Lösungsansätze!
In diesem Fall bräuchte ich es tatsächlich für vba, aber es ist auf jeden Fall gut zu wissen dass es ansonsten auch so geht!
Mit vba-Code wurde mir nun schon weitergeholfen, aber allein für die Übung wird der definitiv auch mal ausprobiert.
Viele Grüße und Danke,
Caro
Anzeige
AW: MsgBox-Warnung, Wert in Spalte bereits vorhanden
06.06.2018 20:40:15
Carolin
Hey,
Danke für die Lösungsansätze!
In diesem Fall bräuchte ich es tatsächlich für vba, aber es ist auf jeden Fall gut zu wissen dass es ansonsten auch so geht!
Mit vba-Code wurde mir nun schon weitergeholfen, aber allein für die Übung wird der definitiv auch mal ausprobiert.
Viele Grüße und Danke,
Caro
Anzeige
AW: MsgBox-Warnung, Wert in Spalte bereits vorhanden
06.06.2018 20:40:16
Carolin
Hey,
Danke für die Lösungsansätze!
In diesem Fall bräuchte ich es tatsächlich für vba, aber es ist auf jeden Fall gut zu wissen dass es ansonsten auch so geht!
Mit vba-Code wurde mir nun schon weitergeholfen, aber allein für die Übung wird der definitiv auch mal ausprobiert.
Viele Grüße und Danke,
Caro
Anzeige
AW: MsgBox-Warnung, Wert in Spalte bereits vorhanden
06.06.2018 18:05:46
Carolin
Hey,
https://www.herber.de/bbs/user/121998.xlsm
Hier ein ganz grundlegendes Beispiel wie es bei mir ca. aussieht. (die makros hat es glaube ich leider nicht mitübernommen) Bei mir sind die schaltflächen noch mit jeweiligen makros belegt, z. B. Das Inhalte übertragen überträgt die in Dateneingabe eingegebenen werte in die Datenliste. Und hierbei soll auch überprüft werden, ob man es vielleieicht ausversehen 2x eingetragen hat, indem das Thema verglichen wird und wenn das der fall ist eine msgbox ausgegeben wird ... Hoffe das ist verständlich so :D
Vielen Dank,
Caro
Anzeige
AW: MsgBox-Warnung, Wert in Spalte bereits vorhanden
06.06.2018 19:18:49
Oberschlumpf
Hi Carolin
hier, probier mal
https://www.herber.de/bbs/user/121999.xlsm
Ich habe einen eigenen Code entwickelt und diesen dem Button "Inhalte übertragen" zugewiesen.
Ich habe aber nur deine zuerst gestellte Frage gelöst: "Wenn Eintrag vorhanden, dann mit MsgBox Hinweis geben + Daten nicht in die Datenliste eintragen"
Dabei habe ich aber nicht nur den einen Eintrag in B1, sondern auch in B3 + B5 überprüft.
Deine neuen Fragen/Wünsche "wenn Eintrag schon mehrfach in Datenliste vorhanden, dann auch MsgBox-Hinweis" habe ich nicht berücksichtigt, da dies in deiner Erstfrage nicht angegeben war.
Ich hätte meinen Code stark verändern müssen.
Hilfts denn so schon mal?
Ciao
Thorsten
...ach ja, dein Hinweis "Hier ein ganz grundlegendes Beispiel wie es bei mir ca. aussieht....", macht mir ein wenig Sorgen.
Denn "ca." bedeutet, dass Zelle B2 (+ B3 + B5) nur in deiner Bsp-Datei die zu überprüfenden Zellen sind. In der Originaldatei könnte es sich aber um ganz andere Zellen handeln, die überprüft werden sollen. Du musst den Code dann entsprechend anpassen.
"ca." kann auch bedeuten, dass in der Originaldatei so ziemlich alles anders ist als in der Bsp-Datei.
Sollte ich recht haben, musst du halt den Code vollständig anpassen.
Oder zeig bitte per Upload eine Bsp-Datei, in der die gleichen Zeilen/Spalten genutzt werden wie in der Originaldatei.
Anzeige
AW: MsgBox-Warnung, Wert in Spalte bereits vorhanden
06.06.2018 20:29:22
Carolin
Hey Thorsten,
tut mir Leid, dass die Nachricht so schlecht formuliert war! Eigentlich meinte ich mit dem "mehrfach in Datenliste vorhanden" genau das von der ersten Frage, also was dein Code einwandfrei löst! :)
In der Originaldatei gibt es 3 Felder/Zellbezüge mehr, und von dem ganzen dann 8 Stück sodass eine DinA4 Seite voll ist.
Das habe ich aber Zwecks Vereinfachung weggelassen, da ich das Prinzip mit "copy-paste" und Änderung der Zellbezüge dafür vermutlich übernehmen kann, ohne hier den Rahmen zu sprengen. (auch wenn das vermutlich nicht so elegant aussehen wird)
Ich werde es morgen in die Originaldatei einfügen&anpassen und schauen ob es klappt. Im Beispieldokument funktioniert es auf jeden Fall genau so wie gewünscht, auch das Abprüfen der anderen Zellen zusätzlich :) Top!
Vielen Dank für deine Hilfe und Einsatz!!
LG Caro
Anzeige
AW: MsgBox-Warnung, Wert in Spalte bereits vorhanden
07.06.2018 14:57:02
Carolin
Hey,
Also hat alles super geklappt :) Vielen Dank nochmal!
LG Caro
Hey,freut mich..danke für Rückmeldung ;-) owT
07.06.2018 18:57:04
Oberschlumpf
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

MsgBox-Warnung: Wert in Spalte bereits vorhanden


Schritt-für-Schritt-Anleitung

Um zu überprüfen, ob ein Wert in einer Excel-Spalte bereits vorhanden ist und eine MsgBox-Warnung auszugeben, kannst du folgenden VBA-Code verwenden. Dieser Code wird im VBA-Editor unter dem entsprechenden Arbeitsblatt (z.B. Sheet1) eingefügt.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.
  2. Wähle das gewünschte Arbeitsblatt (z.B. "Tabelle1") im Projektfenster aus.
  3. Füge den folgenden Code in das Codefenster ein:
Private Sub Worksheet_Change(ByVal Target As Range)
    Dim lloRow As Long
    If Target.Address = "$B$2" And Target.Value <> "" Then
        With Sheets("Tabelle2") ' Anpassung des Blattnamens, falls notwendig
            For lloRow = 1 To .Cells(Rows.Count, 1).End(xlUp).Row
                If Target.Value = .Range("A" & lloRow).Value Then
                    MsgBox "Diesen Eintrag gibt es schon.", vbExclamation, "Hinweis"
                    With Application
                        .EnableEvents = False
                        .Undo
                        .EnableEvents = True
                    End With
                    Exit For
                End If
            Next lloRow
        End With
    End If
End Sub
  1. Speichere deine Änderungen und schließe den VBA-Editor.
  2. Teste den Code, indem du einen Wert in die Zelle B2 eingibst.

Häufige Fehler und Lösungen

  • Laufzeitfehler '424': Objekt erforderlich
    Dieser Fehler tritt auf, wenn der Bezug auf das Arbeitsblatt oder die Zelle nicht korrekt ist. Überprüfe, ob die Blattnamen korrekt eingegeben sind (z.B. "Tabelle2") und die Zielzelle (z.B. B2) vorhanden ist.

  • MsgBox erscheint nicht
    Stelle sicher, dass der Trigger für das Ereignis (Worksheet_Change) korrekt gesetzt ist und dass die Zelle B2 tatsächlich geändert wird.


Alternative Methoden

Falls du keine VBA-Lösungen verwenden möchtest, kannst du auch die Funktion ZÄHLENWENN nutzen, um zu überprüfen, ob ein Wert in einer bestimmten Spalte vorhanden ist:

  1. Wähle die Zelle B1 in Sheet2 aus.
  2. Gehe zu Daten > Datentools > Datenüberprüfung.
  3. Wähle "Benutzerdefiniert" aus und füge die folgende Formel ein:

    =ZÄHLENWENN(Sheet1!A:A;B1)=0

Diese Formel erlaubt nur Werte, die noch nicht in Sheet1, Spalte A vorhanden sind.


Praktische Beispiele

Hier ist ein Beispiel für einen VBA-Code, der die CountIf-Funktion verwendet, um zu überprüfen, ob ein Wert bereits vorhanden ist:

If WorksheetFunction.CountIf(Sheets("Sheet1").Range("A:A"), Sheets("Sheet2").Range("B1")) = 0 Then
    ' Hier der Code zum Übertragen des Wertes
Else
    MsgBox "Wert schon vorhanden"
End If

Dieser Code überprüft, ob der in B1 eingegebene Wert in Spalte A von Sheet1 schon existiert.


Tipps für Profis

  • Testumgebung einrichten: Erstelle eine separate Testdatei, um deine VBA-Skripte auszuprobieren, bevor du sie in deiner Hauptdatei implementierst.
  • Fehlerbehandlung: Füge Fehlerbehandlungsroutinen in deinen VBA-Code ein, um unerwartete Fehler abzufangen und zu behandeln.
  • Dokumentation: Kommentiere deinen Code ausführlich, damit du und andere Benutzer verstehen, was jeder Teil des Codes bewirken soll.

FAQ: Häufige Fragen

1. Kann ich den Code für andere Zellen anpassen?
Ja, du kannst die Zelle, die überprüft werden soll, in der If-Bedingung ändern und den Code entsprechend anpassen.

2. Funktioniert das auch in Excel Online?
VBA-Code funktioniert nicht in Excel Online. Du kannst jedoch die Datenüberprüfungsmethode verwenden, um Werte zu überprüfen.

3. Was tun, wenn ich keine MsgBox sehen kann?
Überprüfe, ob das Ereignis Worksheet_Change korrekt implementiert ist und ob Makros in deiner Excel-Version aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige