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

Entferntes Feature:

Forumthread: Entferntes Feature:

Entferntes Feature:
25.05.2022 10:21:46
Thomas
Hallo in die Runde,
hallo Oberschlumpf,
ich habe noch mal eine Rückfrage zu deinem in der letzten Woche geschriebenen Makro.
Vielleicht kannst du dich noch daran erinnern?

Sub sbValidateA5()
Dim lstrVal As String, lloRow As Long, lboExist As Boolean, lstrSplit() As String, liIdx As Integer
With Sheets("Admin") 'wenn im Original anderer Name, dann anpassen!
For lloRow = 30 To .Cells(.Rows.Count, 1).End(xlUp).Row
lstrSplit = Split(lstrVal, ",")
For liIdx = 0 To UBound(lstrSplit)
If lstrSplit(liIdx) = .Range("A" & lloRow).Value Then
lboExist = True
Exit For
End If
Next
If lboExist = True Then
lboExist = False
Else
lstrVal = lstrVal & .Range("A" & lloRow).Value & ","
End If
Next
End With
lstrVal = Left(lstrVal, Len(lstrVal) - 1)
With Range("A5").Validation 'hier erhält die Zelle A5 die Dropdownfunktion; jede Sortennr kommt nur einmal im Dropdown vor, auch wenn diese mehrfach in Tabelle1 enthalten ist!
.Delete
.Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
xlBetween, Formula1:=lstrVal
.IgnoreBlank = True
.InCellDropdown = True
.InputTitle = ""
.ErrorTitle = ""
.InputMessage = ""
.ErrorMessage = ""
.ShowInput = True
.ShowError = True
End With
End Sub
Ich habe die Datei jetzt von einer .xls in eine . xlsxm abgespeichert und bekomme jetzt folgenden Fehler beim Öffnen.
Entferntes Feature: Datenüberprüfung von /xl/worksheets/sheet3.xml-Part
hat jemand eine Idee wie ich diesen Fehler beheben kann?
Vielen Dank
Anzeige

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Entferntes Feature:
25.05.2022 10:54:07
Oberschlumpf
Hi Thomas,
auch ich hatte, ohne durchgeführte Änderungen, auf einmal den selben Fehler.
Beseitigt hab ich ihn dadurch, dass nun vor jedem Speichern die Datengültigkeitsliste in Zelle A5 gelöscht wird.
Wenn du speicherst, aber die Datei nicht schließt, dann bekommst du die Datengültigkeitsliste in A5 wieder, in dem du zwischen den Tabellenblättern wechselst.
https://www.herber.de/bbs/user/153263.xlsm
Hilfts?
Ciao
Thorsten
Anzeige
AW: Entferntes Feature:
25.05.2022 11:16:30
peterk
Hallo
Ein altes Problem.
Deine Validation List "lstrVal" hat eine Länge von 297. Excel kann gut damit arbeiten und auch speichern, aber beim Einlesen (öffnen) werden nur 256 Bytes akzeptiert (daher auch die Fehlermeldung). Besser: Die eindeutigen Werte in eine eigene Spalte schreiben und der Liste diesen Range zuweisen (damit ist das Problem der Stringlänge behoben).
Peter
Anzeige
AW: Entferntes Feature:
25.05.2022 11:17:59
Oberschlumpf
ah Peter!
Danke, das wußte ich noch nicht.
Ciao
Thorsten
AW: Entferntes Feature:
25.05.2022 11:39:32
Thomas
Hallo Peter,
hallo Thorsten,
also Lösung von Thorsten funktioniert.
Danke schon mal.
Wobei das Wechseln der Tabellenblätter etwas stört... Kann man das umgehen?
Die Lösung von Peter vestehe ich leider nicht.
Anzeige
AW: Entferntes Feature:
25.05.2022 15:10:42
Oberschlumpf
hi thomas,
hier, korrigiert
https://www.herber.de/bbs/user/153272.xlsm
Nach dem Hinweis von Peter:
Anstelle einer Variablen mit kommagetrennten Inhalten als Datengültigkeitsliste für Zelle A5 in "Bet.tag.buch" habe ich nun...
- aus "Admin" Spalte W als Hilfsspalte eingesetzt
- zuerst folgt wie bisher das Auslesen, und auf nur 1x enthalten minimiert, der Werte aus "Admin", Spalte A in eine Array-Variable
- der Inhalt der Array-Variablen wird in "Admin", Spalte W, ab Zeile 3 eingefügt
- nun wird der Zelle A5 in "Bet.tag.buch" als Datengültigkeitsliste direkt der Zellbereich "Admin!W3:Ende W" zugewiesen
So entsteht nicht mehr das von Peter erklärte Problem - und - du hast auch nach Zwischenspeichern, ohne Blattwechsel, weiterhin die Auswahlwerte in Zelle A5.
Ich hab im Code weitere Kommentare hinterlassen.
Extra Leerzeilen im Code hab ich deswegen gesetzt, damit du schneller erkennst, an welchen Stellen der korrigierte Code wirkt.
Hilfts?
Ciao
Thorsten
...ach so...ich hab Spalte W in "Admin" verwendet, weil es zumindest für mich in der Bsp-Datei wie eine von dir unbenutzte Spalte aussieht
Wenn du im Original auch Spalte W für andere Einträge benutzt, dann musst du den Code nur so weit anpassen, dass als Hilfsspalte eine andere Spalte ab Zeile 3 verwendet wird.
Anzeige
AW: Entferntes Feature:
25.05.2022 16:15:07
Thomas
Hallo Thorsten,
Danke für deine Rückmeldung.
Leider kann ich Trotz deinem "F1 Tip" dein Makro immer noch nicht folgen da habe ich zu wenig Ahnung von VBA :-(
Wenn ich dich jetzt aber richtig verstehe, hast du in "Admin" W eine Hilfsspalte eingefügt...
Ist diese überhaupt notwendig?
Die Tabelle "Admin" ist bereits eine komplette Hilfstabelle in der Informationen für Userformen etc enthalten sind.
Ich habe u.a. eine Userform mit ComboBox die mir die Sortennummer ausgibt die Info kommt aus "Admin" A30:A66
Könnte dein Makro nicht auch darauf zugreifen oder für was benötigst du W3:Ende W?
Leider ist die gesamte Datei zu groß um sie hier hochzuladen.
Aber könnte ich nicht eine Combobox mit Auswahl "Admin" A30:A66 den ausgewählten Wert in "Betontagebuch" A5 schreiben und dann dein Makro starten?
Vielen Dank schon mal
Gruß Thomas
Anzeige
AW: Entferntes Feature:
25.05.2022 17:37:13
Oberschlumpf
Hi Thomas,
ich mag nicht mehr :-/
also....
Ich habe in "Admin" - nicht - eine Spalte W hinzugefügt, sondern ich NUTZE in "Admin" die Spalte W für mich als Hilfsspalte und füge dieser Spalte die zuvor gefilterten Werte aus Spalte A hinzu
(schau dir mal in Excel jedes Tabellenblatt an; Anzeige der Spaltenköpfe muss aktiv sein! Dann siehst du über der 1. Spalte in jedem Blatt ein A, über der 2. Spalte ist ein B.....über der 23. Spalte ist ein W --- und genau diese Spalte W nutze ich als Hilfsspalte; es sei denn, in deinem Original ist Spalte W schon anderweitig im Einsatz, was ich in den bisherigen Bsp-Dateien nicht sehen kann; wenn du Spalte W schon nutzt, musst du meinen korrigierten Code anpassen (lassen) )
Und - ja - eine Hilfsspalte, egal ob W oder sonst eine, ist nun notwendig.
Auf die Hilfsspalte wird nun bei Zuweisung der Datengültigkeitsliste für Zelle A5 direkt verwiesen - weil...sonst...Fehler beim Öffnen
hää? du schreibst:
ein Userform(lular) mit ComboBox die mir die Sortennummer ausgibt die Info kommt aus "Admin" A30:A66
ähhh?
A30:A66 bzw 69 ist genau DER Bereich, für den ich seit vielen Tagen versuche, für Zelle A5 die Einträge zu gestalten!
Brauchst du das zusätzlich zur Combobox im Userformular, oder brauchst du Zelle A5 eigtl gar nicht mehr?
Warum wehrst du dich soooo sehr gegen "meine Hilfsspalte" W in "Admin"?
Wenn ich - jetzt gerade im Augenblick - auch nich wirklich mehr Lust habe, weiterzuhelfen - weil immer immer wieder irgdwas nich passt.....aber die letzte Frage möchte ich schon beantwortet haben.
Ciao
Thorsten
Anzeige
AW: Entferntes Feature:
27.05.2022 08:34:07
Thomas
Hallo Thorsten,
danke für deine Hilfe.
Eigentlich wehre ich mich nicht gegen deine Hilfsspalte da ich in Tabelle "Admin" auch nur Hilfsspalten verwalte.
Habe nur etwas Bedenken, wenn ich in der Spalte Admin mal wieder etwas abändere (kommt alle 2-3 Jahre mal vor)
Kann ich mich wahscheinlich nict mehr daran erinnern was ich alles abändern muss.
Aber egal jetzt funktioniert alles und das ist das wichtigst.
Dir ein schönes Wochenende und noch mal dDenke für deine Hilfe.
Gruss Thomas
Anzeige
jippiiehh...weiter viel Erfolg!...owT
27.05.2022 08:40:52
Oberschlumpf
;
Anzeige

Infobox / Tutorial

Umgang mit dem Entfernten Feature in Excel: Objekt von /xl/workbook.xml-part (Arbeitsmappe)


Schritt-für-Schritt-Anleitung

  1. Makro erstellen oder anpassen: Wenn du ein Makro zur Verwaltung von Datenüberprüfungen in Excel verwendest, stelle sicher, dass es auf die korrekten Zellen zugreift. Hier ist ein Beispiel für ein einfaches Makro, das die Dropdown-Liste in Zelle A5 effizient verwaltet:

    Sub sbValidateA5()
       Dim lstrVal As String, lloRow As Long, lboExist As Boolean, lstrSplit() As String, liIdx As Integer
       With Sheets("Admin")
           For lloRow = 30 To .Cells(.Rows.Count, 1).End(xlUp).Row
               lstrSplit = Split(lstrVal, ",")
               For liIdx = 0 To UBound(lstrSplit)
                   If lstrSplit(liIdx) = .Range("A" & lloRow).Value Then
                       lboExist = True
                       Exit For
                   End If
               Next
               If lboExist = True Then
                   lboExist = False
               Else
                   lstrVal = lstrVal & .Range("A" & lloRow).Value & ","
               End If
           Next
       End With
       lstrVal = Left(lstrVal, Len(lstrVal) - 1)
       With Range("A5").Validation
           .Delete
           .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _
           xlBetween, Formula1:=lstrVal
           .IgnoreBlank = True
           .InCellDropdown = True
       End With
    End Sub
  2. Datenüberprüfung vor dem Speichern löschen: Um den Fehler "entferntes Feature" zu vermeiden, lösche die Datenüberprüfung in Zelle A5 vor dem Speichern. Dies kann einfach im Makro integriert werden.

  3. Speichern der Datei als .xlsxm: Speichere deine Datei im .xlsxm-Format, um die Makrofunktionalität zu erhalten. Achte darauf, dass alle Datenvalidierungen korrekt gesetzt sind.


Häufige Fehler und Lösungen

  • Fehler beim Öffnen der Datei: Wenn du die Datei öffnest und die Fehlermeldung "entferntes Feature: Datenüberprüfung von /xl/worksheets/sheet3.xml-Part" erhältst, könnte dies an der Länge der Validierungslisten liegen.

  • Lösung: Reduziere die Länge der Validierungslisten auf weniger als 256 Zeichen. Eine Alternative ist, die eindeutigen Werte in eine separate Spalte zu schreiben und diese als Datenquelle für die Validierung zu verwenden.


Alternative Methoden

  • Verwendung einer Hilfsspalte: Anstatt eine große Validierungsliste direkt in Zelle A5 einzufügen, kannst du eine Hilfsspalte verwenden. Hierbei kannst du die eindeutigen Werte aus "Admin" in einer Spalte speichern und diesen Bereich dann in der Datenüberprüfung verwenden.

  • ComboBox nutzen: Wenn du eine Userform mit einer ComboBox hast, die die Sortennummer ausgibt, kannst du diese direkt nutzen, um den Wert in Zelle A5 zu schreiben. Dies könnte die Notwendigkeit verringern, Datenüberprüfungen ständig zu aktualisieren.


Praktische Beispiele

  1. Beispiel für die Nutzung einer Hilfsspalte: In der "Admin"-Tabelle kannst du die Spalte W als Hilfsspalte nutzen. Hier werden gefilterte Werte aus Spalte A eingetragen. Der Code könnte wie folgt aussehen:

    ' Hier wird die Hilfsspalte W verwendet
    .Range("W3").Value = lstrVal ' lstrVal enthält die gefilterten Werte
  2. Verwendung einer ComboBox: Wenn du eine Combobox in deiner Userform verwendest, kannst du den ausgewählten Wert in Zelle A5 schreiben, bevor du das Makro ausführst.


Tipps für Profis

  • Makros optimieren: Achte darauf, dass dein Makro effizient arbeitet und unnötige Berechnungen vermeidet. Verwende Application.ScreenUpdating = False und Application.Calculation = xlCalculationManual, um die Leistung zu steigern.

  • Fehlerbehandlung einfügen: Implementiere eine Fehlerbehandlung in deinem Makro, um unerwartete Fehler abzufangen und die Benutzerfreundlichkeit zu verbessern.


FAQ: Häufige Fragen

1. Was ist das entfernte Feature? Das entfernte Feature bezieht sich auf Datenüberprüfungen, die in Excel nicht mehr unterstützt werden, insbesondere in Verbindung mit langen Validierungslisten.

2. Wie kann ich die Länge der Validierungslisten reduzieren? Du kannst die eindeutigen Werte in eine Hilfsspalte schreiben, um die Länge der Validierungslisten zu reduzieren und Fehler beim Öffnen der Datei zu vermeiden.

3. Was mache ich, wenn ich die Datei nicht speichern kann? Stelle sicher, dass du alle Datenüberprüfungen in deinem Makro korrekt behandelst und keine langen Validierungslisten verwendest.

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