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

Makrofehler PasteSpecial-Methode

Makrofehler PasteSpecial-Methode
Sören
Hallo zusammen,
ich benötige eure Hilfe; mittels Makro kann für den Anwender aus einer mit Blattschutz versehenen Arbeitsmappe eine Wertkopie dieser gesamten Mappe erstellt werden - diese soll keinen Passwortschutz mehr haben.
Das Problem ist, dass das Makro brav anfängt diverse Kopien zu machen und dann erfolgt ein Fehler:
Die PasteSpecial-Methode des Range-Objektes konnte nicht ausgeführt werden.
Folgendes Makro liegt zugrunde:
Sub Wertkopie()
Dim I As Integer
For I = 1 To Worksheets.Count
If Worksheets(I).Visible = True Then
With Worksheets(I)
.Activate
.Unprotect ("PW")
.Cells.Copy
.Cells.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
'.Protect ("PW")
End With
End If
Next I
End Sub
Woran kann es liegen bzw. Was ist falsch? Danke für eure Hilfe.
AW: Makrofehler PasteSpecial-Methode
20.10.2009 11:27:28
Björn
Hallo,
Du überschreibst damit Deine vorhandene Tabelle, das ist Dir schon klar?
Weil Du Kopie schreibst. Also ich würde das in eine neue Mappe kopieren.
Hast Du irgendwelche verbundenen Zellen in dem Blatt? Dann kann Excel die daten nichjt so einfügen.
Lösungsvorschlag, nicht die ganze Mappe kopieren, sondern die einzelnen Bereiche.
Klappt es denn, wenn Du das ganze von Hand (ohne Makro) machst? Wahrcheinlich kommt da auch ne Fehlermeldung, liegt also nicht an Deinem MAkro.
Am Ende solltest Du noch die Zwischenablage leeren, sonst sind die Zellen immer noch kopiert.
Und vielleicht auch noch Zelle A1 oder so markieren, dass nicht die MArkierung auf dem ganzen Blatt ist.
Gruß
Björn
Anzeige
AW: Makrofehler PasteSpecial-Methode
20.10.2009 11:44:37
Sören
Hallo Björn,
es wird vorher eine Kopie angelegt (weiteres Makro). Das Original bleibt also immer erhalten. Bisher hat es eigentlich immer funktioniert (hatte schon andere Dateien mit diesem Makro versehen). Es gibt verbundene Zellen (aber die gab es in den anderen Dateien auch).
Also manuell kann ich das ganze Blatt markieren und kopieren (natürlich nur wenn kein Blattschutz drauf ist).
Wie meinst du das mit der Zwischenalage leeren?
AW: Makrofehler PasteSpecial-Methode
20.10.2009 11:48:35
Björn
Hallo,
'Zwischenablage leeren
Application.CutCopyMode = False
Normalerweise wird die Zwischenablage von selbst gelöscht. Wenn du Pastespecial verwendest aber nicht.
Dein kopiertest Blatt belegt immer noch Speicher und kann z.B. in einer neuen Mappe noch eingefügt werden.
Wenn es bei Dir manuell funktioniert, dann verstehe ich es nicht, weil bei mir der Code funktioniert.
Gruß
Björn
Anzeige
AW: Makrofehler PasteSpecial-Methode
20.10.2009 11:58:13
Sören
An welcher Stelle muss ich das denn dann einsetzen?
AW: Makrofehler PasteSpecial-Methode
20.10.2009 12:03:35
Björn
ganz am Ende bzw. nach dem Einfügen.
Ganz am Ende macht sinn, wenn du mehrere Kopieraktionen hast. Dann reicht es einmal am Ende.
Gruß
Björn
AW: Makrofehler PasteSpecial-Methode
20.10.2009 12:03:36
Björn
ganz am Ende bzw. nach dem Einfügen.
Ganz am Ende macht sinn, wenn du mehrere Kopieraktionen hast. Dann reicht es einmal am Ende.
Gruß
Björn
Makrofehler PasteSpecial-Methode
20.10.2009 12:23:06
Sören
Ok, danke erstmal für den Hinweis. Kann es Komplikationen mit den Befehlen aus "Diese Arbeitsmappe" geben?:
Private Sub Workbook_Open()
Dim I
For I = Worksheets(1).Index To Worksheets.Count
With Worksheets(I)
.Protect UserInterfaceOnly:=True, Contents:=True, DrawingObjects:=False, Password:="PW"
.EnableOutlining = True
End With
Next
Application.Caption = "Auswertungsdatei XYZ"
Sheets("Tabelle1").Select
Range("K26").Select
End Sub
Ansonsten habe ich eine ähnliche Tabelle im letzten Jahr gehabt und da läuft es problemlos mit diesem Wertkopiebefehl. Neu ist allerdings der o.g. Part.
Anzeige
AW: Makrofehler PasteSpecial-Methode
20.10.2009 13:12:41
Björn
Bei diesem Befehl kopierst Du ja nix. Da setzt Du nur einen Blattschutz ohne Passwort für jedes Blatt in der Mappe.
Komplikationen kann es eigentlich nicht geben, außer, es gibt keine Tabelle1 in der Mappe oder sie ist ausgeblendet. Dann würde der Select Befehl einen Fehler bringen.
Noch mal zu Deinem Problem.
Wo genau kommt denn dein Fehler? Schon bei der ersten Tabelle? Bei jeder Tabelle?
Ich behaupte einfach, dass das Makro eigentlich funktioniert und nur bei einer Tabelle eben nicht.
Versuch das Makro mal in ner leeren Mappe, dann klappt es. Also liegt es an der Tabelle.
Genau bei dem Blatt, bei dem das Makro stehen bleibt, funktioniert es bestimmt nicht, wenn du es manuell machst.
Was bekommst du da für ne Fehlermeldung?
Gruß
Björn
Anzeige
AW: Makrofehler PasteSpecial-Methode
20.10.2009 13:19:40
Sören
Es läuft die ersten Blätter durch. Danach produziert es bei verschiedenen Blättern den Fehler. Beim ersten habe ich manuell alles kopiert und eingefügt (das ging problemlos). Oder was meinst du mit manuell genau?
AW: Makrofehler PasteSpecial-Methode
20.10.2009 13:24:29
Björn
mit manuell meine ich "mit der Hand am Arm" also ohne Makro.
Schritt für Schritt. Tabelle auswählen, markieren, kopieren, usw. (Per Mausklick oder wie auch immer).
Kannst Du es manuell bei den Blättern machen, bei denen das Makro hängen bleibt?
AW: Makrofehler PasteSpecial-Methode
20.10.2009 14:12:39
Sören
Ja, dann haben wir uns verstanden. Das geht bei den Blättern problemlos.
Wenn das Makro drüber läuft, hebt er den Blattschutz noch auf und markiert alles, aber eingefügt wird nicht mehr. Hilft das weiter?
Anzeige
AW: Makrofehler PasteSpecial-Methode
20.10.2009 14:26:23
Sören
Es kommt mir auch so vor, als ob es bei ganz unterschiedlichen Blättern hakt/abbricht. Wenn ich es immer mal wieder teste, sind es verschiedene Blätter.
AW: Makrofehler PasteSpecial-Methode
20.10.2009 19:00:00
Gerd
Hallo Soeren,
teste mal
a) so
b) so, nachdem Du die verbundenen Zellen getrennt hast
Sub Wertkopie2()
Dim I As Integer
For I = 1 To Worksheets.Count
With Worksheets(I)
If .Visible = True Then
.Unprotect ("PW")
With .UsedRange
.Cells.Value = .Cells.Value
End With
End If
End With
Next I
End Sub

Gruß Gerd

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige