Live-Forum - Die aktuellen Beiträge
Datum
Titel
17.10.2025 10:28:49
16.10.2025 17:40:39
16.10.2025 17:25:38
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Fehler Datenüberprüfung

Fehler Datenüberprüfung
01.01.2023 17:55:07
ChrisDerAnfänger
Hallo zusammen und Frohes Neues. :-)
Ich habe eine Datei mit mehreren Blättern, die aufeinander zugreifen und in denen u.a. Leistungsdaten von Mitarbeitern stehen. Ich habe eine Mitarbeiterliste mit zwei Teams. Manchmal brauche ich alle, manchmal nur ein Team, weswegen ich die Tabelle so ergänzt habe, dass in einer Spalte das Team angegeben ist. Über die Funktion "FILTER" werden die MA dann auf zwei weitere Tabellen aufgesplittet.
In einem Blatt, auf dem die MA-Daten von verschiedenen anderen Blättern zusammengetragen werden, gibt es eine Datenüberprüfung, in dem die MA aufgelistet sind. Über VBA kann dann entweder das komplette Projekt oder ein einzelnes Team ausgewählt werden.
Mittels Internetrecherche, Macrorecorder (z.B. für das Einfügen der Formeln in die Zellen...) und meinen äußerst bescheidenen VBA-Kenntnissen (die aber immerhin dafür gereicht haben, dass das Drehfeld mit Daten aus Zellen gefüttert wird...) habe ich dann folgenden Code zusammen gebastelt, der tatsächlich der zweite Versuch war:

Sub MAUbersicht_Projekt()
With ActiveSheet.Range("$L$8")
Dim Eintraege As String, Obj As Range
For Each Obj In Tabelle68.Range("B6:B66")
Eintraege = Eintraege & Obj.Value & ","
Next Obj
With .Validation
On Error Resume Next
.Delete
If Eintraege  "" Then
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:=Left$(Eintraege, Len(Eintraege) - 1)
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = "MeineInfo"
.ErrorMessage = "Diese Eingabe ist falsch!"
.ShowInput = True
.ShowError = False
End If
End With
End With
ActiveSheet.Shapes.Range(Array("Spinner 27")).Select
With Selection
.Value = Range("Mitarbeiterliste!K6").Value
.Min = 1
.Max = Range("Mitarbeiterliste!K6").Value
.SmallChange = 1
.LinkedCell = "Mitarbeiterliste!$H$6"
.Display3DShading = True
End With
Range("C8:G8").Select
ActiveCell.FormulaR1C1 = _
"=""::: ""&IF(RC[9]="""",XLOOKUP(Mitarbeiterliste!R[-2]C[5],Mitarbeiterliste!R[-2]C[4]:R[58]C[4],Mitarbeiterliste!R[-2]C[-1]:R[58]C[-1]),RC[9])&"" :::"""
Range("C7").Select
ActiveCell.Formula2R1C1 = _
"=""'""&IF(R[1]C[9]="""",XLOOKUP(Mitarbeiterliste!R[-1]C[5],Mitarbeiterliste!R[-1]C[4]:R[59]C[4],t_MA35[Kennung]),XLOOKUP(R[1]C[9],t_MA35[Mitarbeiter],t_MA35[Kennung]))&""'"""
Sheets("Mitarbeiterliste").Select
Range("K6").Select
Selection.Copy
Range("H6").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("MA_Übersicht_AHT").Select
ActiveSheet.Shapes.Range(Array("Button 36")).Select
Selection.Characters.Text = "Projekt"
With Selection.Characters(Start:=1, Length:=7).Font
.Name = "Calibri"
.FontStyle = "Fett"
.Size = 11
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 1
End With
ActiveSheet.Shapes.Range(Array("Button 37")).Select
Selection.Characters.Text = "Team 1"
With Selection.Characters(Start:=1, Length:=9).Font
.Name = "Calibri"
.FontStyle = "Standard"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 1
End With
ActiveSheet.Shapes.Range(Array("Button 38")).Select
Selection.Characters.Text = "Team 2"
With Selection.Characters(Start:=1, Length:=7).Font
.Name = "Calibri"
.FontStyle = "Standard"
.Size = 8
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.ColorIndex = 1
End With
Range("A1").Select
End Sub
Dasselbe gibt es dann noch entsprechend für jedes einzelne Team.
Die Subs sind dann entsprechenden Schaltflächen zugewiesen.
Erstaunlicherweise funktioniert das so auch und das wie erwähnt beim zweiten Versuch...
Mein Problem: Bei jedem Start der Datei zeigt Excel folgendes an:
"Wir haben ein Problem bei einigen Inhalten in "..." erkannt. Sollen wir so viel wie möglich wiederherstellen? Wenn Sie der Quelle dieser Arbeitsmappe vertrauen, klicken Sie bitte auf "Ja"."
Wenn man auf "Ja" klickt kommt dann irgendwann:
"Entferntes Feature: Datenüberprüfung von /xl/worksheets/sheet6.xml-Part"
Die Datenüberprüfung ist dann weg. Klickt man eine der Schaltflächen wieder an, ist die Datenüberprüfung aber wieder da und funktioniert tadellos.
Ich hoffe jemand kann mir so helfen - leider ist die Datei praktisch fertig und mit vielen Daten gefüllt, sodass ich nicht so einfach das ganze hochladen kann.
Vielen Dank schon mal. ;-)
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler Datenüberprüfung
02.01.2023 06:40:48
RPP63
Moin!
Ob es dadurch besser wird, weiß ich nicht.
Aber warum vergibst Du die Datengültigkeit ungelenk über eine Textverkettung und nicht gleich mittels Zuweisung des Range?

.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:=Tabelle68.Range("$B$6:$B$66")
Gruß Ralf
Anzeige
Noch etwas!
02.01.2023 06:44:06
RPP63
Du benutzt On Error Resume Next
Das kann man nutzen, wenn man auf einen erwarteten Fehler laufen könnte.
Insofern erst mal korrekt.
Aber:
Nach dem erwarteten Fehler sollte man dies unbedingt sofort wieder ausstellen!
Also:

With .Validation
On Error Resume Next
.Delete
On Error Goto 0

Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Fehler bei der Datenüberprüfung in Excel beheben


Schritt-für-Schritt-Anleitung

  1. Öffne die Excel-Datei und gehe zum Blatt, wo die Datenüberprüfung eingefügt ist.
  2. Überprüfe den VBA-Code: Stelle sicher, dass der Code zur Erstellung der Datenüberprüfung korrekt ist. Hier ein Beispiel, wie Du die Datenüberprüfung direkt über einen Range zuweisen kannst:
    With .Validation
       On Error Resume Next
       .Delete
       On Error GoTo 0
       .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, _
       Operator:=xlBetween, Formula1:=Tabelle68.Range("$B$6:$B$66")
    End With
  3. Vermeide das ständige Anzeigen der Fehlermeldung „Wir haben ein Problem bei einigen Inhalten in ... erkannt“. Um dies zu minimieren, solltest Du den Code so anpassen, dass Fehler abgefangen werden:
    On Error Resume Next
    ' Dein Code hier
    On Error GoTo 0
  4. Speichere die Datei und teste die Änderungen. Achte darauf, ob die Fehlermeldung weiterhin erscheint.

Häufige Fehler und Lösungen

  • Fehlermeldung: Wir haben ein Problem bei einigen Inhalten erkannt: Diese Meldung kann auftreten, wenn die Datenüberprüfung fehlerhaft ist oder nicht korrekt zugewiesen wird. Überprüfe, ob die Zellen, auf die verwiesen wird, tatsächlich Daten enthalten.

  • Datenüberprüfung wird beim Öffnen entfernt: Wenn Du beim Öffnen der Datei die Meldung erhältst, dass Inhalte entfernt wurden, könnte dies an einer fehlerhaften Verknüpfung im VBA-Code liegen. Achte darauf, dass alle Referenzen korrekt sind und keine ungültigen Zellen oder Bereiche angesprochen werden.


Alternative Methoden

  • Verwende Formeln anstelle von VBA: Wenn Du mit VBA Probleme hast, kannst Du die Datenüberprüfung auch direkt über die Excel-Oberfläche einrichten. Wähle die Zelle aus, gehe zu „Daten“ > „Datenüberprüfung“ und führe die Einstellungen dort durch.

  • Einfache Listen: Anstatt komplexe VBA-Skripte zu verwenden, könntest Du auch einfach eine Liste in einem anderen Blatt erstellen und diese in der Datenüberprüfung verwenden.


Praktische Beispiele

Nehmen wir an, Du hast eine Liste von Mitarbeitern in einem Blatt namens „Mitarbeiterliste“:

  1. Erstelle eine Liste in einem Bereich, z. B. B6:B66.
  2. Füge die Datenüberprüfung in einer anderen Zelle hinzu:
    With Range("A1").Validation
       .Delete
       .Add Type:=xlValidateList, Formula1:="=Mitarbeiterliste!$B$6:$B$66"
    End With
  3. Teste die Dropdown-Liste in der Zelle „A1“, um sicherzustellen, dass die Mitarbeiter korrekt angezeigt werden.

Tipps für Profis

  • VBA-Fehler abfangen: Nutze On Error Resume Next und On Error GoTo 0, um sicherzustellen, dass Dein Code auch bei Auftreten eines Fehlers nicht sofort abbricht.

  • #DIV/0! Fehler ausblenden: Wenn Du Berechnungen durchführst, die möglicherweise einen Division durch Null Fehler erzeugen, kannst Du die Formel so anpassen, dass sie den Fehler abfängt:

    =IFERROR(A1/B1, " ")
  • Tägliche Sicherungen: Mache regelmäßig Sicherungen Deiner Excel-Dateien, insbesondere wenn Du mit VBA arbeitest, um Datenverlust zu vermeiden.


FAQ: Häufige Fragen

1. Warum wird die Datenüberprüfung beim Öffnen der Datei entfernt?
Die Datenüberprüfung könnte aufgrund eines Fehlers im VBA-Code oder ungültiger Zellreferenzen entfernt werden. Überprüfe den Code und die Zellverweise genau.

2. Was kann ich tun, wenn ich eine Fehlermeldung erhalte, aber keine Probleme in den Daten sehe?
Versuche, die Datenüberprüfung neu zu erstellen oder die Excel-Datei zu reparieren. Achte darauf, ob alle Zellverweise korrekt sind und keine nicht existierenden Bereiche angesprochen werden.

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