Anzeige
Archiv - Navigation
1000to1004
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 beim speichern - zellname existiert nicht

fehler beim speichern - zellname existiert nicht
07.08.2008 17:53:00
t4z
Hallo Leute,
folgendes Problem:
Will nach zahlreichen Änderungen in Datei A die Änderungen darin speichern. Kurz vor Ende des Speichervorgangs kommt dann die Fehlermeldung
"Microsoft Excel kann die Formel in der Zelle (Name:[Dateiname.xls]Tabellenname!solver_val) nicht konvertieren, da sie eine Funktion enthält, die in dem Dateiformat, in dem Sie speichern, nicht vorhanden ist. Wenn Sie mit der Speicherung fortfahren, wird die Formel und das Ergebnis gespeichert, die Funktion wird jedoch in einen Fehlerwert umgewandelt. ..."
Das Witzige ist, dass der Zellname "solver_val" weder in der Ursprungsdatei A noch in der bearbeiteten Version enthalten ist. Da die Ursprungsdatei fehlerlos speicherbar ist, kann es nur an meinen Änderungen liegen. Ich bin jedoch sprach- und ratlos. Die Datei ist nicht gerade klein und mir bzw meinem Arbeitgeber liegt viel daran, die Datei fehlerfrei zu erhalten. Durch meine Änderungen wurde der Umfang der Datei nicht unbedingt größer. Ich habe fast ausschließlich Sheets, die Ähnliches enthalten je in einem Sheet zusammengefasst.
Viele Grüße, Taz

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: fehler beim speichern - zellname existiert nicht
07.08.2008 20:25:25
Ramses
Hallo
Vom Solver werden während einer Berechnung viele Namen erstellt und anschliessend wieder gelöscht.
Vermutlich ist das so ein Überbleibsel einer Solver Berechnung
Solche Namen können während des Solver-Einsatzes auftauchen
Tabelle1!solver_adj
Tabelle1!solver_cvg
Tabelle1!solver_drv
Tabelle1!solver_est
Tabelle1!solver_itr
Tabelle1!solver_lhs1
Tabelle1!solver_lin
Tabelle1!solver_neg
Tabelle1!solver_num
Tabelle1!solver_opt
Tabelle1!solver_pre
Sheet1!solver_rel1
Tabelle1!solver_rel2
Tabelle1!solver_rhs1
Tabelle1!solver_rhs2
Tabelle1!solver_scl
Tabelle1!solver_tim
Tabelle1!solver_tol
Tabelle1!solver_typ
Tabelle1!solver_val
Die Liste ist natürlich nicht abschliessend. Vermutlich werden noch mehr temporäre Namen verwendet.
Lass mal das Makro in einer Sicherheitsdatei laufen und schau mal ob beim anschliessenden Speichern der Fehler noch auftritt. Wenn nicht, kannst du das Makro auch in deiner Originaldatei laufen lassen zum korrigieren
Option Explicit

Sub Remove_Solver_Name()
    Dim wkbName As Name
    Dim chkName As String
    'Solver-Zelle die Fehlerverursacht
    chkName = "solver_val"
    For Each wkbName In ThisWorkbook.Names
        If wkbName.Name = "Demo" Then
            MsgBox "Gefunden: " & wkbName.Value
            wkbName.Delete
        End If
    Next
End Sub

Gruss Rainer

Anzeige
Korrektur...
07.08.2008 20:26:00
Ramses
Hallo
Sorry, da ich nicht testen konnte ist der von mir verwendete Name noch drin.
Die Zeile
If wkbName.Name = "Demo" Then
muss natürlich
If wkbName.Name = chkName Then
heissen.
Gruss Rainer

AW: Korrektur...
08.08.2008 12:31:44
t4z
vielen dank für deine hilfe, dies war tatsächlich der schlüssel zum erfolg
allerdings funktionierts dann erst mit activeworkbook.names
des weiteren waren auch zellnamen enthalten, die einen ungültigen bezug hatten und auch nicht über einfügen - namen - definieren aufgelistet werden.
vielleicht interessiert euch dann mein src-code:

Sub Remove_Invalid_Name()
Dim wkbName As Name
Dim chkName, shtName As String
'Zelle die Fehler verursacht
chkName = "solver"
'    shtName = "Tabelle 1"
shtName = "Tabelle 2"
For Each wkbName In ActiveWorkbook.Names
'        If wkbName.Name = chkName Then      ' findet nur namen, die auch auf eine/n zelle/ _
bereich verweisen (warum, weiss ich nicht)
'        If InStr(wkbName.Value, "#REF")  0 Then       ' findet alle namen der arbeitsmappe,  _
die ungültige bezüge haben
'        If InStr(wkbName.Name, chkName)  0 Then      ' findet ALLE gesuchten namen der  _
arbeitsmappe
If InStr(wkbName.Value, shtName)  0 Then      ' findet ALLE namen in bestimmten sheet
'        If InStr(wkbName.Name, chkName)  0 And InStr(wkbName.Value, shtName)  0 Then      ' _
findet ALLE namen in einem sheet mit einem bestimmten namen
If MsgBox("Name: " & wkbName.Name & vbCrLf & "Referenz: " & wkbName.Value, vbYesNo,  _
"Soll Zellname gelöscht werden?") = vbYes Then
wkbName.Delete
End If
End If
Next
End Sub


Anzeige

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige