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

Problem bei Kopie einer Arbeitsmappe

Problem bei Kopie einer Arbeitsmappe
10.05.2006 10:40:30
Julian
Hallo.
Ich habe mit folgendem Makro ein Problem bei der Ausführung. Ich möchte eine Arbeitsmappe mit ca. 100 Tabellenblättern kopieren und ich benörige auch eine "Wertkopie", da die Werte im Original aus einer Datenbank kommen.
Nun bekomme ich aber diese Fehlermeldung:
Laufzeitfehler 1004 - die Methode "Copy" für das Objekt "Sheets" ist fehlgeschlagen.
Hier das dazugehörige Makro:

Sub Speichern_In_neue_Datei()
Dim ws As Worksheet
Application.ScreenUpdating = False
ThisWorkbook.Sheets.Copy
For Each ws In ActiveWorkbook.Sheets
ws.Cells.Copy
ws.Cells.PasteSpecial Paste:=xlPasteValues
Next 'ws
Application.Dialogs(xlDialogSaveAs).Show "R:\UB\StbCo\_Alle\CO 2\ZBV\Auswertungen"
ActiveWorkbook.Close
Application.ScreenUpdating = True
End Sub

Wo liegt der Fehler bzw. wie kann ich das Problem anders lösen?

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Problem bei Kopie einer Arbeitsmappe
10.05.2006 14:39:16
christian
Mal ne kurze Frage warum nicht einfach Datei speichern unter und dann
For i = 1 To Worksheets.Count
Worksheets(i).Select
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Next i
End Sub
fertig!
Fals probleme kurz melden
mfg
Christian
AW: Problem bei Kopie einer Arbeitsmappe
10.05.2006 14:50:34
Julian
Hmm... ein interessanter Ansatz. Im ersten Test scheint auch alles zu klappen. Vielen Dank.
Geht es auch mit Schutz?
10.05.2006 14:56:26
Julian
Eine Frage doch noch. Kann man sowas auch einstellen, dass es geht, wenn die Blätter einen Schutz haben. In den Tabellenblättern sind viele Formeln und Bezüge etc. und darum wollte ich die Orginaldatei gerne entsprechend schützen.
Anzeige
AW: Geht es auch mit Schutz?
10.05.2006 15:25:40
christian
Hallo Julina,
also mit dem Schutz ist das komplizierter
wie viele Blätter sind denn geschützt und wie viele Passwörter sind vergeben?
Wenn nur ein Passwort vergeben ist, ist es wohl ein wenig leichter, aber das muss ich selbst erst mal testen.
gib mal kurz die Info rüber (Anzahl der Blätter und Passwörter) natürlich die Passwörter nicht nennen!!! eh klar)
lg
Christian
AW: Geht es auch mit Schutz?
10.05.2006 15:38:17
Julian
Eigentlich haben alle Blätter in der Arbeitsmappe einen Schutz bzw. sollen einen haben. Ich würde für alle Blätter das gleiche Passwort verwenden.
Die Datei ist quasi ein Basisblatt mit Erläuterungen und dann folgt ein Parameterblatt mit den individuell gewünschten Einstellungen und die weiteren ca. 100 Blätter verknüpfen hierauf bzw. haben eine Anbindung an die OLAP-Datenbank und dienen der Auswertung. Da zum Teil aber nicht nur Werte ausgelesen, sondern auch Quotienten etc, gebildet werden und sonstige Rechenschnritte vollzogen werden, möchte ich diese Blätter schützen (habe auch die Formel alle ausgeblendet). Einerseits sollen die User die Formeln nicht sehen und anderseits sollen sie nicht in der Datei rumfuschen...
Wenn du hier einen Tipp hättest, wäre es genial!!!
Anzeige
AW: Geht es auch mit Schutz?
10.05.2006 15:56:37
christian
Hallo Julian
ich hoffe das hier hilft dir weiter
Makro wie gehabt nur Zeile ActiveSheet.Unprotect ("PASSWORT") einfügen (gross/kleinschreibung unbedingt beachten)
Also alle blätter mit dem gleich PW schützen ist da ein muss, sonst wirds wirklich kompliziert.
Wenn du schlaue user hast, (gibts auch :-) )könnte allerding einer auf die Idee kommen sich das Makro mal anzusehen, wenn es in der datei erstellt ist und hat dann das Passwort.
Das musst du abwägen. (ev. als Makro mit Button in deiner PERSONL.xls auslösen)
For i = 1 To Worksheets.Count
Worksheets(i).Select
ActiveSheet.Unprotect ("test")'test = nur als Beispiel PW eingefügt
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Selection.Interior.ColorIndex = xlNone
Selection.Font.ColorIndex = 0
Next i
End Sub
Wenn noch Fragen gerne!
lg
Christian
Anzeige
Sehr genial
10.05.2006 16:19:47
Julian
Sehr genial. Das geht super. Ein Passwort ist sowieso besser. Wenn ich das VBA Projekt schütze, müsste ich doch verhindern können, dass jemand das Passwort einsehen kann, oder?
So, eine letzte dumme Frage für heute.. als ich es eben ausgeführt habe, bekam ich folgende Meldung:
Die Select Methode des Worksheet Objektes konnte nicht ausgeführt werden. Unter debuggen verweist er auch genau auf den Befehl Worksheets(i).Select
Aber erste einmal vielen Dank. Das ist mir eine riesige Hilfe. Großes Lob von einem weniger schlauen User *lach*..
AW: Sehr genial
10.05.2006 16:37:45
christian
Hallo Julian
also erstmal, dass mit dem schlauen User war nicht auf dich bezogen sonder auf den Erfindungsgeist von Leuten die eine gabe dafür haben formulare und komplexe excel Dateien unwiederbringlich zu zerstören, die sie nicht selbst erstellt haben.
Beim "Ferndebuggen" bin ich eine komplette Niete, muss das immer selbst sehen (sorry)
Sollte das Problem weiter bestehen schicke mir doch mal das VBA wie du es einsetzt(wieder ohne PW - wer weiss wer hier reinguckt)
ich habe es bei mir getestet und da hat alles funktioniert.
VBA-Projekt schützen - da kenne ich mich selbst nicht aus, welche Berechtigungen man da vergeben kann. (einfach mal probieren)
lg
Christian
PS: bin erst morgen wieder erreichbar
Anzeige
AW: Sehr genial
10.05.2006 16:52:10
Julian
Keine Sorge. Habe es auch nicht auf mich bezogen. Hier der VBA wie ich ihn benutze:

Sub Wertkopie()
For i = 1 To Worksheets.Count
Worksheets(i).Select ---> Hierauf bezieht sich die Fehlermeldung
ActiveSheet.Unprotect ("Passwort")
Cells.Select
Selection.Copy
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Next i
End Sub

Wie gesagt, es funktioniert ja, aber es wäre natürlich schöner, wenn diese Meldung nicht käme. Verwirrt die Anwender nur.
Problem liegt bei verborgenen Tabellen
10.05.2006 17:01:08
Julian
Ich glaube die Fehlermeldung wird erzeugt, da ich zwei "Hilfstabellen" im verborgenen habe.
Sheets("X1").Visible = xlSheetVeryHidden
Sheets("X2").Visible = xlSheetVeryHidden
Die sollen auch nicht sichtbar sein für die Anwender, da hier nur Zwischenrechnungen ausgeführt werden etc. Wenn ich diese sichtbar mache, funktioniert dein Makro wieder einweindfrei.
Anzeige
AW: Problem liegt bei verborgenen Tabellen
11.05.2006 07:58:11
christian
Hallo Julian,
freut mich, dass du eine Lösung gefunden hast.
lg.
Christian
Problem erkannt - Lösung NEIN
12.05.2006 16:16:41
Julian
Leider habe ich nur erkannt, woran es liegt, aber ein Lösung habe ich nicht. Entweder muss das Makro auch bei den beiden verborgenen funktionieren oder aber deine Idee muss so funktionieren, dass ich genau sagen kann: Von Tab1 bis Tab43 und von Tab45 bis Tab98 soll es ausgeführt werden.
AW: Problem erkannt - Lösung NEIN
15.05.2006 07:44:13
christian
Hallo Julian,
na dann hast du ja die Lösung doch schon gefunden :-)
Also wenn du meinem Makro sagen möchtest, dass die variable nicht 1 to worksheets.count sein soll, dann gibts du ihm einfach (z.B. 1 to 43) an und wiederholst dann einfach das ganze noch einmal und setzt die Variable dann für 45 to 98 ein.
eine weitere Möglichkeit ist natürlich, zuerst alle versteckten einzublenden und dann dass Makro durchlaufen zu lassen und die gewünschten danach wieder zu verstecken. Dazu müsstest du mir nur mitteilen, wie genau du die Blätter ausgeblendet hast(Befehl).
Teste ich dann gerne noch mal für Dich.
lg
Christian
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige