Meldung bei doppelten Werten in Excel
Schritt-für-Schritt-Anleitung
Um eine Meldung zu erhalten, wenn ein Wert in Excel doppelt eingetragen wird, kannst Du den folgenden VBA-Code verwenden. Dieser Code überprüft das aktive Arbeitsblatt, ob der Wert in Spalte C bereits vorhanden ist.
- Öffne Excel und drücke
ALT + F11, um den VBA-Editor zu öffnen.
- Füge ein neues Modul ein: Rechtsklick auf "VBAProject (DeinDateiname)" > Einfügen > Modul.
- Kopiere den folgenden Code in das Modul:
Sub Stammdaten_kopieren()
Dim Loletzte As Long
Dim rng As Range
Dim AktBl As String
AktBl = ActiveSheet.Name
With Sheets(AktBl)
Set rng = .Range("C1:C145").Find(What:=Selection, _
LookIn:=xlValues, LookAt:=xlWhole)
If Not rng Is Nothing Then
MsgBox "Eintrag schon vorhanden!", vbExclamation
Exit Sub
Else
If .Range("C145") = "" Then
Loletzte = .Range("C145").End(xlUp).Row
Selection.Copy Destination:=.Cells(Loletzte + 1, 3)
Else
MsgBox "keine Zelle mehr frei"
End If
End If
End With
Sheets(AktBl).Select
End Sub
- Schließe den VBA-Editor und kehre zu Excel zurück.
- Wähle den Wert, den Du eingeben möchtest, und führe das Makro aus.
Häufige Fehler und Lösungen
-
Fehler: "Eintrag schon vorhanden!"
- Dieser Fehler tritt auf, wenn der Wert, den Du eingeben möchtest, bereits in Spalte C vorhanden ist. Überprüfe die Werte in Spalte C.
-
Fehler: "keine Zelle mehr frei"
- Dies bedeutet, dass die Zelle C145 bereits belegt ist. Du kannst entweder die Zellen in Spalte C bereinigen oder den Code anpassen, um mehr Zeilen zu berücksichtigen.
-
Makro muss manuell gestartet werden
- Um das Makro automatisch bei jedem Zellwechsel auszuführen, füge den folgenden Code in das "ThisWorkbook"-Modul ein:
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
Stammdaten_kopieren
End Sub
Alternative Methoden
Eine Alternative zu VBA ist die Verwendung von bedingter Formatierung, um doppelte Werte visuell hervorzuheben:
- Wähle die Spalte C aus.
- Gehe zu "Start" > "Bedingte Formatierung" > "Regeln zum Hervorheben von Zellen" > "Doppelte Werte".
- Wähle eine Formatierung aus und klicke auf "OK".
Diese Methode gibt dir eine visuelle Rückmeldung, ohne dass ein Makro erforderlich ist.
Praktische Beispiele
Angenommen, Du hast eine Liste von Mitgliedern in Spalte C, und möchtest sicherstellen, dass keine doppelten Namen eingetragen werden. Mit dem oben angegebenen VBA-Code kannst Du schnell prüfen, ob der Name bereits vorhanden ist, bevor Du ihn hinzufügst.
Wenn Du das Makro ausführst, während Du einen Namen in die aktive Zelle eingibst, wird eine Meldung angezeigt, wenn der Name bereits existiert.
Tipps für Profis
- Fehlerbehandlung implementieren: Füge Fehlerbehandlungsroutinen hinzu, um das Makro robuster zu machen.
On Error Resume Next
-
Erweiterung des Codes: Du kannst den Code anpassen, um nicht nur auf Spalte C, sondern auf andere Spalten zu prüfen, indem Du den Bereich in .Range("C1:C145") änderst.
-
Verwendung von Variablen: Verwende Variablen für die Bereiche und Werte, um den Code flexibler und leichter anpassbar zu machen.
FAQ: Häufige Fragen
1. Wie kann ich das Makro automatisch beim Öffnen der Datei ausführen?
Du kannst das Makro im "Workbook_Open"-Ereignis platzieren:
Private Sub Workbook_Open()
Stammdaten_kopieren
End Sub
2. Funktioniert der Code in allen Excel-Versionen?
Ja, der Code sollte in allen aktuellen Excel-Versionen funktionieren, die VBA unterstützen, einschließlich Excel 2016, 2019 und Microsoft 365.