Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA-Code optimieren

Forumthread: VBA-Code optimieren

VBA-Code optimieren
11.01.2005 19:13:47
Torsten
Nochmals Hallo,
wie kann ich folgenden Code optimieren (es handelt sich ingesamt um 9 Sheets):
With Sheets("1")
.Unprotect password:="maze"
.Cells.Copy
.Cells.PasteSpecial Paste:=xlValues
.Protect password:="maze"
End With
With Sheets("2")
.Unprotect password:="maze"
.Cells.Copy
.Cells.PasteSpecial Paste:=xlValues
.Protect password:="maze"
End With
With Sheets("3")
.Unprotect password:="maze"
.Cells.Copy
.Cells.PasteSpecial Paste:=xlValues
.Protect password:="maze"
End With
.....
Vielen Dank für Eure Tips.
Gruß
Torsten
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Code optimieren
Ulf
Option Explicit

Sub alle_9()
Dim B As Byte
For B = 1 To 9
With Sheets(B)
.Unprotect Password:="maze"
.Cells.Copy
.Cells.PasteSpecial Paste:=xlValues
.Protect Password:="maze"
End With
Next
End Sub

Ulf
AW: VBA-Code optimieren
Torsten
Hallo Ulf,
vielen Dank für Deine Rückmeldung.
Leider macht Excel bei den Sheets 8 und 9 nicht das, was im Code hinterlegt ist.
Statt die darin enthaltenen Formeln zu kopieren und durch Werte zu ersetzen, steht nachher überall ein Bezugs-Fehler drin. Zunächst dachte ich, es läge vielleicht an der Deklaration der Variablen "Byte", aber auch nach Änderung auf Integer bleibt's bei dem Fehler. Dann habe ich den Zähler zurückgesetzt auf For B = 1 To 7 was dazu geführt hat, daß die Sheets 6 und 7 diesen Fehler aufwiesen.
Hast Du noch eine Idee?
Gruß
Torsten
P.S.:
Ich verlasse jetzt mein Büro, und melde mich dann morgen auf eine evtl. Rückmeldung von Dir. Schönen Abend noch.
Anzeige
AW: VBA-Code optimieren
Ulf

Sub alle_9()
Dim B As Byte
For B = 1 To 9
With Sheets(Cstr(B))
.Unprotect Password:="maze"
.Cells.Copy
.Cells.PasteSpecial Paste:=xlValues
.Protect Password:="maze"
End With
Next
End Sub

Generell ist es keine gute Idee die Blätter derart zu benennen, da es zum Konflikt mit dem Index kommen kann, wie wohl in diesem Fall.
Ulf
Anzeige
AW: erledigt - mT
Torsten
Hallo Ulf,
prima, mit der Ergänzung läuft's jetzt.
Deinen Hinweis mit der Benennung der Sheets werde ich zukünftig berücksichtigen.
Nochmals vielen Dank für Deine Hilfe.
Gruß
Torsten
AW: VBA-Code optimieren
Ramses
Hallo
Probier mal
Dim i As Integer
For i = 1 to 9
With Sheets("" & i & "")
.Unprotect password:="maze"
.Cells.Copy
.Cells.PasteSpecial Paste:=xlValues
.Protect password:="maze"
End With
Next i
Gruss Rainer
Anzeige
AW: VBA-Code optimieren
Torsten
Hallo Rainer,
vielen Dank für Deine Rückmeldung.
Excel bleibt allerdings hängen mit der Meldung:
"Index außerhalb des gültigen Bereichs" und zwar an der Stelle:
With Sheets("" & i & "")
Hast Du eine Idee, warum?
Gruß
Torsten
AW: VBA-Code optimieren
Ramses
Hallo
dein heissen deine Mappen nicht so !
Du hast in deiner Frage geschrieben
With Sheets("1")
Also bin ich davon ausgegangen, dass
A) dein Makro funktioniert
B) Die Mappen statt Zahlen Namen haben
Das Makro von mir funktioniert und wurde getestet.
Alternativ kannst du die Variante von Ulf probieren, die sollte dann funktionieren
Gruss Rainer
Anzeige
AW: VBA-Code optimieren
Torsten
Hallo Rainer,
offensichtlich habe ich mich dann nicht ordentlich ausgedrückt - sorry.
Ulf's Lösung hat mir weitergeholfen.
Schönen Dank für Deine Rückmeldungen.
Gruß
Torsten
;

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige