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

aus Liste in alle Tabellenblätter kopieren

aus Liste in alle Tabellenblätter kopieren
11.03.2016 11:42:56
Benni
Hallo zusammen,
ich habe eine Tabelle 1 in der viele Daten stehen. In Spalte O stehen bestimmte Namen. Jeder dieser Namen hat auch sein eigenen Datenblatt. Ich hätte jetzt gerne, dass wenn der Name in der Spalte, gleich einem Namen der Tabellenblätter ist, dass er mir die ganze Zeile kopiert.
Bis jetzt habe ich das einzeln gemacht und hat auch einwandfrei funktioniert.

Option Explicit
Sub einzeln()
Dim lastrow As Long, lastfree As Long
Dim I As Long
lastrow = Worksheets("Tabelle1").Cells(Rows.Count, 15).End(xlUp).Row
lastfree = Worksheets("Name1").Cells(Rows.Count, 15).End(xlUp).Row + 1
For I = lastrow To 2 Step -1
If Worksheets("Tabelle1").Cells(I, 15) = "Name1" Then
Worksheets("Tabelle1").Range("a" & I & ":BM" & I).Copy _
Destination:=Worksheets("Name1").Cells(lastfree, 1)
lastfree = lastfree + 1
End If
Next I
End Sub
Jetzt hätte ich aber gerne, dass er es gleichzeitig bei allen Tabellenblätter funktioniert, damit ersparte ich mir natürlich viel Arbeit, insbesondere wenn neue Namen dazukommen...
Mein Code ist folgender. allerdings passiert einfach nichts :(

Option Explicit
Sub tst()
Dim J As Integer
Dim lastrow As Long, lastfree As Long
Dim I As Long
For J = 1 To Sheets.Count
For I = lastrow To 2 Step -1
Worksheets(J).Activate
lastrow = Worksheets(J).Cells(Rows.Count, 15).End(xlUp).Row
lastfree = Worksheets(J).Cells(Rows.Count, 15).End(xlUp).Row + 1
If Worksheets("Tabelle1").Cells(I, 15) = Worksheets(J).Name Then
Worksheets("Tabelle1").Range("a" & I & ":BM" & I).Copy _
Destination:=Worksheets(J).Cells(lastfree, 1)
lastrow = lastfree + 1
End If
Next I
Next J
End Sub
An was liegt das?
Oder kann ich das überhaupt nicht so machen?
Viele Grüße

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: aus Liste in alle Tabellenblätter kopieren
11.03.2016 12:00:13
ChrisL
Hi Benni
For I = lastrow To 2 Step -1
lastrow ist zu dem Zeitpunkt gar noch nicht definiert. lastrow ist somit Null und die Schleife läuft gar nicht an.
cu
Chris

AW: aus Liste in alle Tabellenblätter kopieren
11.03.2016 13:29:02
Benni
Hallo Chris,
stimmt, ups...
aber funktioniert trotzdem nicht...
Grüße

AW: aus Liste in alle Tabellenblätter kopieren
11.03.2016 12:25:32
Werner
Hallo Benni,
Versuch mal das. Konnte aber nicht testen, derzeit nur Tablet zur Verfügung.
Zudem läuft der Code in einen Fehler wenn du einen Namen in deiner Liste hast, für den es kein eigenes Tabellenblatt gibt - solltest du ggf. noch abfangen.
Eine Prüfung ob die Einträge in deiner Liste gültige Blattnamen sind findet auch nicht statt.
Sub alle()
Dim lastrow As Long, lastfree As Long
Dim I As Long
Dim Ziel AS String
lastrow = Worksheets("Tabelle1").Cells(Rows.Count, 15).End(xlUp).Row
For I = lastrow To 2 Step -1
Ziel = Worksheets("Tabelle1").Cells(I, 15).Text
lastfree = Worksheets("Ziel").Cells(Rows.Count, 15).End(xlUp).Row + 1
Worksheets("Tabelle1").Range("A" & I & ":BM" & I).Copy Worksheets("Ziel").Cells(lastfree, 1)
Application.CutCopyMode = False
lastfree = lastfree + 1
Next I
End Sub
Gruß Werner

Anzeige
AW: aus Liste in alle Tabellenblätter kopieren
11.03.2016 13:31:44
Benni
Hallo Werner,
ich hab ein Makro laufen gehabt, dass aus jedem Namen ein Tabellenblatt erstellt, von dher sind alle drin.
Dein Code hab ich getestet, geht aber nicht. Ich glaube das liegt daran, dass das Worksheets("Ziel") ja nicht vorkommt.Kann das sein?
Grüße

AW: aus Liste in alle Tabellenblätter kopieren
11.03.2016 13:46:45
Werner
Hallo Benni,
lass mal überall bei Ziel die Gänsefüsschen Weg
Worksheets(Ziel)
Gruß Werner

AW: aus Liste in alle Tabellenblätter kopieren
11.03.2016 13:55:33
Benni
Hallo Werner,
Er mekert immer bei der Zeile

lastfree = Worksheets(Ziel).Cells(Rows.Count, 15).End(xlUp).Row + 1
Grüße
Benni

Anzeige
AW: aus Liste in alle Tabellenblätter kopieren
11.03.2016 15:11:53
Werner
Hallo Benni,
kann es sein, dass in deinem Tabellenblatt1, Spalte O, in der ja wohl deine Namensliste steht, Formeln drin sind die ein "" ausgeben?
Wenn ja, dann stimmt mit dem jetzigen Code die Variable lastrow nämlich nicht.
Dann so:
Sub alle()
Dim lastrow As Long, lastfree As Long
Dim I As Long
Dim Ziel As String
lastrow = Worksheets("Tabelle1").Columns(15).Find(what:="?*", LookIn:=xlValues, _
lookat:=xlWhole, searchdirection:=xlPrevious).Row
For I = lastrow To 2 Step -1
Ziel = Worksheets("Tabelle1").Cells(I, 15).Text
lastfree = Worksheets(Ziel).Cells(Rows.Count, 15).End(xlUp).Row + 1
Worksheets("Tabelle1").Range("A" & I & ":BM" & I).Copy Worksheets(Ziel).Cells(lastfree, 1)
Application.CutCopyMode = False
Next I
End Sub
Gruß Werner

Anzeige
AW: aus Liste in alle Tabellenblätter kopieren
11.03.2016 15:14:19
Benni
Hallo Werner,
Wow, super. Vielen Dank!
Funktioniert einwandfrei :)
Grüße
Benni

AW: Gerne u. Danke für die Rückmeldung. o.w.T
11.03.2016 15:15:22
Werner

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige