Hallo Gemeinde,
ich habe folgendes Problem:
Ich möchte in Zelle A1 des ersten Tabellenblatts (Tabelle1) eine 1 zu stehen haben. In Tabelle2 (die ansonsten genauso wie Tabelle1 aufgebaut ist soll in A1 dann eine 2 stehen usw. Also ingesamt sollens etwa 160 Tabellenblätter werden und Tabelle160 sollte dann in A1 eine 160 stehen.
Wäre sehr dankbar für Hilfe.
Wäre auch cool wenn mir jemand sagen könnte, wie man so eine große Anzahl von Tabellenblättern vielleicht effektiver kopieren kann als jedes einzekn.
Gruß Erwin
Edit: Auto-Ausfüllen über Tabellenblätter
Achso, ergänzend möchte ich dazu sagen, dass ich Excel 2007 benutze. Aber abspeichern möchte ich es als .xls (also als Datei die vollständig mit Excel 97-2003 kompatibel ist).
Gruß Erwin.
Hallo Erwin,
hier ist der code, mit Alt und F11 in den vb-editor wechseln, den code einfügen und einer Schaltfläche zuweisen - müsste funktionieren, bei mir Excel2002 erfolgreich getestet. Das Blatt welches kopiert wird, heisst hier Muster (anpassen). Wenn du die Datei nur mit dem Muster anders benennst als die Datei mit den erzeugten Kopien, kannst du die Musterdatei ohne Änderungen beliebig oft testen und verwenden
Sub Blatt160malKopieren()
Dim wks As Worksheet
Dim nme As Name
Dim intNme As Integer
Dim strNme As String
For intNme = 0 To 159
For Each nme In ThisWorkbook.Names
strNme = Right(nme.Name, 3)
Next nme
With ThisWorkbook
.Worksheets("Muster").Copy after:=.Worksheets(.Worksheets.Count)
End With
ActiveSheet.Name = Format(intNme + 1, "000")
Set nme = ActiveWorkbook.Names.Add("WKS" & Format(intNme + 1, "000"), \_
Range("A1"), False)
Selection.NumberFormat = "000"
Range("A1").Activate
Selection.NumberFormat = "##0"
ActiveCell.Formula = intNme + 1
nme.Visible = False
Next
ActiveWorkbook.SaveAs Filename:="C:\...\Tabblaetter160malKopieren.xls", \_
FileFormat:=xlNormal
End Sub
Teste erstmal mit weniger Blätter (ändere die 159)
Gruß
Marion
Ich möchte in Zelle A1 des ersten Tabellenblatts (Tabelle1)
eine 1 zu stehen haben. In Tabelle2 (die ansonsten genauso wie
Tabelle1 aufgebaut ist soll in A1 dann eine 2 stehen usw. Also
ingesamt sollens etwa 160 Tabellenblätter werden und
Tabelle160 sollte dann in A1 eine 160 stehen.
Wäre auch cool wenn mir jemand sagen könnte, wie man so eine
große Anzahl von Tabellenblättern vielleicht effektiver
kopieren kann als jedes einzekn.
Hi Erwin,
starte mal das Makro „Starten“
Option Explicit
Sub Starten()
Call Kopieren(10, "Tabelle1") 'Hier Anzahl und Blattnamen anpassen
End Sub
Sub Kopieren(ByVal Anzahl As Integer, ByVal Blattname As String)
Dim intAnz As Integer
On Error GoTo Fehler
Application.ScreenUpdating = False
With Worksheets(Blattname)
For intAnz = 1 To Anzahl
.Copy After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = .Name & Right("0000" & intAnz, 4)
[A1] = intAnz
Next intAnz
.Activate
End With
Fehler:
Application.ScreenUpdating = True
End Sub
Gruß
Reinhard