Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1700to1704
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

Tabelle per VBA vor dem Speichern löschen

Tabelle per VBA vor dem Speichern löschen
23.07.2019 18:54:49
Alex
Hallo zusammen,
ich habe ein hoffentlich einfaches Problem und stehe auf dem Schlauch.
Ich habe mir folgenden kleinen Code erzeugt, um mir eine Kopie der aktuellen Datei speichern zu lassen.
[code]

Sub Datei_speichern_unter()
Dim NeuerName As String
NeuerName = Range("B10")
NeuerName = Replace(NeuerName, "/", "-")
ActiveWorkbook.SaveCopyAs NeuerName & "_" & Range("A2") & "_" & Range("B2") & ".xlsm"
End Sub
[/code]
Nun würde ich gerne zwei Dinge erreichen:
1. Die Werte bestimmter Zellen sollen in definierte Zellen der neuen Datei geschrieben werden.
Bsp:
In Tabelle "Temp" steht
A1 = Text1
B1 = Zahl1
Nun sollen diese Werte in der neuen Datei in der Tabelle "Informationen" in die Zellen X1 und Y1 geschrieben werden.
2. In der Kopie soll dann die Tabelle mit dem Namen "Temp" gelöscht werden.
Ich möchte eine Batchroutine erzeugen, die mir mehrere Dateien mit dem gleichen Inhalt erzeugt, die sich lediglich in den Zellinhalten der Zelle A1, B1, A2, B2, A3, B3 etc unterscheiden.
Und jede Zeile entspricht dabei einer neuen Datei.
Wisst ihr, was ich meine?
Würde mir hier jemand weiterhelfen? :-)

17
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Tabelle per VBA vor dem Speichern löschen
24.07.2019 09:45:48
Herbert
Hallo,
was möchtest Du jetzt: Eine "Batch"-Routine oder einen VBA-Code?
Servus
AW: Tabelle per VBA vor dem Speichern löschen
24.07.2019 11:46:41
AleXSR700
Beides :-)
Ich bin etwas weiter gekommen, aber meine Syntax für den Löschbefehl passt noch nicht. Ich bekomme es nicht hin, dass ich den Dateinamen zusammen mit dem Namen des Worksheet ("Infos") angebe.
Sub Dateien_anlegen()
Dim Vorsilbe As String
Dim Dateiname As String
Vorsilbe = Range("B10")
Dateiname = ActiveWorkbook.Path & "\" & Vorsilbe & "_" & Range("A2") & "_" & Range("B2") & ". _
xlsm"
ActiveWorkbook.SaveCopyAs Dateiname
Application.DisplayAlerts = False
Worksheets([Dateiname]Infos).Delete
Application.DisplayAlerts = True
Workbooks.Open Filename:=Dateiname
End Sub
Diese Syntax hat noch einen Fehler:
Worksheets([Dateiname]Infos).Delete
Könntest du mir dabei helfen?
Wenn das läuft, werde ich versuchen die For-Schleife umzusetzen und wenn ich darf, dabei noch einmal nachfragen, falls ich wieder hängen bleibe.
Anzeige
AW: Tabelle per VBA vor dem Speichern löschen
24.07.2019 11:57:30
Herbert
Hallo,
wenn ich dich richtig verstanden habe, möchtest du das Sheet "Infos" aus der aktiven AM löschen. Das geht so:
Sub Dateien_anlegen()
Dim Vorsilbe As String, Dateiname As String
'Vorsilbe = Range("B10")
Dateiname = ActiveWorkbook.Path & "\" & Vorsilbe & "_" & Range("A2") & "_" & Range("B2") & ". _
xlsm """
ActiveWorkbook.SaveCopyAs Dateiname
Application.DisplayAlerts = False
Worksheets("Infos").Delete
'Worksheets([Dateiname]Infos).Delete
Workbooks.Open Filename:=Dateiname
End Sub
Sollte ich dich falsch verstanden haben, dann sag mir wie es richtig ist.
Servus
Anzeige
AW: Tabelle per VBA vor dem Speichern löschen
24.07.2019 13:26:01
AleXSR700
Hallo Herbert,
danke für deine Rückmeldung. Aus der aktiven bekomme ich es problemlos gelöscht. Genau das möchte ich aber vermeiden. Ich will eine Kopie unter neuem Namen speichern über
Dateiname = ActiveWorkbook.Path & "\" & Vorsilbe & "_" & Range("A2") & "_" & Range("B2") & ". _
xlsm"
ActiveWorkbook.SaveCopyAs Dateiname
Das funktioniert auch. Aber ich möchte aus dieser neuen Datei das Worksheet "Infos" löschen, ohne dass die Datei vorher geöffnet oder sonst etwas wird.
Sprich, Kopie abspeichern und dann aus dieser Kopie das Worksheet "Infos" löschen.
Anzeige
AW: Tabelle per VBA vor dem Speichern löschen
24.07.2019 15:08:13
Herbert
Hallo,
probiers mal damit:
Sub Dateien_anlegen()
Dim Vorsilbe As String, Dateiname As String
Vorsilbe = Range("B10")
Dateiname = ActiveWorkbook.Path & "\" & Vorsilbe & "_" & Range("A2") & "_" & Range("B2") & ". _
xlsm """
ActiveWorkbook.SaveCopyAs Dateiname
Application.EnableEvents = False
Application.ScreenUpdating = False
Workbooks.Open Filename:=Dateiname
Worksheets("Infos").Delete
Application.DisplayAlerts = False
ActiveWindow.Close true
Application.ScreenUpdating = True
Application.EnableEvents = True
Workbooks.Open Filename:=Dateiname
End Sub
Servus
Anzeige
AW: Tabelle per VBA vor dem Speichern löschen
24.07.2019 16:00:54
AleXSR700
Funktioniert leider nicht. Er löscht dann das Sheet in der Vorlage, sprich der Datei, aus der heraus ich das ganze auslösen will.
Die neu geschriebene Datei hat nach wie vor das Sheet, leider.
AW: Tabelle per VBA vor dem Speichern löschen
24.07.2019 16:06:11
AleXSR700
Alternativ, wäre es möglich den Befehl
ActiveWorkbook.SaveCopyAs Dateiname

so abzuändern, dass er alle Sheets ausser "Infos" in die neue Datei kopiert?
AW: Tabelle per VBA vor dem Speichern löschen
25.07.2019 14:50:10
AleXSR700
Leider ändert auch das nichts. Er löscht nach wie vor in meiner Vorlage statt in der neu erstellten Datei :-(
Anzeige
AW: Tabelle per VBA vor dem Speichern löschen
25.07.2019 15:13:10
Mullit
Mein lieber Freund & Kupferstecher,
Du kannst nicht rückmeldungslos durch die Foren jumpen, in der Hoffnung, daß Dir mit dem Gießkannenprinzip schon irgendein Dummer richtig antworten wird, ich bin denn man raus, ach ja zur Info II:
http://office-loesung.de/p/viewtopic.php?f=166&t=810218#p3237602
PS: und wie ich Sabina kenne ist die auch schon gut auf Betriebstemp., sozusagen kurz vor Kernschmelze, da mal viel Spaß weiterhin...;-)
Gruß, Mullit
AW: Tabelle per VBA vor dem Speichern löschen
25.07.2019 15:26:34
Herbert
Hallo Alex,
dann lösche doch das Sheet "Info" aus der aktiven AM und speichere diese dann unter dem neuen Namen:
Sub Dateien_anlegen()
Dim Vorsilbe As String, Dateiname As String
Vorsilbe = Range("B10")
Dateiname = ActiveWorkbook.Path & "\" & Vorsilbe & "_" & Range("A2") & "_" & Range("B2") & ". _
xlsm """
Application.EnableEvents = False
Application.ScreenUpdating = False
Worksheets("Infos").Delete
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Dateiname
ActiveWindow.Close False
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Servus
Anzeige
AW: Tabelle per VBA vor dem Speichern löschen
25.07.2019 17:24:56
AleXSR700
Bezüglich mehrere Foren: Habe ich im Forum beantwortet, aber ich wollte niemandem etwas Böses, sondern wusste nur nicht, in welchem Forum man am Besten posten sollte.
Geantwortet habe ich stets, auch wenn ich leider nicht rund um die Uhr antworten kann oder nach dem Lesen erst einmal versuche eure Vorschläge umzusetzen und mich erst danach wieder melde.
Ich versuche ja, eure Hilfe umzusetzen.
@Herbert:
Wenn ich erst lösche, bevor er die Kopie speichert, dann sthet ihm für den nächsten Durchlauf des Loops ja das zu löschende Sheet zur Verfügung.
Das zu löschende Sheet wird bei jeder Iteration benötigt und deshalb kann es erst in der neuen Datei gelöscht werden, leider :-(
Anzeige
AW: Tabelle per VBA vor dem Speichern löschen
26.07.2019 09:01:51
Herbert
Hallo Alex,
den nachfolgenden Code habe ich soeben ausprobiert und er hat tadellos funktioniert:
Sub Dateien_anlegen()
Dim Vorsilbe As String, Dateiname As String
Vorsilbe = Range("B10")
Dateiname = ActiveWorkbook.Path & "\" & Vorsilbe & "_" & Range("A2") & "_" & Range("B2") & ". _
xlsm"
ActiveWorkbook.SaveCopyAs Dateiname
Application.EnableEvents = False
Application.ScreenUpdating = False
Workbooks.Open Filename:=Dateiname
Application.DisplayAlerts = False
Worksheets("Infos").Delete
ActiveWindow.Close True
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Probiers mal aus!
Servus
Anzeige
AW: Tabelle per VBA vor dem Speichern löschen
29.07.2019 15:40:54
AleXSR700
Hi,
habe den Code eben ausprobiert und mal mit F8 Schritt für Schritt durchlaufen lassen.
Es wird eine Kopie angelegt, die Kopie geöffnet, dann in meiner Vorlage das "Infos" Sheet gelöscht und die Kopie geschlossen. In der Kopie bleibt "Infos" erhalten und in der Vorlage ist es weg.
Scheint als würde Excel da nicht korrekt das Aktive Workbook wechseln. Oder liegt es daran, dass ich den Code mit geöffnetem VBA Editor laufen lasse o. ä.?
AW: Tabelle per VBA vor dem Speichern löschen
29.07.2019 16:01:43
Herbert
Hallo Alex,
wo du her kommst weiß ich nicht. Wie alt du bist weiß ich auch nicht. Doch wo ich herkomme lernt man schon den kleinen Kindern, dass man "Guten Tag/Grüß Gott" und am Ende "Auf Wiedersehen" sagt. Auf das Forum übertragen heißt das "Hallo" am Anfang und "Tschüß/Servus" am Ende!
Wenn wir uns darauf verständigen können, können wir auch weiterhin miteinander kommunizieren. Andernfalls lass es bleiben!
Mein Code funktioniert bei mir! Und das MUSS er auch bei dir! Wenn nicht, stimmt etwas mit deinen Angaben nicht!
Mit "ActiveWorkbook.SaveCopyAs Dateiname" wird die NEUE Datei gespeichert.
Mit "Workbooks.Open Filename:=Dateiname" wird die gespeicherte NEUE Datei geöffnet (die Originaldatei bleibt währenddessen immer offen!).
Die geöffnete Datei ist jetzt in "ActiveWindow".
Mit "Worksheets("Infos").Delete" wird "Infos" aus der NEUEN, geöffneten Datei entfernt.
Mit "ActiveWindow.Close True" wird die NEUE, geöffnete Datei wieder geschlossen, ohne "Infos".
Am Ende hast du die Originaldatei MIT "Infos" vor dir.
Wenn du nun die oben erstellte Datei öffnest, kann die "Infos" nicht mehr vorhanden sein!
Servus
Anzeige
AW: Tabelle per VBA vor dem Speichern löschen
30.07.2019 13:25:47
AleXSR700
Hallo Herbert,
ich habe folgenden Code eingefügt und ausgeführt
Sub Dateien_anlegen()
Dim Vorsilbe As String, Dateiname As String
Vorsilbe = Range("B10")
Dateiname = ActiveWorkbook.Path & "\" & "Test" & "_" & Range("A2") & "_" & Range("B2") & ". _
xlsm"
ActiveWorkbook.SaveCopyAs Dateiname
Application.EnableEvents = False
Application.ScreenUpdating = False
Workbooks.Open Filename:=Dateiname
Application.DisplayAlerts = False
Worksheets("Infos").Delete
ActiveWindow.Close True
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub
Dieser entspricht deinem, auss, dass ich den Namen vorgegeben habe.
Das ganze dann in Excel 2010.
Führe ich den Code aus, dann erzeugt er korrekt eine neue Datei mit richtigem Namen. In dieser neuen Datei ist das Sheet "Infos" noch da und in der Vorlage, in der ich den Code ausgeführt habe, ist das Sheet "Infos" weg.
Wieso, weshalb, das weiss ich nicht. Ich kann nur sagen, dass es so ist, leider.
Um den Fehler zu finden:
Muss der Code in das Sheet oder kann er in Arbeitsmappe? Ich habe ihn in Arbeitsmappe.
Worauf basiert die Erkennung es ActiveWorkbook? Kann der nVidia Desktopmanager in irgendeiner Weise Probleme machen, weil er immer das Fenster aktiv hält, in dem die Maus sich befindet?
Vielen Dank für deine Hilfe :-)
Viele Grüße
AW: Tabelle per VBA vor dem Speichern löschen
30.07.2019 13:35:52
AleXSR700
Hallo Herbert,
ich war sicher, dass du Recht hast und habe nun rumprobiert mit dem nVidia Manager etc. und am Ende lag es wirklich daran, dass der Code nicht im Sheet, sondern der Arbeitsmappe hinterlegt war.
Darf ich fragen, woran das liegt? Wieso wird derselbe Code an diesen zwei Orten unterschiedlich angewendet?
Viele Grüße

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige