Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
292to296
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
292to296
292to296
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

best.Zellinhalte aus einem in alle anderen Blätter

best.Zellinhalte aus einem in alle anderen Blätter
17.08.2003 14:40:39
Norman Bolay
Hallo liebe Excel-Forum:
Seit ein paar Monaten arbeite ich dank diesem Forum (und Nepumuks aktiver Hilfe) mit folgendem VBA-Makro:
Public

Sub Verteilen()
Dim Zeile As Long, Spalte As Integer, Ausgabespalte As Integer, Ausgabezeile As Integer
Application.ScreenUpdating = False
With Worksheets("Übersicht")
For Spalte = 3 To .Cells(1, 256).End(xlToLeft).Column
Worksheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "Nr" & CStr(Spalte - 2)
Ausgabespalte = 3
Ausgabezeile = 10
For Zeile = 1 To .Cells(65536, Spalte).End(xlUp).Row Step 52
Range(Cells(Ausgabezeile, Ausgabespalte), Cells(Ausgabezeile + 51, Ausgabespalte)) = .Range(.Cells(Zeile, Spalte), .Cells(Zeile + 51, Spalte)).Value
Ausgabespalte = Ausgabespalte + 3
Ausgabezeile = 22
Next
Next
End With
Application.ScreenUpdating = True
End Sub

Das Ding funktioniert prima. Es erzeugt aus dem Arbeitsblatt „Übersicht“ neue Tabellenblätter, die jeweils nur die Daten aus einer Spalte von „Übersicht“ enthalten (in aufsteigender Reihenfolge), außerdem nummeriert es die so generierten Arbeitsblätter auch noch vollautomatisch.
Nun meine Frage:
Kann ich in die durch das Makro geschaffenen Arbeitsblätter auch noch automatisch den Text aus bestimmten Bereichen der „Übersicht“ eintragen lassen?
Die Bereiche dazu wären wie folgt:
1. Aus „Übersicht“ soll Spalte A / Zeile 1-8 in allen folgenden Arbeitsblättern im Bereich: Spalte A / Zeile 10-17 erscheinen
2. Aus „Übersicht“ soll ferner Spalte A-B und Zeile 13-Ende in allen folgenden Arbeitsblättern im Bereich Spalte A-B / Zeile 22-Ende erscheinen.
Wisst Ihr Rat?
Besten Dank für Eure Hilfe.
cu
Norman.

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: best.Zellinhalte aus einem in alle anderen Blätter
17.08.2003 15:09:07
Ramses
Hallo
ungetestet,... sollte aber gehen:

Sub Verteilen()
Dim Zeile As Long, Spalte As Integer, Ausgabespalte As Integer, Ausgabezeile As Integer
Application.ScreenUpdating = False
With Worksheets("Übersicht")
For Spalte = 3 To .Cells(1, 256).End(xlToLeft).Column
Worksheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "Nr" & CStr(Spalte - 2)
.Range("A1:A8").Copy Destination:=ActiveSheet.Range("A10")
.Range("A13:B" & .Range("B65536").End(xlUp).Row).Copy Destination:=ActiveSheet.Range("A22")
Ausgabespalte = 3
Ausgabezeile = 10
For Zeile = 1 To .Cells(65536, Spalte).End(xlUp).Row Step 52
Range(Cells(Ausgabezeile, Ausgabespalte), Cells(Ausgabezeile + 51, Ausgabespalte)) = .Range(.Cells(Zeile, Spalte), .Cells(Zeile + 51, Spalte)).Value
Ausgabespalte = Ausgabespalte + 3
Ausgabezeile = 22
Next
Next
End With
Application.ScreenUpdating = True
End Sub

Gruss Rainer

Anzeige
AW: best.Zellinhalte aus einem in alle anderen Blätter
17.08.2003 23:05:27
Norman Bolay
Hallo Rainer:
Super Klasse, es läuft prima! Ich habe Deinen Vorschlag noch etwas angepasst (an den Umbruch, den das alte Makro schon gemacht hat)
Und so sieht die funktionierende Sache jetzt aus:

Sub Verteilen()
Dim Zeile As Long, Spalte As Integer, Ausgabespalte As Integer, Ausgabezeile As Integer
Application.ScreenUpdating = False
With Worksheets("Übersicht")
For Spalte = 3 To .Cells(1, 256).End(xlToLeft).Column
Worksheets.Add After:=Worksheets(Worksheets.Count)
ActiveSheet.Name = "Nr" & CStr(Spalte - 2)
.Range("A1:A8").Copy Destination:=ActiveSheet.Range("A10")
.Range("A13:A52").Copy Destination:=ActiveSheet.Range("A22")
.Range("B13:B52").Copy Destination:=ActiveSheet.Range("B22")
.Range("A53:B" & .Range("B65536").End(xlUp).Row).Copy Destination:=ActiveSheet.Range("D22")
Ausgabespalte = 3
Ausgabezeile = 10
For Zeile = 1 To .Cells(65536, Spalte).End(xlUp).Row Step 52
Range(Cells(Ausgabezeile, Ausgabespalte), Cells(Ausgabezeile + 51, Ausgabespalte)) = .Range(.Cells(Zeile, Spalte), .Cells(Zeile + 51, Spalte)).Value
Ausgabespalte = Ausgabespalte + 3
Ausgabezeile = 22
Next
Next
End With
Application.ScreenUpdating = True
End Sub

Gibt es untere VBA auch Befehle, die einzelnen Zellen oder Bereichen innerhalb der durch obiges Makro neu erzeugten Arbeitsblättern bestimmte Formatierungen zuweisen? So soll z.B. der Bereich Spalte A-D innerhalb der Zeilen 10-17 fett gerahmt sein => also ein fetter Rahmen drum herum. Geht das?
Vielen Dank! Dieses Forum ist wirklich klasse, denn: „Hier werden Sie geholfen“ :)
Cu
Norman

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige