Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1912to1916
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

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. ;-)

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
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

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige