Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
424to428
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
424to428
424to428
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Excel Arbeitsspeicher per VBA leeren

Excel Arbeitsspeicher per VBA leeren
11.05.2004 21:25:29
Werner
Liebe Leute,
ich habe zu diesem Thema was in der Recherche gefunden (s.u.), aber ausgerechnet der Antwort-Link von Hans funzt nicht. Jetzt bin ich so schlau wie vorher. Weiß vielleicht jemand weiter?
Gruß
Werner
________________________________________________________
* Mit VBA Arbeitsspeicher cleanen - geht dat?
o Re: Mit VBA Arbeitsspeicher cleanen - geht dat? Hans W. Herber 04.6.2000 (0)
Mit VBA Arbeitsspeicher cleanen - geht dat? Hallo Leutz,
Habe seit einiger Zeit den Verdacht, daß Excel(97) keinen Bock hat, Excel-Dateien (über 4MB) zu speichern, wenn nebenbei noch eine Menge anderer Applikationen laufen.
Kann ich den Arbeitsspeicher mit Excel VBA irgendwie vor dem Speichern cleanen (wie z.B. mit dem Tool: TWEAK ALL)?

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

Betreff
Datum
Anwender
Anzeige
AW: Excel Arbeitsspeicher per VBA leeren
Ramses
Hallo
was meinst du mit "..Mit VBA Arbeitsspeicher cleanen..."
Das gerade kopierte entfernen ?
Application.CutCopyMode = false
Gruss Rainer
AW: Excel Arbeitsspeicher per VBA leeren
11.05.2004 22:00:21
Werner
Hallo Rainer,
nein, ich meine nicht die Zwischenablage, sondern den Excel-Arbeitsspeicher. Den will ich versuchen zu leeren.
Ich habe ein Excel-Proggi mit eigener Symbolleiste, per VBA lege ich im Hintergrund ein Backup an. Wenn ich nun das Backup nach Schließen des Originals öffne - ohne Excel zu beenden - öffnet Excel gleich beide Dateien - ich vermute also, daß im Arbeitsspeicher die Symbolleiste 'steckenbleibt', weil es nur dann richtig funktioniert, nachdem ich ich Excel vorher beendet habe.
Gruß
Werner
Anzeige
AW: Excel Arbeitsspeicher per VBA leeren
Ramses
Hallo
Du kannst den "Arbeitsspeicher" nicht leeren, weil jede Instanz einen exclusiven Arbeitsbereich verwaltet der nicht von anderen Programmen verwendet werden darf.
By the way:
Ich verstehe überhaupt nichts von dem was du geschrieben hast ;-))
Zeig mal den Code den du da verwendest, sonst muss ich mich leider ausklinken mangels Ideen.
Gruss Raienr
AW Danke: Excel Arbeitsspeicher per VBA leeren
11.05.2004 23:08:37
Werner
Hallo Reiner,
danke für Deine Antwort. Wenn's halt mit dem Arbeitsspeicher leeren nicht geht, reicht mir das schon als Lösung - und ich lasse Excel dann einfach nach Erzeugung des Backups beenden, fertig.
Da Du aber gefragt hast (ist etwas kompliziert):
Ich habe also eine Excel-Datei mit eigener Symbolleiste.
https://www.herber.de/bbs/user/6247.xls
Nur über die Symbolleiste kann die Datei bearbeitet werden.
Die Symbolleiste wird nach Öffnen der Datei temporär erzeugt:

Private Sub Sym_einschalten()
'Menüs:
Dim Menu1 As CommandBarControl ' Menü 'Datei'
'Untermenüs von 'Datei':
Dim Menu1a As CommandBarControl ' Untermenü 'Datei - Speichern'
Dim Menu1b As CommandBarControl ' Untermenü 'Datei - Schließen'
usw.
'Buttons:
Dim But1 As CommandBarControl 'Drucker
Dim But2 As CommandBarControl 'Haus
usw.
Rem Symbolleiste:
Set CBar = Application.CommandBars.Add("UPlg", MenuBar:=True, temporary:=True)
Rem Buttons
Rem Button Schließen
'    Set But1 = CBar.Controls.Add(Type:=msoControlButton)
'    With But1
'         .Caption = "Urlaubsplaner schließen"
'         .FaceId = 277
'         .OnAction = "Auto_close"
'    End With
usw.
Die Datei heißt 'Urlaub.xls'. Der Anwender kann jederzeit während der Arbeit per Klick ein Backup der Datei anlegen, ohne daß die Datei 'Urlaub.xls' geschlossen wird.
Dieses Backup heißt immer 'JJ.MM.TT Backup Urlaubsplaner.xls' und wird im selben Verzeichnis hinterlegt:
Sub Komplett()
Dim Datei, Pfad
Datei = ThisWorkbook.Name
Pfad = ThisWorkbook.Path
On Error Resume Next
ActiveWorkbook.Save
Kill Pfad & "\" & Format(Now, "DD-MM-YY") & " Backup Urlaubsplaner.xls"
ActiveWorkbook.SaveCopyAs FileName:=Pfad & "\" & Format(Now, "YY.MM.DD") & " Backup Urlaubsplaner.xls"
End Sub

Wenn er das nun getan hat, wird er wahrscheinlich die Datei 'Urlaubr.xls' schließen, ohne Excel zu beenden.
Weil er neugierig ist, öffnet er nun die Datei 'JJ.MM.TT Backup Urlaub.xls', die ja identisch ist.
Betätigt er nun irgendein Symbol in der Symbolleiste, öffnet sich nun aber ohne eigenes Zutun die Originaldatei 'Urlaub.xls'.
Darum vermute ich also, daß Excel die Symbolleiste aus der geschlossenen Datei 'Urlaub.xls' im Arbeitsspeicher hat, diese Datei darum öffnet und in der Datei 'JJ.MM.TT Backup Urlaubsplaner.xls' mit der Symbolleiste aus der Datei 'Urlaub.xls' arbeitet.
Darum wollte ich versuchen, ins 'Sub Komplett' die Leerung des Arbeitsspeichers einzubauen.
Aber ich hänge dann einfach 'Application.Quit' dran ... :-)), und gut iss :-))

Danke für Deine Mühe!
Gruß
Werner
Anzeige
Merci :-) Geschlossen m.T.
Ramses
Hallo
warum entfernst du nicht die Symbolleiste wenn du aus dem Button "Auto_Close" aufrufst ?
Damit eliminierst du auch das Problem,... ist aber etwas eleganter und weniger brutal ;-))
Gruss Rainer
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge