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

Großes Problem

Großes Problem
03.02.2004 18:57:12
Maren
Excel ist wirklich ein komisches Programm. Habe in einer Datei ein Makro wie unten. Zu 70 % funktioniert es, aber es kommt auch ab und an die Fehlermeldung
Excel.exe Zugriffsverletzung(0xc0000005), Adresse: 0x3006ad15
Weiß jemand von Euch an was das liegen kann. Der Code ist doch okay. Man oh Mann, Schei... Excel


Sub Rechnenbeenden und Speichern()
With Application
.Calculation = xlManual
.MaxChange = 0.001
End With
ActiveWorkbook.PrecisionAsDisplayed = False
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim WB
If Workbooks.Count > 1 Then
For Each WB In Application.Workbooks
If WB.Name <> ActiveWorkbook.Name Then
WB.Save
WB.Close
End If
Next
End If
Range("C1").Select
If Len(ActiveCell) = 0 Then
MsgBox ("Bitte Name und Datum eingeben
Beispiel: >Name_Datum<")
Else
ActiveWorkbook.PrecisionAsDisplayed = False
ActiveWorkbook.SaveAs Filename:="C:\K\" & ActiveCell() & ".xls"
ChDir "C:\Konformität"
Workbooks.Open Filename:="C:\D\S.xls"
ThisWorkbook.Close False
End If
End Sub

Liebe Grüße Maren

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
noch offen
03.02.2004 19:30:59
ChrisL
Hallo Maren
Ist schwierig bei solchen Fehlermeldungen, denn das Problem laesst sich nicht genau eruieren. Deshalb erstmal versuchen rauszufinden an welchem Codeteil es liegt. Koennte mir vorstellen dass es im Bereich "Save" liegt z.B. wenn die Zelle ein Sonderzeichen enthaelt, das als Dateinamen nicht geeignet ist.
Als weitere Massnahme wuerde ich dir empfehlen den Code mal zu saeubern, hierzu mal ein paar Tipps. Nach Korrektur kannst du ja nochmals posten, gibt sicher noch mehr...
With Application
.Calculation = xlManual
.MaxChange = 0.001
End With
ActiveWorkbook.PrecisionAsDisplayed = False
Application.DisplayAlerts = False
Application.ScreenUpdating = False
z.B.
With Application
.Calculation = xlManual
.DisplayAlerts = False
.ScreenUpdating = False
End With
Wenn du DisplayAlerts auf False setzt macht sich eine Fehlerroutine nicht schlecht...
On Error Goto ErrorHandler
With Application
.Calculation = xlManual
.DisplayAlerts = False
.ScreenUpdating = False
End With
' Hier der weitere Code

ErrorHandler:
With Application
.Calculation = xlAutomatic
.DisplayAlerts = True
.ScreenUpdating = True
End With

Dann das WB auch als WB deklarieren und nicht als Variant
Dim WB As Workbook

ThisWorkbook ist die Mappe in der das Makro ausgefuehrt wird, ActiveWorkbook die aktive Mappe, deshalb vermutlich...
If WB.Name <> ThisWorkbook.Name Then

Zellen nicht unnoetig selektieren...
Range("C1").Select
If Len(ActiveCell) = 0 Then
=
If Len(Range("C1")) = 0 Then
... oder auch gleich...
If Range("C1") = "" Then

Weiter...
ActiveWorkbook.PrecisionAsDisplayed = False
braucht es dies?

ChDir "C:\Konformität"
Braucht es nicht, wenn du nachher sowieso nicht in dieses Verzeichnis reinspeicherst.

Also das wars...
cu
Chris
Anzeige
AW: Großes Problem
03.02.2004 19:31:13
andre
hallo maren,
wann kommt denn der fehler?
wenn mehrere mappen offen sind, oder wenn nur eine offen ist, was ist bei schrittweisem test ...?
gruss andre
AW: Großes Problem
03.02.2004 19:41:38
Alex K.
Hallo Maren,
es kann sein, das Excel Probleme damit hat, dass du die Arbeitsmappen in einer Schleife für alle Arbeitsmappen schließt. Hatte schon mal so ein ähnliches Problem mit einer Auflistung.
Also ersetzt den Code

Dim WB
If Workbooks.Count > 1 Then
For Each WB In Application.Workbooks
If WB.Name <> ActiveWorkbook.Name Then
WB.Save
WB.Close
End If
Next
End If

gegen

Dim WB As Workbook
Dim WBArray(1 to 100) as Workbook
Dim i, y As Integer
If Workbooks.Count > 1 Then
i = 0
For Each WB In Application.Workbooks
If WB.Name <> ActiveWorkbook.Name Then
i = i + 1
set WBArray(i) = WB
End If
Next WB
For y = 1 to i
WBArray(y).Close SaveChanges:=True
Next y
End If

Anzeige
AW: Großes Problem
03.02.2004 19:59:54
Maren
Hallo Alex,
ich probiere das morgen früh aus. Würde mich sehr freuen wenn dein Vorschlag das Problem beheben würde. Ich danke dir erstmal sehr, Ich melde mich morgen ja.
Liebe Grüße Maren
AW: Großes Problem
03.02.2004 19:47:09
Ulf
ActiveWorkbook.SaveAs Filename:="C:\K\" & ActiveCell() & ".xls"
Was sollen die Klammern hinter ActiveCell?
generell bist du gut beraten, bei Dateinamen, die aus Zellwerten resultieren,
zu prüfen, ob da Zeichen enthalten sind, die in Dateinamen verboten sind.
"
*
/
:
<
>
?
\
|
[
]
Ulf

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige