Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
Anzeige
Archiv - Navigation
1080to1084
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

Speicherproblem oder sowas :(

Speicherproblem oder sowas :(
17.06.2009 15:24:40
steffen
Hallo Ex(cel)perten,
ich habe im Archiv eine Lösung zum Löschen von Code gefunden. Wenn ich das händisch im VBA-Editor über "Sub/Userform ausführen" starte läufts durch.
automatisch jedoch, bricht die Prozedur mit einer Fehlermeldung "Laufzeitfehler 7 Nicht genügend Speicher" ab. Und dann kommt noch Fehlerberichterstattung an MS.
hier mal der Code:
habe ich in DieseArbeitsmappe drin

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _
Cancel As Boolean)
VBACode_Komplett_Loeschen ActiveWorkbook
End Sub


Function VBACode_Komplett_Loeschen(wkbMappe As Workbook)
' Achtung diese Funktion löscht den kompletten VBA Code der angegebenen Datei !!!
Dim objVBA As Object
Dim strFile As String
With wkbMappe.VBProject
' Ein Schleife die ALLE VBComponents durchläuft, sollen nur bestimmte gelöscht werden
' dann muss dieser Code angepaßt werden.
For Each objVBA In .VBComponents
Select Case objVBA.Type
' Wenn Type = 1 dann ist es ein Standardmodul, dies wird komplett gelöscht!
Case 1
.VBComponents.Remove .VBComponents(objVBA.Name)
' Wenn Type = 2 dann ist es ein Klassennmodul, dies wird komplett gelöscht!
Case 2
.VBComponents.Remove .VBComponents(objVBA.Name)
' Wenn Type = 3 dann ist es ein Userform, dies wird komplett gelöscht!
Case 3
.VBComponents.Remove .VBComponents(objVBA.Name)
' Wenn Type = 100, also DieseArbeitsmappe oder ein Tabellenblatt, dann darin
' alle Codezeilen löschen. Denn die Datei und die Tabellenblätter sollen ja
' erhalten bleiben, also nur den Code löschen.
Case 100
With .VBComponents(objVBA.Name).CodeModule
.DeleteLines 1, .CountOfLines
End With
Case Else
MsgBox "Unbekannter VBA Type !", vbCritical
End Select
Next objVBA
End With
wkbMappe.Save
Exit Function
' Bei Fehlernummer 1004, diese Meldung ausgeben.
If Err.Number 0 Then
If Err.Number = 1004 Then
MsgBox "Das Löschen des VBA Codes ist fehlgeschlagen!" & vbCr & _
"Bitte überprüfen Sie folgende Einstellung! " & vbCr & _
"EXTRAS -> MAKRO -> SICHERHEIT -> Vertrauenwürdige Quellen." & vbCr & _
"'Zugriff auf Visual Basic Projekt vertrauen' muss aktiviert sein! ", vbCritical, _
" Meldung vom Makro VBAloeschen"
Else
MsgBox "Err.Number = " & Err.Number & ". " & Err.Description, vbCritical
End If
End If
End Function


Viellicht hat jemand einen Vorschlag. Hochladen geht hier leider nicht.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speicherproblem oder sowas :(
17.06.2009 17:43:40
Luschi
Hallo Steffen,
habe Die Routine mal beim Speichern laufen lassen und es trat kein Fehler auf:
Gegebenheiten:
WindowsXP
Excel XP mit SP3
Arbeitsmappe mit 8300 Zeilen Vba-Code, 25 Tabellen mit Klassenmodule,
15 Formulare mit Klassenmodule 20 Module und 5 Extra-Klassenmodule
Lief alles wie am Schnürchen.
Gruß von Luschi
aus klein-Paris
AW: Speicherproblem oder sowas :(
18.06.2009 15:43:27
steffen
@ Luschi
danke für die Mühe,
ich habe auch nochmal bei einem Kollegen auf dem Rechner versucht-leider erfolglos.
Die techn. Gegebenheiten, wie du beschrieben, sind identisch.
schade
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige