Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1912to1916
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

Datei löschen

Datei löschen
05.01.2023 13:08:39
wolfgang
Hallo,
ich möchte, sobald ich in meiner Tabelle ("Aktuell") bin, dass eine andere offene Datei gelöscht
wird. Nur wenn die Datei offen existiert !
Public Sub Worksheet_Change(ByVal Target As Range)
'Workbooks("Lager.xlsm").Close SaveChanges:=False
so geht es nicht:
kam Fehlermeldung:
Nicht genügend Arbeitsspeicher verfügbar für diese Aktion...
gruß wolfgang

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datei löschen
05.01.2023 13:09:37
wolfgang
AW: Datei löschen
05.01.2023 14:09:42
GerdL
Hallo Wolfgang!

Private Sub Worksheet_Activate()
Dim wbk As Workbook, X As String
Application.DisplayAlerts = False
For Each wbk In Workbooks
If wbk.Name = "157054.xlsm" Then
X = wbk.FullName
wbk.Close False
Kill X
Exit For
End If
Next
Application.DisplayAlerts = True
End Sub
Bitte den Dateinamen anpassen.
Gruß Gerd
Danke Gerd ! klapppppt _)
05.01.2023 15:07:23
wolfgang
noch ein kleines Problem
05.01.2023 15:30:37
wolfgang
Hallo,
das Makro habe ich so eingesetzt:
Application.DisplayAlerts = False
For Each wbk In Workbooks
If wbk.Name = "157054.xlsm" Then
X = wbk.FullName
wbk.Close False
'''''''''' Kill X
Exit For
End If
Next
Application.DisplayAlerts = True
End Sub
Das ist die Tabelle die aufgerufen werden soll= wb.Activate (soweit auch ok)
damit Activate reagiert werden soll
Sheets("L-Auswahl").Activate (soweit auch ok)
dann in die Tabelle, wo Activate hinterlegt ist:
Sheets(2).Activate = kam Fehlermeldung Nicht genügend Arbeitsspeicher ...
gruß wolfgang
Sheets(2).Activate
Anzeige
Äh?
05.01.2023 16:36:11
Yal
Lieber Wolfgang,
nicht für ungut, aber im Ernst: les mal nach, was Du geschrieben hast, mit der Annahme, dass Du absolut nichts anderes weisst, als was geschrieben ist.
Es ist für dich eigentlich kaum möglich, aber versuch es trotzdem: alles was Du weisst auschalten. Nur lesen.
Dann fällt der Spruch von Otto ein: was will uns der Künstler damit sagen?
VG
Yal
Versuch mal verständlicher
05.01.2023 16:56:58
wolfgang
Hallo,
aus meiner aktiven Datei wird die eine gewünschte Datei gestartet,
und eine Tabelle Seleciert, klappt einwandfrei.
Nun soll von der aktiven Tabelle die an 2. Stelle steht in die 1. Tabelle und dann
wieder zurück die aktive Tabelle aktiviert werden, damit:
Private Sub Worksheet_Activate()
ausgelöst bzw. durchgeführt wird.
gruß wolfgang
Anzeige
gerade festgestellt
05.01.2023 17:17:29
wolfgang
Hallo,
mit einem Button ausgelöst klappt alles.
MI Worksheet_BeforeDoubleClick
nicht. !
gruß wolfgang
zusätzlich
05.01.2023 17:01:36
wolfgang
Das ist mein Code von der ich starte.
wb.Activate
Sheets(1).Activate ' bis hier klappt einwandfrei wieder zurück klappt nicht
Sheets(2).Select 'damit wird wieder der Fehler ausgelöst.
wolfgang
zusätzlich
05.01.2023 17:02:02
wolfgang
Das ist mein Code von der ich starte.
wb.Activate
Sheets(1).Activate ' bis hier klappt einwandfrei wieder zurück klappt nicht
Sheets(2).Select 'damit wird wieder der Fehler ausgelöst.
wolfgang
AW: zusätzlich
05.01.2023 19:13:55
Yal
Hallo Wolfgang,
hmm... nicht leicht die passende Begriffe zu finden, das kann ich nachvollziehen.
"wieder zurück die aktive Tabelle aktiviert werden"
Es ist nun mal so, das die aktive Tabelle die aktive Tabelle ist. Um wieder aktiviert zu werden, müsste die zuerst "deaktiviert", in dem zuerst eine andere aktiviert wird. Somit hat du Recht.
Aber eigentlich ist es nicht, was Du möchtest. Was Du möchtest ist, dass was passiert, wenn diese Tabelle aktiviert wird, jetzt passieren soll.
Da ist eine Trennung der Aktion vom Auslöser notwendig.
Du hast eine Ereignis-Procedure "Worksheet_Activate". Diese macht Aktion xy. Du möchtest, dass diese Aktion xy jetzt ausgeführt wird. Die Lösung besteht nicht daran, das "Activate" zu provozieren, sondern die Aktion separat vom activate zur Verfügung zu stellen.

Private Sub Worksheet_Activate()
Call Aktion_xy
End Sub
Public Sub DamitStarteIch_xy()
Call Aktion_xy
End Sub
Private Sub Aktion_xy()
'hier wird die Aktion in seiner Vollständigkeit programmiert
End Sub
So hast Du 2 Auslöser, die dieselbe Aktion ausführen lassen.
Jetzt ist nur noch die Frage, wie "DamitStarteIch_xy" aufgreifen wird. Am einfachsten mit Alt+F8 und Auswahl dieser Procedure. Eigentlich ist diese vorgeschaltete Procedure gar nicht notwendig. Man kann auch direkt "Aktion_xy" starten. Diese müsste dann "Public Sub" sein.
Ich hoffe, ich kann dir damit Licht in dem Nebel bringen.
VG
Yal
Anzeige
AW: zusätzlich
05.01.2023 22:27:00
wolfgang
Guten Abend Yal,
ich werde morgen weiter machen, melde mich.
Gruß Wolfgang
gelöst -)
06.01.2023 11:24:57
wolfgang
Guten Morgen Yal,
ich habe die Lösung gefunden.
'------- dies befindet sich in der zu kopierenden Datei -----------------------

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Excel.Range, Cancel As Boolean)
Call In_Vorlage_kopieren
ActiveSheet.Cells(12, 11).Select
SendKeys "{ENTER}", True
End Sub
'---- dies befindet sich in der Empfänger Datei -----------------------

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Not Application.Intersect(Target, Range("K13")) Is Nothing Then
Call Datenbank_schließen
End If
End Sub

Private Sub Datenbank_schließen()
Dim wbk As Workbook, X As String
Application.DisplayAlerts = False
For Each wbk In Workbooks
If wbk.Name = "#_Lager.xlsm" Then
X = wbk.FullName
wbk.Close False
'  Kill X
Exit For
End If
Next
Application.DisplayAlerts = True
End Sub
Danke für die genaue Information !
gruß wolfgang
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige