Fehlermeldung Problem bei einigen Inhalten
#1
Star 
Hallo Leute,

ich habe seit neuem eine Fehlermeldung bzw. ein Hinweis wenn ich meine Exceltabelle öffne.

Wie finde ich heraus bei welchen Inhalten er ein Problem hat?

Im Anhang hab ich ein Bild von der Fehlermeldung beigefügt.

Vielen Dank.


Angehängte Dateien Thumbnail(s)
   
Gruß
Kapi  :19:
Top
#2
Hallo,

holst Du vielleicht Daten aus einer zweiten Tabelle? Dann "Ja" klicken.

lg
Marcus

Wissen ist Macht - es ist aber nicht schlimm nicht alles zu wissen.
Man muss nicht alles wissen - man muss nur wissen wo es steht, oder wo man Hilfe bekommt.
Top
#3
Also nicht bewusst.

Auch wenn ich nein klicke kommt das ab und zu wieder, deswegen wollte ich wissen wo ich sehen kann um was es sich handelt.

Zum Hintergrund:
Das ist eine passwortgeschützte Tabelle und hab daraus ein Tabellenblatt mal kopiert und dort hab ich das Passwort und den Blattschutz aufgehoben.
Aber seit dem kommt immer diese Meldung.
Gruß
Kapi  :19:
Top
#4
Hallo

mit diesem Code von Hajo kannst du feststellen ob es (unerwünschte) externe Verknüpfungen, z.B. Formeln, zu einer anderen Datei gibt?
Wenn Nein könnten es noch Workbook Namen zu anderen Dateien sein. Die können wir auch aufspüren. Das ist aber ein anderer Code. 

mfg Gast 123

Code:
Option Explicit       'Verknüpfungen Hajo


Sub Verknuepfte_Zellen()
'**************************************************
'* H. Ziplies                                     *
'* 24.08.08                                       *
'* erstellt von HajoZiplies@web.de                *
'* http://Hajo-Excel.de/                          *
'**************************************************
   On Error GoTo Fehler1                           ' Fehlerbehandlung ausschalten
   Dim RaZelle As Range                            ' Variable für aktuelle Zelle
   Dim ByMldg As Byte                              ' Variable Meldung
   Dim WsSh As Worksheet                           ' Variable Tabelle
   Dim ObZelle As Object                           ' Variable für Namen

   For Each WsSh In Worksheets                     ' Schleife über alle Tabellen der Datei
       ' Prüfen ob Tabelle schon vorhanden
       If InStr(WsSh.Name, "Verknüpfungen") > 0 Then
           ByMldg = MsgBox("Eine Tabelle mit dem Namen " _
               & "Verknüfungen ist schon vorhanden, sollen die " _
               & "Daten gelöscht werden", vbYesNo + vbQuestion, _
               "Löschabfrage ?", "", 0)
           If ByMldg = 6 Then              ' Ja wurde gedrückt
               ' Zellen komplett löschen,
               ' da schon bestimmte Formate eingestellt
               WsSh.Cells.Delete
               ' Kennzeichnen dass Tabelle schon vorhanden
               ByMldg = 45
               ' Schleife verlasse, da Tabelle gefunden
               Exit For
           Else
               Exit Sub
           End If
       End If
   Next WsSh
   Application.ScreenUpdating = False              ' Bildschirmaktualisierung ausschalten
   Application.EnableEvents = False                ' Reaktion Eingabe abschalten
   If ByMldg <> 45 Then                            ' Tabelle anlegen falls noch nicht vorhanden
       ' Anlegen hinter der letzten Tabelle ubnd Namen geben
       Sheets.add(After:=Sheets(Sheets.Count)).Name = "Verknüpfungen"
       With ActiveWindow
           .SplitRow = 2
           .FreezePanes = True
       End With
   End If
   With Worksheets("Verknüpfungen")
       ' Überschriftszeilen
       ' Formel mit Ergebnis Fehler
       .Cells(1, 1) = "Formel mit Ergebnis Fehler"
       .Cells(2, 1) = "Zelle"
       .Cells(2, 2) = "Tabelle"
       .Cells(2, 3) = "Formel"
       ' Formel zu anderen Arbeitsmappe
       .Cells(1, 5) = "Formel zu anderen Arbeitsmappe"
       .Cells(2, 5) = "Zelle"
       .Cells(2, 6) = "Tabelle"
       .Cells(2, 7) = "Formel"
       ' Formel zu anderen Tabellen in dieser Arbeitsmappe
       .Cells(1, 9) = "andere Tabelle"
       .Cells(2, 9) = "Zelle"
       .Cells(2, 10) = "Tabelle"
       .Cells(2, 11) = "Formel"
       ' restliche Formel
       .Cells(1, 13) = "Rest"
       .Cells(2, 13) = "Zelle"
       .Cells(2, 14) = "Tabelle"
       .Cells(2, 15) = "Formel"
       ' definierte Namen in dieser Arbeitsmappe
       .Cells(1, 17) = "definierte Namen"
       .Cells(2, 17) = "Name"
       .Cells(2, 18) = "Zelle"
       .Cells(2, 19) = "Tabelle"
       Rows("1:2").Font.Bold = True
       For Each WsSh In Worksheets                 ' Schleife über alle Tabellen
           If WsSh.Name <> "Verknüpfungen" Then
               ' Schutz aufheben falls vorhanden
               ' WsSh.Unprotect "Passwort"
               On Error Resume Next
               Set RaZelle = WsSh.UsedRange.SpecialCells(xlCellTypeFormulas)
               Set RaZelle = Nothing
               If Err.Number = 0 Then
                   On Error GoTo 0
                   ' Schleife über den benuzten Bereich mit Formel
                   For Each RaZelle In WsSh.UsedRange.SpecialCells(xlCellTypeFormulas)
                       ' Formeln mit Fehler
                       If IsError(RaZelle.Value) Then
                           .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row + 1, 1) _
                               = RaZelle.Address(0, 0)
                           .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 2) _
                               = CStr(WsSh.Name)
                           .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 3) _
                               = "'" & RaZelle.FormulaLocal
                       ' Formel zu anderer Arbeitsmappe
                       ElseIf InStr(RaZelle.Formula, ":\") <> 0 Then
                           .Cells(.Cells(.Rows.Count, 5).End(xlUp).Row + 1, 5) _
                               = RaZelle.Address(0, 0)
                           .Cells(.Cells(.Rows.Count, 5).End(xlUp).Row, 6) _
                               = CStr(WsSh.Name)
                           .Cells(.Cells(.Rows.Count, 5).End(xlUp).Row, 7) _
                               = "'" & RaZelle.FormulaLocal
                       ' Formel zu andere Tabelle
                       ElseIf InStr(RaZelle.Formula, "!") > 1 Then
                           .Cells(.Cells(.Rows.Count, 9).End(xlUp).Row + 1, 9) _
                               = RaZelle.Address(0, 0)
                           .Cells(.Cells(.Rows.Count, 9).End(xlUp).Row, 10) _
                               = CStr(WsSh.Name)
                           .Cells(.Cells(.Rows.Count, 9).End(xlUp).Row, 11) _
                               = "'" & RaZelle.FormulaLocal
                        Else               ' restliche Formeln
                           .Cells(.Cells(.Rows.Count, 13).End(xlUp).Row + 1, 13) _
                               = RaZelle.Address(0, 0)
                           .Cells(.Cells(.Rows.Count, 13).End(xlUp).Row, 14) _
                               = CStr(WsSh.Name)
                           .Cells(.Cells(.Rows.Count, 13).End(xlUp).Row, 15) _
                               = "'" & RaZelle.FormulaLocal
                       End If
                   Next RaZelle
               End If
               On Error GoTo 0                     ' Fehlerbehandlung einschalten
           End If
           ' WsSh.Protect "Passwort"               ' Schutz wieder setzen
       Next WsSh
       ' Programmteil Namen auslesen
       ' Schleife über alle Namen der Datei
       For Each ObZelle In ActiveWorkbook.Names
           .Cells(.Cells(.Rows.Count, 17).End(xlUp).Row + 1, 17) _
               = ObZelle.Name
           With .Cells(.Cells(.Rows.Count, 17).End(xlUp).Row, 18)
               If InStr(ObZelle, "REF") <> 0 Then
                   .Value = Mid(ObZelle, InStr(ObZelle, "!") + 1)
                   .Font.Bold = True
                   .Font.ColorIndex = 3
               ElseIf InStr(ObZelle, "\") <> 0 Then
                   .Value = Mid(ObZelle, InStr(ObZelle, "!") + 1)
                   .Font.Bold = True
                   .Font.ColorIndex = 4
               Else
                   .Value = Mid(ObZelle, InStr(ObZelle, "!") + 1)
               End If
           End With
           If InStr(ObZelle.RefersTo, "!") > 0 Then
               .Cells(.Cells(.Rows.Count, 17).End(xlUp).Row, 19) _
                   = Application.WorksheetFunction.Substitute(Mid(ObZelle, _
                   2, InStr(ObZelle, "!") - 2), "'", "")
           Else
               .Cells(.Cells(.Rows.Count, 17).End(xlUp).Row, 19) _
                   = ObZelle.RefersTo
           End If
       Next
       .Range("B:C,F:G,J:K,N:O, R:S").EntireColumn.AutoFit
       ' Überschriftszeilen
       ' Formel mit Ergebnis Fehler
       .Cells(1, "A") = "Zellen mit Ergebnis Error"
       ' Formel zu anderen Arbeitsmappe
       .Cells(1, "E") = "Formeln zu anderen Arbeitsmappen"
       ' Formel zu anderen Tabellen in dieser Arbeitsmappe
       .Cells(1, "I") = "Formeln zu anderen Tabellen"
       ' restliche Formel
       .Cells(1, "M") = "restliche Formeln"
       ' definierte Namen in dieser Arbeitsmappe
       .Cells(1, "O") = "Namen in dieser Arbeitsmappe"
   End With
Fehler1:
   On Error GoTo 0                                 ' Fehlerbehandlung eimschalten
   If Err <> 0 Then MsgBox "Es ist ein Fehler aufgetreten!"
   Application.ScreenUpdating = True               ' Bildschirmaktualisierung einschalten
   Application.EnableEvents = True                 ' Reaktion Eingabe einschalten
End Sub
Top
#5
Hi,

ich kenne mich VBA und progammieren nicht so gut aus.

Vielleicht könntest du mir schildern wie ich dabei vorgehen muss und wo ich das reinkopieren muss.

Und wenn ich die Datei wo anders aufmache erscheint diese Meldung. (Anlage)


Angehängte Dateien Thumbnail(s)
   
Gruß
Kapi  :19:
Top
#6
Hallo

da sollte man schon aufspüren worum es siich handelt. Also, mit Alt+F11 den VBA Editor öffnen und ein normales Modulblatt einfügen (rechte Maustaste). Dann den Kopie von Hajo hinein kopieren, den Cursor in den Text HINTER  "Sub Verknüpfung" setzen, und das Makro mit der Taste F5 starten. Es wird angezeigt ob es Formeln gibt, wenn ja in welchen Zellen, und ob sie mit einer externen Datei verknüpft sind. Das sollten wir zuerst testen.

Hier noch ein Code, nur um zu testen ob es Workbook Namen gibt. Wenn du selbst KEINE verwendest kannst du sie ggf. mit dem 2. Makro löschen.

mfg Gast 123

Code:
Sub Test()
  MsgBox ActiveWorkbook.Names.Count
End Sub

Sub WBNamen_löschen()
  For j = 1 To ActiveWorkbook.Names.Count
      ActiveWorkbook.Names(1).Delete
  Next j
End Sub

mfg Gast 123
Top
#7
Hi Vielen Dank für die Beschreibung.

Nun habe ich eine elend lange Liste.

1) Zellen mit Ergebnis Error -> sind viele Einträge drin vorhanden -> (sind jedoch in den ausgeblendeten SApalten/ Zellen, da ich diese für meine Bearbeitung nicht brauche (waren vorher auch schon da)
2) Formeln zu anderen Arbeitsmappen  -> kein Eintrag
3) Formeln zu anderen Tabellen -> viele Einträge vorhanden
4) restliche Formeln -> Viele Einträge vorhanden
5) definierte Namen -> Keine Einträge vorhanden

Und nun?
Gruß
Kapi  :19:
Top
#8
(28.11.2019, 08:58)Kapi schrieb: Hi Vielen Dank für die Beschreibung.

Nun habe ich eine elend lange Liste.

1) Zellen mit Ergebnis Error -> sind viele Einträge drin vorhanden -> (sind jedoch in den ausgeblendeten SApalten/ Zellen, da ich diese für meine Bearbeitung nicht brauche (waren vorher auch schon da)
2) Formeln zu anderen Arbeitsmappen  -> kein Eintrag
3) Formeln zu anderen Tabellen -> viele Einträge vorhanden
4) restliche Formeln -> Viele Einträge vorhanden
5) definierte Namen -> Keine Einträge vorhanden

Und nun?

Kleine Ergänzung:

Ich habe das ein paar mal durchlaufen lassen und habe die Arbeitsmappe in der Hinsicht bereinigt dass ich bei "Zellen mit Ergebnis Error" keine Einträge mehr habe.

Jedoch habe ich jetzt einträge unter "definierte Namen" ... Was ist das ? und da steht in 7 Zeilen unter Zelle #Bezug! und unter Tabelle steht #Ref
Ich weiß jedoch nicht woher die Tabelle kommt, habe so eine Tabelle nicht in meinem Arbeitsblatt

Dieses hier kommt mir auch verdächtig vor:

 definierte Namen


 Name                                Zelle                       Tabelle

 E 519'!ExterneDaten_1      $A$1:$A$2955     E 519

 E XXX'!ExterneDaten_1      $A$1:$B$6           E XXX

Weil hier steht ExterneDaten_1 ... oder liegt das daran das ich Power Query verwendet habe?

Anbei noch eine Word Datei mit der Auflistung der "definierten Namen"


Angehängte Dateien
.docx   definierte Namen.docx (Größe: 15,15 KB / Downloads: 3)
Gruß
Kapi  :19:
Top
#9
Hallo

also, gehen wir an die  Auswertung deiner Fleissarbeit. In den Formeln scheint KEIN Fehler zu sein, da es keine Verbindung zu externen Tabellen gibt.
Die Formeln in der eigenen Datei spielen dabei keine Rolle. Nur die fehlerhaften sollte man löschen!

Bei den Wb Namen empfehle ich mit dem Makro zuerst mal die #REF Fehler zu löschen. Die haben ohnehin keinen Bezug mehr. Unklar sind mir die verbleibenden zwei WbNamen zu "Externe Daten" Im Zweifelsfall mit dem 2. Makro löschen. (Die For Next Schleife laeuft dabei rückwaerts! Muss so sein)
Ich bin gespannt ob dann der Fehler weg ist???  Vorhersagen kann ich es nicht .... 

mfg Gast 123

Code:
Sub WBNamen_RefFehler_löschen()
Dim j As Integer, Zahl As Integer
   Zahl = ActiveWorkbook.Names.Count
   'alle #REF Namen löschen!
   On Error Resume Next
   For j = Zahl To 1 Step -1
      If InStr(ActiveWorkbook.Names(j).RefersTo, "#REF") Then
         ActiveWorkbook.Names(j).Delete
      End If
   Next j
End Sub


Sub WBNamen_einzeln_löschen()
    On Error Resume Next
    ActiveWorkbook.Names("E 519'!ExterneDaten_1").Delete
    ActiveWorkbook.Names("E XXX'!ExterneDaten_1").Delete
End Sub

Nachtrag   sollte der Fehler immer noch vorhanden sein bleibt die Frage ob es Objekte oder Button mit externen Makros gibt??

Als letzte Lösung faellt mir ein die Datei zu kopieren. in der Kopie Datei Blatt für Blatt löschen, speichern, Excel schliessen!  Neu öffnen und schauen ob der Fehler weg ist. Dann weiss man zumindest in welcher Tabelle der Fehler steckt, wo man gezielt suchen muss.
Top
#10
Liegt das vielleicht an Power Query. Denn da macht er so eine externe  Datei oder?

Ich versuche morgen das zu löschen wie du beschrieben hast
Gruß
Kapi  :19:
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste