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

Speichern ohne Makro

Speichern ohne Makro
12.04.2019 12:13:46
Al
Hallo zusammen,
ich habe mir ein Button Ausgabe gebastelt, der aus einer vorhandenen Exceldatei (xmlsm) eine Datei ohne Makros erstellen, bestimmte Blätter und Links entfernen soll. Das klappt auch soweit, allerdings dauert das Erstellen der xlsx sehr lange.
Kann mir jemand helfen den Code so umzumodeln, dass die Ausgabe schneller geht? Ich glaube, dass in dem Makro "Ausgabe" ein "logischer Fehler" liegt, den ein erfahrener Programmiere anpassen kann.
Danke für die Mühe.
Anbei die Datei. Ich war gezwungen aufgrund des max. Uploads einige Arbeitsblätter zu entfernen.
Gruß
Al
https://www.herber.de/bbs/user/129104.xlsm

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Speichern ohne Makro
12.04.2019 12:38:07
Daniel
Hi
man kann dir bestimmt helfen.
allerdings solltest du es den potentiellen Helfern so einfach wie möglich machen und sie nicht zusätzlich mit unnötigen Aufgaben wie dem Knacken von Passwörtern beschäftigen.
Gruß Daniel
AW: Speichern ohne Makro
12.04.2019 13:51:58
EtoPHG
Hallo Al,
Wieso alles kopieren und dann löschen?
Lieber nur das kopieren was nötig ist!
Also probier mal:
Sub Augabe()
Dim wb As Workbook, ws As Worksheet, sh As Shape
Const dontCopy As String = _
";README;Daten;P-0173381-A-18;P-0204502-A-18;P-0204526-A-18" & _
";3830-15-1117;3830-15-1118;3830-15-1119;3830-16-1131;3830-16-1133" & _
";3830-17-1136;3830-17-1137;3830-17-1139;3830-17-1140;3830-14-1104"
Application.ScreenUpdating = False
Set wb = Workbooks.Add(xlWBATWorksheet)
For Each ws In ThisWorkbook.Worksheets
If InStr(dontCopy, ";" & ws.Name & ";") = 0 Then _
ws.Copy After:=wb.Sheets(wb.Sheets.Count)
Next
For Each Link In wb.LinkSources(xlLinkTypeExcelLinks)
wb.BreakLink Name:=Link, Type:=xlLinkTypeExcelLinks
Next
For Each sh In wb.Sheets("ONSHORE").Shapes
If InStr(1, sh.Name, "CommandButton") = 0 Then sh.Delete
Next
Application.DisplayAlerts = False
wb.Sheets(1).Delete
wb.SaveAs Replace(ThisWorkbook.FullName, ".xlsm", ".xlsx"), xlOpenXMLWorkbook
Application.DisplayAlerts = True
wb.Close False
MsgBox "Gespeichert im selben Verzeichnis, ohne Makros & Verlinkungen"
Application.ScreenUpdating = True
End Sub
Gruess Hansueli
Anzeige
AW: Speichern ohne Makro
12.04.2019 14:10:01
Al
Hallo Hansueli,
genau das war ich gesucht habe. Die Ausgabe dauert jetzt nur noch wenige Sekunden. Besten Dank.
Eine Frage noch: Kannst du mir sagen, wieso die ausgegebene xlsx-Datei immer noch eine Verknüpfung zur xlsm-Datei anzeigt? Ich dachte ich hätte dies mit der Codezeile
For Each Link In wb.LinkSources(xlLinkTypeExcelLinks)
wb.BreakLink Name:=Link, Type:=xlLinkTypeExcelLinks
Next
erschlagen.
Gruß
Al
Verknüpfung kommt von DropDown-Liste
12.04.2019 14:33:15
DropDown-Liste
Hallo Al,
Die Verknüpfung basiert auf der Gültigkeitsliste in Spalte D des Blatts "ONSHORE".
Da die Tabelle "Daten" nicht mitkopiert wird, verliert diese Liste die Referenz.
In Spalte D müsste also die Datengültigkeit gelöscht werden, dann ist auch die Verknüpfung weg.
Gruess Hansueli
Anzeige
@EtoPHG_ Danke dir.
12.04.2019 15:47:52
Al
Nun bin ich restlos glücklich.
Danke dir.
Schönes Wochenende.
Al
No problemo... Schönes Knochenende ;-)
12.04.2019 16:26:51
EtoPHG

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige