Live-Forum - Die aktuellen Beiträge
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

Re: Makro zum Löschen von Tabellenblättern

Re: Makro zum Löschen von Tabellenblättern
15.06.2009 15:25:57
Tabellenblättern
Moin Leute,
kann man das unten stehende Makro auch so schreiben, dass sich bei Ausführung (z.B. einer Schaltfläche) neben der bereits offenen Arbeitsmappe eine neue öffnet, d.h.:
1. Eine neue arbeitsmappe öffnen.
2. In diese alle Daten aus der ersten Tabelle übertragen und in Werte umrechnen (alle anderen Tabellenblätter der Mappe werden nicht übertragen).
3. Das Fenster "Speichern unter" aufrufen.

Sub Makro1()
ActiveSheet.Unprotect Password:="PASSWORT"
Dim wks
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
ActiveSheet.Paste
Application.CutCopyMode = False
Range("A1").Select
For Each wks In ActiveWorkbook.Worksheets
If wks.Name  ActiveSheet.Name Then
wks.Delete
End If
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.Dialogs(xlDialogSaveAs).Show
ActiveSheet.Protect Password:="PASSWORT"
End Sub


Freue mich über Vorschläge!! Danke
Ger

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Re: Makro zum Löschen von Tabellenblättern
15.06.2009 15:55:03
Tabellenblättern
Hallo Ger,
kar geht das:
1. und 2.: Neue Arbeitsmappe mit kopierten Tabellenblatt 1: Sheets("Tabelle1").Copy
(Was meinst Du mit Werte umrechnen?)
3. Aufruf "Speichern unter": Application.CommandBars.FindControl(ID:=748).Execute
Viele Grüße
Martin
AW: Re: Makro zum Löschen von Tabellenblättern
15.06.2009 16:00:54
Tabellenblättern
Hallo ger
versuch mal.

Sub Makro1()
ActiveSheet.Unprotect Password:="PASSWORT"
Dim wks
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
ActiveSheet.Paste
For Each wks In ActiveWorkbook.Worksheets
If wks.Name  ActiveSheet.Name Then
wks.Delete
End If
Next
Cells.Select
Selection.Copy
Workbooks.Add
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.Dialogs(xlDialogSaveAs).Show
ActiveSheet.Protect Password:="PASSWORT"
End Sub


kannst den Code(Makro) auch einem Button zuweisen
Gruss hary

Anzeige
Jetzt verstehe ich wie Du es möchtest...
15.06.2009 16:09:16
Martin
Hallo Ger,
vermutlich reicht Dir bereits dieser Code aus:

Sub Makro1()
Sheets("Tabelle1").Copy
ActiveSheet.Unprotect Password:="PASSWORT"
ActiveSheet.UsedRange = ActiveSheet.UsedRange.Value
ActiveSheet.Protect Password:="PASSWORT"
Application.Dialogs(xlDialogSaveAs).Show
End Sub


Viele Grüße
Martin

AW: Jetzt verstehe ich wie Du es möchtest...
15.06.2009 16:20:28
Ger
Mmh, leider bei dir das gleiche Ergebnis, Martin..
AW: Jetzt verstehe ich wie Du es möchtest...
15.06.2009 17:04:25
Martin
Hallo Ger,
der gleiche Fehler kann bei mir nicht auftreten, da ich keine Paste-Methode verwende. In welcher Zeile schimpft Excel denn und welche Fehlermeldung wird angezeigt?
Viele Grüße
Martin
Anzeige
AW: Jetzt verstehe ich wie Du es möchtest...
15.06.2009 17:21:08
Ger
Hey Martin,
versuche den Rest gerade mit Hary zu lösen (siehe letzten Eintrag im Beitrag).
Danke trotzdem!!!
AW: Re: Makro zum Löschen von Tabellenblättern
15.06.2009 16:10:37
Tabellenblättern
Mmh, es erscheint der Laufzeitfehler 1004:
"Die PasteSpezial-Methode des Range-Objektes konnte nicht ausgeführt werden".
Bei beenden öffnet er nur die eine neue Arbeitsmappe
AW: Re: Makro zum Löschen von Tabellenblättern
15.06.2009 16:21:32
Tabellenblättern
Hi Ger
bei mir leif er ohne Meldung,habe hier 2007. versuch mal den.

Sub Makro1()
ActiveSheet.Unprotect Password:="PASSWORT"
Dim wks
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
ActiveSheet.Paste
For Each wks In ActiveWorkbook.Worksheets
If wks.Name  ActiveSheet.Name Then
wks.Delete
End If
Next
Cells.Select
Selection.Copy
Workbooks.Add
Selection.PasteSpecial
Application.CutCopyMode = False
Range("A1").Select
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.Dialogs(xlDialogSaveAs).Show
ActiveSheet.Protect Password:="PASSWORT"
End Sub


Gruss Hary

Anzeige
AW: Re: Makro zum Löschen von Tabellenblättern
15.06.2009 16:40:32
Tabellenblättern
Funktioniert leider auch nicht, liegt wohl an meiner Datei (kann ich hier auch nicht hochladen, ist zu groß).
Das Problem war auch eigenlich vielmehr, dass bei dem unten stehenden Makro alles klappt, nur wenn ich in dem geöffenten "Speichern unter" Fenster auf "Abbrechen" klicke, hat er natürlich alles wie gewünscht in Werte umgerechnet und alle anderen Tabellenblätter gelöscht.
Nur leider hat er das in der bestehenden Arbeitsmappe gemacht, sodass alle Daten und Blätter der ursrünglichen Mappe, wenn man sie nicht vorher abgespeichert hat, verloren sind!

Sub Makro1()
ActiveSheet.Unprotect Password:="MFSI731$$"
Dim wks
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
ActiveSheet.Paste
For Each wks In ActiveWorkbook.Worksheets
If wks.Name  ActiveSheet.Name Then
wks.Delete
End If
Next
Cells.Select
Selection.Copy
Workbooks.Add
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Range("A1").Select
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.Dialogs(xlDialogSaveAs).Show
ActiveSheet.Protect Password:="MFSI731$$"
End Sub


Anzeige
AW: Re: Makro zum Löschen von Tabellenblättern
15.06.2009 17:08:27
Tabellenblättern
Hi ger
also ist das mit dem Blatt loeschen hinfaellig!? Du willst also nur dier Werte aus dem Org. kopieren, in eine neue Mappe,dann Speichern Dialog. so hab ich's verstanden. Also alter Thread hinfaellig. versuch mal so:
Die alte Mappe bleibt so erhalten wie sie war.

Sub Makro1()
Dim shQuelle As Worksheet
Dim shZiel As Worksheet
ActiveSheet.Unprotect Password:="PASSWORT"
Dim wks
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Set shQuelle = ActiveSheet
Workbooks.Add
Set shZiel = ActiveSheet
shQuelle.Cells.Copy
shZiel.Cells(1, 1).PasteSpecial xlPasteValues
Application.CutCopyMode = False
Range("A1").Select
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.Dialogs(xlDialogSaveAs).Show
ActiveSheet.Protect Password:="PASSWORT"
End Sub


Gruss Hary

Anzeige
AW: Re: Makro zum Löschen von Tabellenblättern
15.06.2009 21:13:39
Tabellenblättern
Komisch, hatte das hier eigentlich schon gepostet!?:
also das Makro ist super soweit, Hary. Folgende habe ich aber wohl vergesse zu schreiben, sorry:
Das Format soll vollständig mit in die neue Tabelle übernommen werden, also auch wo und wie welcher Zellenschutz aktiviert ist (bisher ist die gesamte Tabelle gesperrt). Zudem soll nach Anwendung des Makros der Blattschutz beim alten Dokument wieder drin sein (hat bisher nicht geklappt).
Danke und Grüße
AW: Test
16.06.2009 08:53:33
hary
Moin Ger
Jetzt funzt es. Werte aus Org. kopieren, neue Mappe erstellen,Werte und Format rein,Speichern Dialog,Org. Mappe=Schutz. Alles auskommentiert.

Sub Makro1()
Dim shQuelle As Worksheet
Dim shZiel As Worksheet
ActiveSheet.Unprotect Password:="PASSWORT"
Dim wks
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Set shQuelle = ActiveSheet
Workbooks.Add
Set shZiel = ActiveSheet
shQuelle.Cells.Copy
shZiel.Cells(1, 1).PasteSpecial xlPasteValues 'Nur Werte übernehmen
shZiel.Cells(1, 1).PasteSpecial xlPasteFormats 'Format übernehmen
Application.CutCopyMode = False
Range("A1").Select
Application.DisplayAlerts = True
Application.ScreenUpdating = True
Application.Dialogs(xlDialogSaveAs).Show
ActiveSheet.Protect Password:="PASSWORT"  'Schutz für neue Mappe
'-------Mappe1 ändern in den Namen Deiner Org. Mappe---------
Workbooks("Mappe1").ActiveSheet.Protect Password:="PASSWORT" 'Schutz alte Mappe
End Sub


versuch's mal
Gruss hary

Anzeige
AW: Test
16.06.2009 09:22:13
Ger
Moin Hary,
also nachdem ich die Datei gespeichert habe, wird mir Laufzeitfehler 9 angezeigt: Index außerhalb des gültigen Bereichs. Die neu erstellte Mappe1 ist super so. Der Blattschutz in der alten Tabelle ist wieder nicht mehr aktiviert.
Liegt es vielleicht daran, dass ich in einer Zelle über "Gültigkeit" eine Liste innerhalb des Blattes zugewiesen habe? Ist ja schon richtig so, dass in der neuen Mappe1 kein DropDown mehr zur Verfügung steht.
Grüße
Ger
AW: Testmappe
16.06.2009 09:31:40
hary
Hi Ger
hier mal eine Testmappe, die funzt.Wegen der Einfachheit: In A1 ist eine Formel, nur A1 ist gesperrt.
Starte dann mal das Makro. Kommt Fehlermeldung?
https://www.herber.de/bbs/user/62457.xls
Gruss hary
Anzeige
AW: Testmappe
16.06.2009 09:35:06
Ger
Yupp, leider gleiche Fehermeldung...
AW: Testmappe
16.06.2009 09:51:42
hary
Hi
Test mal das Makro mit F8(Einzelschritt) in welcher Zeile kommt die Meldung?
Bei mir laeuft die Testmappe durch ohne murren. Hast Du irgendwo verbundene Zellen?
Gruss Hary
AW: Testmappe
16.06.2009 10:03:06
Ger
Ok, ich hatte der neuen Datei einen anderen Namen gegeben als "Mappe1", wie es im Makro steht. Wenn ich sie unter "Mappe1" speichere, erscheint die Fehlermeldung nicht mehr.
Aber der Blattschutz der alten Datei ist leider trotzdem nicht mehr aktiv. Und es wäre auch super, wenn ich die Datei unter jedem beliebigen Namen abspeichern könnte...
Danke für die ganze Mühe Hary
Anzeige
AW: Testmappe
16.06.2009 10:16:27
hary
hi
jetzt ziehen wir's aber durch!!!!!!
Du hast die Mappe1(also meine Testmappe)auf. Dann fuehrst Du das Makro aus. Es wird eine neue Mappe angelegt und der Speichern Dialog erscheint. Dann kannst Du doch unten einen neuen Namen geben.
Auf speichern klicken. Diese Mappe ist dann noch offen. Schliesse diese(Aenderungen ja).
Dann hast Du nur noch Mappe1 offen. Mappe1 nicht umbenennen.
Schliesse diese(Aenderungen ja). Mappe1 wieder oeffnen, dann muesste der Schutzvon Mappe1 wieder drin sein oder?
Hary
AW: Testmappe
16.06.2009 10:45:00
Ger
Oh man, ich hab meinen Fehler endlich gefunden. Hatte in Deinem Makro "Mappe1" nicht durch den Namen meiner Datei getauscht. Nach Umbenennung geht es jetzt!!
Sorry, das hätte ich wirklich merken müssen!
Danke noch mals für Deine Zeit und Mühe!!
Grüße
Ger
Anzeige
AW:Na also. Gern geschehen owT.
16.06.2009 12:26:30
hary
.

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige