Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
616to620
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
616to620
616to620
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Code aus defekter xls Datei retten

Code aus defekter xls Datei retten
28.05.2005 16:34:08
michael
Hallo,
ich glaub mir hauts den Stöpsel raus....
Nun hab ich endlich mein Macro mit zahlreichen Hilfen aus dem Forum beieinander und nun will sich die ExcelDatei nicht mehr öffnen lassen und verursacht einen Fehler...
Hat jemand eine Idee wie ich den Code retten kann? Dieser liegt unter Mappe1.xls Sheet1(Sheet1)
Danke für jede Hilfe
Michael

25
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code aus defekter xls Datei retten
28.05.2005 16:45:01
Heinz Ulm
Hallo Michael..
wenn du den Namen noch kennst könntert du in einer neuen Mappe mal in A1 eingeben:
=[Mappe1.xls]sheet1!A1 (den genauen Pfad bitte), aber mit []um den Mappennamen und mit ! hinter dem Tabellenblattnamen
dann diese Formal nach rechts und unten kopieren und mal sehen was für Werte geholt werden.
Gruß Heinz
AW: Code aus defekter xls Datei retten
28.05.2005 16:55:06
Hajo_Zi
Hallo Heinz,
das ist der Inhlt der Tabelle, nicht der Code.
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
... leider nur der Tabelleninhalt...
28.05.2005 17:04:16
michael
hallo Heinz,
damit kann ich "nur" den Inhalt der Zellen als Text retten (Rechenoperationen und Formatierungen werden nicht mitgeliefert)
kann man eine Tabelle per Macro copieren ohne die zugehörige Datei zu öffnen?
Danke und GRuß
Michael
Anzeige
AW: ... leider nur der Tabelleninhalt...
28.05.2005 17:05:56
Hajo_Zi
Hallo Michael,
Tabellen können nur aus geöffneten Datedien kopiert werden.
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
AW: ... leider nur der Tabelleninhalt...
28.05.2005 17:06:35
Lars
Hi,
kopieren geht nur, wenn die Quellmappe geöffnet ist, mit allen anderen Methoden
bekommst du nur die Werte, keine Formeln und Formate.
mfg Lars
... ja leider...
28.05.2005 17:12:22
michael
HAllo Lars,
ich hatte gehofft...
Ich habs mit dem Recorder versucht und dann die Namen entsprechned angepasst - Laufzeitfehler... die Hoffnung war halt dass es noch eine Möglichkeit des Kopierens gibt... wohl nicht
Trotzdem Danke
Michael
Anzeige
AW: Code aus defekter xls Datei retten
28.05.2005 16:46:03
Hajo_Zi
Hallo Michael,
das Forum hat ein klasse Archiv. Aber soweit ich es in Erinnerung habe kann man aus Dateien den Inhalt retten aber nichtr den Code.
Versuche die Datei doch mal in einer höheren Version zu öffnen. Dort gibt es die Funktion Reparieren.

Bitte keine Mail, Probleme sollten im Forum gelöst werden.
Microsoft MVP für Excel
Das Forum lebt auch von den Rückmeldungen.
Betriebssystem XP Home SP2 und Excel Version 2003 SP1.


AW: Code aus defekter xls Datei retten
28.05.2005 17:22:25
michael
Hallo Hajo,
bevor ich zum Nachbar aufbreche und wie ein Esel vor dessen Excel stehe - wo/wie aktiviere ich die Reparierfunktion.
Kann ich auch die Datei /den Code importieren?
Im Archiv hab ich auch schon recherchiert und einen Betrag von dir gefunden - da gings um das Kopieren des Codes in andere Dateien - die Ausgangsdatei ließ sich da also noch öffnen...
Danke
Michael
Anzeige
AW: Code aus defekter xls Datei retten
28.05.2005 17:25:00
Hajo_Zi
Hallo Michael,
gehe auf öffnen, wähle eine Datei und neben öffnen erscheint ein scharzer Pfeil, Klicke darauf.
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
AW: Code aus defekter xls Datei retten
28.05.2005 17:28:35
HansH
Hallo Michael,
lässt sich da über "Datei zum Server" nicht was machen?
Gruß
HansH
AW: Code aus defekter xls Datei retten
28.05.2005 17:41:02
michael
Hallo Hans,
was bedeutet "Datei zum Server" finde in der Hilfe nichts darüber...
KAnnst du mir da einen Tip zur Vorgehensweise geben?
DAnke Michael
AW: Code aus defekter xls Datei retten
28.05.2005 17:51:47
HansH
Hallo Michael,
ich denke mal deine defekte Datei ist noch vorhanden. Dann kannst du sie mit deinem Beitrag zum Server hochladen und über Link in deinem Text darauf verweisen. (Durchsuchen/Datei zum Server (oberhalb deiner Beiträge))
Vielleicht kann Dir jemand deine Datei (Code) retten.
MfG
HansH
Anzeige
AW: Code aus defekter xls Datei retten
28.05.2005 18:00:56
michael
... war völlig auf excel fixiert - danke für den Tip - werde ich versuchen.
Danke
Michael
AW: Code aus defekter xls Datei retten
28.05.2005 17:53:07
Ralf Anton
Hallo Heinz,
falls Du einen Hex Editor Dein eigen nennst, kannst Du eine Menge Daten wieder herstellen. Auch Quellcode. Falls Du keinen hast, im Netz findest Du sicher auch welche zum kostenlosen download. Leider habe ich jetzt keine Adresse parat.
Ciao, Ralf
hier die defekte Datei ...
28.05.2005 18:05:31
michael
... vielleicht hat jemand
ein Excel das sie öffnen kann
oder ein HexEditor oder ...
Auf jedenfall Danke für die bisherigen Hilfen
Michael

Die Datei https://www.herber.de/bbs/user/23327.xls wurde aus Datenschutzgründen gelöscht

Anzeige
AW: hier die defekte Datei ...
28.05.2005 18:10:48
Hajo_Zi
Hallo Michael,
in der reparierten Dei ist kein Code und auch keine Formate. Aber Formeln.
https://www.herber.de/bbs/user/23328.xls
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
danke Hajo
28.05.2005 19:06:55
michael
AW: hier die defekte Datei ...
28.05.2005 18:33:23
=Peter=
Hallo Michael,
hilft dir das weiter:
https://www.herber.de/bbs/user/23329.xls
Folgender Code in Sheet1:
Option Explicit
Private Declare Sub Sleep Lib "kernel32.dll" ( _
ByVal dwMilliseconds As Long)

Private Sub CommandButton1_Click()
Dim sngStart As Single
Dim n As Integer    'Timerschleife'Integer bis 32.767 oder Long bis 2.147.483.647
Dim m As Integer    'Startschleife
Dim o As Integer    'Stopschleife
Dim Wb1 As String
Dim Sh1 As String
Dim Wb1Sh1 As String
'Dim Wb1Sh1 As Worksheet
Dim Wb2 As String
Dim Sh2 As String
Dim Wb2Sh1 As Worksheet
Dim gcf As Single
Dim dde1 As Integer
Dim dde2 As Integer
Dim channelNumber1, channelNumber2
Wb1 = ActiveWorkbook.name
Sh1 = ActiveSheet.name
Wb1Sh1 = "Workbooks(" & Wb1 & ").Worksheets(" & Sh1 & ")"
'Set Wb1Sh1 = "Workbooks(" & Wb1 & ").Worksheets(" & Sh1 & ")"
gcf = Range("M1")
dde1 = Range("B1")
dde2 = Range("B8")
Workbooks.Add
ActiveWorkbook.SaveAs FileName:="E:\_Log.xls"
Wb2 = ActiveWorkbook.name
Sh2 = ActiveSheet.name
Set Wb2Sh1 = Workbooks("_Log.xls").Worksheets("Tabelle1")
'Workbooks("_Log.xls").Worksheets("Tabelle1").Range("A1") = "Zeit"
Wb2Sh1.Range("A1") = "Zeit"
Wb2Sh1.Range("B1") = "Ch1 (Split)"
Wb2Sh1.Range("C1") = "Ch2 (Carbo)"
Wb2Sh1.Range("A1:C1").Select
Selection.Font.Bold = True
Selection.HorizontalAlignment = xlCenter
Windows(Wb1).Activate    'Flowdde and Excel_1&2-stop_loop_link_.xls
Windows.Arrange ArrangeStyle:=xlVertical
ActiveWindow.ScrollColumn = 2
'Open DDE-link
m = 0     'Schleifenzähler Start
Range("E28") = m
channelNumber1 = Application.DDEInitiate(app:="FLOWDDE", topic:="C(1)")
channelNumber2 = Application.DDEInitiate(app:="FLOWDDE2", topic:="C(1)")
'Write Setpoint Start
Do
If m = 10 Then Exit Do       'verhindert Endlosloop
m = m + 1
'DDE 1
DDEPoke channelNumber1, "P(9)", (Sheets(1).Cells(4, 2))
Sheets(1).Cells(4, 3) = DDERequest(channelNumber1, "P(9)")
'DDE 2
DDEPoke channelNumber2, "P(9)", (Sheets(1).Cells(11, 2))
Sheets(1).Cells(11, 3) = DDERequest(channelNumber2, "P(9)")
Loop While ((Sheets(1).Cells(4, 2).Value) <> (Sheets(1).Cells(4, 3).Value)) And ((Sheets(1).Cells(11, 2).Value) <> (Sheets(1).Cells(11, 3).Value))
Range("E28") = m
'Timerfunktion und Datalogging Start - Ende
Windows("_Log.xls").Activate
sngStart = Timer
n = 0   'Schleifenzähler
Do
n = n + 1
Sleep 197 '200 'Zeit in msec
With Cells(n + 1, 1)
.NumberFormat = "[hh]:mm:ss.000"
.Value = (Timer - sngStart) / 86400
End With
'DDE 1
Sheets(1).Cells(n + 1, 2) = DDERequest(channelNumber1, "P(8)") * dde1 * gcf / 320 * 100
'DDE 2
Sheets(1).Cells(n + 1, 3) = DDERequest(channelNumber2, "P(8)") * dde2 * gcf / 320 * 100
Loop While n <= 9000    '= 30 min bei einem 200ms Intervall
'Stop
Windows("name").Activate    'Flowdde and Excel_1&2-stop_loop_link_.xls
o = 0     'Schleifenzähler Stop
Range("E29") = o
'Write Setpoint Stop
Do
If m = 10 Then Exit Do       'verhindert Endlosloop
m = m + 1
'DDE 1
DDEPoke channelNumber1, "P(9)", (Sheets(1).Cells(33, 2))
Sheets(1).Cells(4, 3) = DDERequest(channelNumber1, "P(9)")
'DDE 2
DDEPoke channelNumber2, "P(9)", (Sheets(1).Cells(39, 2))
Sheets(1).Cells(11, 3) = DDERequest(channelNumber2, "P(9)")
Loop While ((Sheets(1).Cells(33, 2).Value) <> (Sheets(1).Cells(4, 3).Value)) And ((Sheets(1).Cells(39, 2).Value) <> (Sheets(1).Cells(11, 3).Value))
Range("E29") = o
'Timerfunktion und Datalogging Nachlauf
Windows("log.xls").Activate
Do
n = n + 1
Sleep 197 '200 'Zeit in msec
With Cells(n + 1, 1)
.NumberFormat = "[hh]:mm:ss.000"
.Value = (Timer - sngStart) / 86400
End With
'DDE 1
Sheets(1).Cells(n + 1, 2) = DDERequest(channelNumber1, "P(8)") * dde1 * gcf / 320 * 100
'DDE 2
Sheets(1).Cells(n + 1, 3) = DDERequest(channelNumber2, "P(8)") * dde2 * gcf / 320 * 100
Loop While n <= 300    '= 1 min bei einem 200ms Intervall
'ActiveWorkbook.Save
'Close DDE-channel
DDETerminate channelNumber1
DDETerminate channelNumber2
Windows("name").Activate    'Flowdde and Excel_1&2-stop_loop_link_.xls
End Sub


Private Sub CommandButton2_Click()
channelNumber1 = Application.DDEInitiate(app:="FLOWDDE", topic:="C(1)")
channelNumber2 = Application.DDEInitiate(app:="FLOWDDE2", topic:="C(1)")
' Read Measure
Sheets(1).Cells(4, 5) = DDERequest(channelNumber1, "P(8)")
Sheets(1).Cells(11, 5) = DDERequest(channelNumber2, "P(8)")
'Close DDE-channel
DDETerminate channelNumber1
DDETerminate channelNumber2
End Sub


Private Sub CommandButton3_Click()
'Open DDE-link
m = 0     'Schleifenzähler Stop
Range("E29") = m
channelNumber1 = Application.DDEInitiate(app:="FLOWDDE", topic:="C(1)")
channelNumber2 = Application.DDEInitiate(app:="FLOWDDE2", topic:="C(1)")
'Write Setpoint
Do
If m = 10 Then Exit Do       'verhindert Endlosloop
m = m + 1
'DDE 1
DDEPoke channelNumber1, "P(9)", (Sheets(1).Cells(33, 2))
Sheets(1).Cells(4, 3) = DDERequest(channelNumber1, "P(9)")
'DDE 2
DDEPoke channelNumber2, "P(9)", (Sheets(1).Cells(39, 2))
Sheets(1).Cells(11, 3) = DDERequest(channelNumber2, "P(9)")
Loop While ((Sheets(1).Cells(33, 2).Value) <> (Sheets(1).Cells(4, 3).Value)) And ((Sheets(1).Cells(39, 2).Value) <> (Sheets(1).Cells(11, 3).Value))
'Close DDE-channel
DDETerminate channelNumber1
DDETerminate channelNumber2
Range("E29") = m
End Sub


HTH
Gruss
Peter
Anzeige
AW: hier die defekte Datei ...
28.05.2005 19:04:37
michael
Super, vielen Dank Peter,
darf ich fragen wie du das realisiert hast?
Danke und Gruß
Michael
AW: hier die defekte Datei ...
28.05.2005 19:41:05
=Peter=
Hallo Michael,
freut mich dass es geklappt hat. Meine Vorgehensweise war eigentlich recht einfach:
Mit einem Hexeditor kann ich nicht umgehen, deshalb ist diese Möglichkeit für mich schon ausgeschieden.
Ich habe zunächst versucht die Datei mit XL2003 über Datei öffnen - Öffnen und reparieren zu öffnen. Ich vermute mal, diesen Weg ging auch Hajo.
Da das auch nicht den gewünschten Effekt hatte habe ich folgendes versucht:
Ich habe die Datei in OpenOffice(Beta2) geöffnet und beim Öffnen 'Makros deaktivieren' angeklickt. Die Datei habe ich dann umgehend wieder gespeichert und in XL2003 wieder geöffnet. Und das war es eigentlich schon.
HTH
Gruss
Peter
Anzeige
Genial! ...
28.05.2005 20:35:37
michael
... ja relativ einfach aber sehr wirkungsvoll!! Man muss nur drauf kommen.
Was für eine tolle und kompetente Hilfe hier im Forum!
Dir Peter und allen anderen die sich engagiert haben VIELEN DANK!!!
Michael :-)))
Danke oT
29.05.2005 01:05:11
=Peter=
o
AW: Rückfrage
29.05.2005 08:28:17
Hajo_Zi
Hallo Peter,
Dein Betreff liest sich so als ob das Problem gelöst ist. Warum ist der Beitrag dann noch auf offen gestellt?
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.
AW: Rückfrage
29.05.2005 09:50:08
=Peter=
Hallo Hajo,
ich bin jetzt leicht verwirrt. Das Posting kommt nicht von mir.
Heute nacht um 1.05 bin ich garantiert nicht am Rechner gesessen. Und ich kann mich auch nicht erinnern, dass ich diese Antwort geschrieben habe. Und als Text verwendet ich nie ein 'o'.
Gruss
Peter
Anzeige
AW: Rückfrage
29.05.2005 10:02:30
Hajo_Zi
Hallo Peter,
das ist ein Nachteil das die Mailadresse gesichert ist und nicht der Name.
Gruß Hajo
Das Forum lebt auch von den Rückmeldungen.

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige