Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1156to1160
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

Spalten kopieren, auf Blätter verteilen

Spalten kopieren, auf Blätter verteilen
Jan
Guten Tag allerseits,
meine beschränkten VBA-Kenntnisse zwingen mich gerade wieder in die Knie. Eigentlich wohl sehr simpel, gelingt es mir nicht folgendes zu tun:
In Tabelle1 liegen in den Spalten A bis Z Werte unterhalb einer entsprechenden Spaltenbeschriftung. Diese Spalten mit ihren Werten möchte ich per Makro kopieren und in jeweils einzelnen anderen Tabellenblättern ablegen. Wären es nur diese 26 Spalten, würde ich zur Not "zu Fuß" kopieren, aber ich variiere diese 26 Spalten in Tabelle1 per Makro einige hundert Male...womit das dann doch sehr viel würde. Kann mir jemand zur Seite springen? Also: kopieren, in den einzelnen anderen Blättern ablegen (diese haben auch jeweils eine Kopfzeile), Makro anstoßen, kopieren, jeweils rechts der vormals abgelegten Werte wieder ablegen.
Ich würde mich über Hilfe sehr freuen.
Viele Grüße
Jan
AW: Spalten kopieren, auf Blätter verteilen
26.05.2010 01:29:55
Oberschlumpf
Hi Jan
Ne Bsp-Datei wär klasse.
Oder sollen die Antwortenden deine Datei (die ja nun mal schon wenigstens in Grundzügen existiert) ein weiteres Mal erstellen?
Könnte in die Hose gehen. Die Antwortenden wissen ja nicht, welche Werte in deiner Datei vorhanden sind.
Und deine Beschreibung sagt auch nix dazu, wie oft die Werte kopiert werden sollen. Oder soll bis zur letzten Spalte - also insgesamt 256x - kopiert werden?
Na ja, wie gesagt, Bsp-Datei wär toll.
Ciao
Thorsten
AW: Spalten kopieren, auf Blätter verteilen
26.05.2010 06:33:14
Hajo_Zi
Hallo Jan,
ein Nachbau sieht meist andes aus als das Original.

Anzeige
AW: Spalten kopieren, auf Blätter verteilen
26.05.2010 07:31:34
Jan
Guten Morgen,
so, da bin ich nun mit Beispieldatei. https://www.herber.de/bbs/user/69734.xls
In Blatt1 sind spaltenweise die Werte zu sehen, 26 weitere Tabellenblätter als Ablagebereiche. Nun wäre mir daran gelegen, dass folgendes passiert:
SpalteA auf Blatt1 ab der zweiten Zeile kopieren, in ersten Spalte auf Blatt A1 ab der zweiten Zeile einfügen. Analog soll dies mit den Spalten B-Z der Tabelle1 erfolgen. Im Anschluss würde ich die Werte auf Blatt1 berechnen lassen (per Makro, hier hilfweise auch einfach als Neuberechnung der Formeln per Taste F9) und dann geht das Kopieren und Ablegen wieder von vorn los.
Und ja, das stimmt, man muss sich über die Beschränkung der Spaltenanzahl bei 256 Gedanken manchen. Mir reicht es voll, wenn das 50 Mal geschehen würde. Ab dort würde ich mich wieder daran machen, auf meine Bedürfnisse anzupassen. Die "Massenabarbeitung" dieses Vorgangs zu verstehen und einzurichten ist mein Problem.
Viele Grüße
Jan
Anzeige
AW: Spalten kopieren, auf Blätter verteilen
26.05.2010 08:07:38
Reinhard
Hallo Jan,
die datei:
https://www.herber.de/bbs/user/69735.xls
hat folgenden Code in Modul1:
Option Explicit
Sub Zufall()
Dim N As Integer
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Application.Calculation = xlCalculationManual
For N = Worksheets.Count To 2 Step -1
Worksheets(N).Delete
Next N
Application.DisplayAlerts = True
For N = 1 To 26
Worksheets.Add after:=Worksheets(Worksheets.Count)
With ActiveSheet
.Name = "A" & N
.Range(Cells(2, 1), Cells(30, 50)).FormulaLocal = "=Zufallszahl()"
.Range(Cells(2, 1), Cells(30, 50)).Value = .Range(Cells(2, 1), Cells(30, 50)).Value
End With
Next N
Worksheets("Tabelle1").Activate
Application.Calculation = xlCalculationAutomatic
Application.ScreenUpdating = True
End Sub

Gruß
Reinhard
Anzeige
AW: Spalten kopieren, auf Blätter verteilen
26.05.2010 22:07:11
Jan
Hallo noch einmal,
vielen Dank für die Datei, aber das ist nicht, was ich suche. Ich versuche mich noch einmal klarer auszudrücken. Alle notwendigen Tabellenblätter sind in meiner Beispiel-Datei bereits vorhanden, also ist Code hierfür nicht nötig. Die von mir gesuchte Logik soll folgendes tun:
- Spalte A von Tabelle1 kopieren (ab Zeile 2)
- in TabelleA1 in Spalte A einfügen (auch ab Zeile 2)
- Spalte B von Tabelle1 kopieren (ab Zeile 2)
- in TabelleA2 in Spalte A einfügen (ab Zeile 2)
usw....
Wenn die Spalten in Tabelle1 jeweils kopiert und in den entsprechenden Tabellenblätter abgelegt sind, soll ein Makro ausgeführt werden, hier zur Vereinfachung eine manuelle Neuberechnung per F9.
Und wieder soll oben beschriebenes Kopieren und Einfügen beginnen, nur um eine Spalte in den jeweiligen Ablage-Tabellenblättern verschoben, damit die bisherigen Werte nicht überschrieben werden. Dieses Vorgehen soll sich einige Male wiederholen, zu Testzwecken hatte ich 50x geschrieben.
Kann mir noch einmal jemand hier helfen, bitte?
Grüße
Jan
Anzeige
AW: Spalten kopieren, auf Blätter verteilen
26.05.2010 22:08:45
Jan
Ich habe den Haken "Frage noch offen" nachgepflegt, weil meine Frage wohl schon rausgerutscht war.
AW: Spalten kopieren, auf Blätter verteilen
29.05.2010 11:30:01
fcs
Hallo Jan,
hier mein Lösungsvorschlag.
Gruß
Franz
Sub WerteVerteilen()
Dim wks As Worksheet, wksZiel As Worksheet
Dim Spalte As Long
Dim Zeile As Long
Dim iCount As Long, StatusCalc As Long
On Error GoTo Fehler
With Application
.EnableEvents = False
.ScreenUpdating = False
StatusCalc = .Calculation
If StatusCalc  xlCalculationManual Then .Calculation = xlCalculationManual
End With
Set wks = Worksheets("Tabelle1") 'Tabelle mut den Zufallszahlen
'Alle Daten in den Zielblättern löschen
For Each wksZiel In ActiveWorkbook.Worksheets
Select Case wksZiel.Name
Case wks.Name
'do nothing
Case Else
wksZiel.UsedRange.ClearContents
End Select
Next
With wks
For iCount = 1 To 5 '5 = Anzahl der Neuberechnungen (max. 256 in Excel 2003
For Spalte = 1 To .Cells(1, .Columns.Count).End(xlToLeft).Column
'Letzte Datenzeile in Spalte
Zeile = .Cells(.Rows.Count, Spalte).End(xlUp).Row
'Daten ab Zeile 2 kopieren
.Range(.Cells(2, Spalte), .Cells(Zeile, Spalte)).Copy
Set wksZiel = Worksheets(Spalte + 1)
With wksZiel
'Werte einfügen
.Cells(2, iCount).PasteSpecial Paste:=xlValues
'Spaltentitel eintragen
.Cells(1, 1) = wks.Cells(1, Spalte)
End With
Next
Application.Calculate 'Mappen neuberechnen
Next
End With
Err.Clear
Fehler:
With Err
Select Case .Number
Case 0 'Alles OK
Case Else
MsgBox "fehler-Nr.: " & .Number & vbLf & .Description, _
vbInformation + vbOKOnly, "Fehler Makro ""WerteVerteilen"""
End Select
End With
With Application
.EnableEvents = True
.ScreenUpdating = True
If .Calculation  StatusCalc Then .Calculation = StatusCalc
End With
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige