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

Eine Auswahl von Tabellenblättern zusammenführen

Eine Auswahl von Tabellenblättern zusammenführen
16.04.2008 18:11:00
Tabellenblättern
Guten Abend
Mein Script, das ich aus Vorlagen im Internet zusammengebastelt habe, führt die beiden Worksheets aus meiner Arbeitsmappe mit 6 Blättern, wie gewünscht in einem neuen Worksheet zusammen. Aber es nimmt auch die Tabellenüberschriften doppelt rein, und zwar weil diese erst in Zeile 12 zu finden sind.
In den Zeilen 1-12 habe ich die Parameter für die Gültikeits-Dropdown-Listen eingefügt. Und die kann ich nirgendwo sonst einfügen. Da ganz viele Leute mit der Arbeitsmappe arbeiten sollen, die keine Ahnung von Excel haben, musste ich diese Parameter so sicher versorgen wies ging.
Meine Frage: Wie kann ich das Script so anpassen, dass es die Worksheets erst ab den Zeilen 12 zusammenfügt?
Vielen Dank für die Unterstützung
Nicole
Hier mein Script

Sub zusammenfassen()
Application.DisplayAlerts = False
Sheets("alle Dossiers").Delete
Application.DisplayAlerts = True
Tabs = ActiveWorkbook.Sheets.Count
Sheets.Add After:=Sheets(Tabs)
Sheets(Tabs + 1).Name = "alle Dossiers"
Sheets("alle Dossiers").Range("A1").Value = "Titel"
Sheets("alle Dossiers").Range("B1").Value = "Node"
Sheets("alle Dossiers").Range("C1").Value = "Stichwort"
Sheets("alle Dossiers").Range("D1").Value = "gehört zu"
Sheets("alle Dossiers").Range("E1").Value = "Erstellt am"
Sheets("alle Dossiers").Range("F1").Value = "Content-Typ"
Sheets("alle Dossiers").Range("G1").Value = "Autor"
Sheets("alle Dossiers").Range("H1").Value = "Redaktion"
Sheets("alle Dossiers").Range("I1").Value = "Status"
Sheets("alle Dossiers").Range("K1").Value = "Erledigen am"
Sheets("alle Dossiers").Range("L1").Value = "Was ist zu tun?"
'Hier die Texte für Deine Überschriften bitte anpassen.
CopyTab ("news.online")
CopyTab ("DRS 2")
' For i = 1 To Tabs
' Next
End Sub



Sub CopyTab(tabname)
k = Sheets(tabname).UsedRange.Rows.Count
Sheets(tabname).Select
'Sheets(i).Range(Cells(2, 1), Cells(k, 11)).Copy
m = Sheets("alle Dossiers").UsedRange.Rows.Count + 1
'Sheets("alle Dossiers").Select
Sheets(tabname).Range(Cells(2, 1), Cells(k, 11)).Select
Selection.Copy
Sheets("alle Dossiers").Select
Cells(m, 1).Select
ActiveSheet.Paste
End Sub


16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Eine Auswahl von Tabellenblättern zusammenführen
16.04.2008 18:42:00
Tabellenblättern
Hi Nicole,
wenn ich Dich richtig verstehe dann einfach so:

Sub CopyTab(tabname)
k = Sheets(tabname).UsedRange.Rows.Count
Sheets(tabname).Select
'Sheets(i).Range(Cells(12, 1), Cells(k, 11)).Copy
m = Sheets("alle Dossiers").UsedRange.Rows.Count + 1
'Sheets("alle Dossiers").Select
Sheets(tabname).Range(Cells(12, 1), Cells(k, 11)).Select
Selection.Copy
Sheets("alle Dossiers").Select
Cells(m, 1).Select
ActiveSheet.Paste
End Sub


Eigentlich könnte man das Makro noch vereinfachen (Select entfernen), aber ich will Dich nicht verwirren und lasse das erst mal. Klappt es so wie Du wolltest.
Gruß
Uwe
(:o)

Anzeige
AW: Eine Auswahl von Tabellenblättern zusammenfüh
16.04.2008 19:19:49
Tabellenblättern
Hallo Uwe
Ich bin beeindruckt: Es funktioniert! Vielen Dank.
Du könntest mir sicher auch noch sagen, wie ich verhindern könnte, dass das Merge-Sheet immer gelöscht wird, damit ich die Formatierungen nicht jedes Mal neu festlegen muss. Oder noch besser, wie mir das Script auch die Formatierungen aus den beiden Worksheets mitnimmt.
Herzlich
Nicole

AW: Auswahl von Tabellenblättern zusammenführen
16.04.2008 20:09:00
Tabellenblättern
Hi Nicole,
wenn ich dich richtig verstehe, sollten die beiden folgenden Prozeduren das tun.
Ich habe einiges geändert, auch ein paar Kommentare reingeschrieben.
Wenn du Fragen hast, melde dich bitte.

Option Explicit      ' immer zu empfehlen!
Sub zusammenfassen()
With Sheets("alle Dossiers")
.Cells.ClearContents
.Cells(1, 1) = "Titel"
.Cells(1, 2) = "Node"
.Cells(1, 3) = "Stichwort"
.Cells(1, 4) = "gehört zu"
.Cells(1, 5) = "Erstellt am"
.Cells(1, 6) = "Content-Typ"
.Cells(1, 7) = "Autor"
.Cells(1, 8) = "Redaktion"
.Cells(1, 9) = "Status"
'  .Cells(1, 10) = "?"            ' (Spalte J fehlte)
.Cells(1, 11) = "Erledigen am"
.Cells(1, 12) = "Was ist zu tun?"
End With
'Hier die Texte für Deine Überschriften bitte anpassen.
CopyTab "news.online"  ' ohne Call, geht auch ohne Klammern
Call CopyTab("DRS 2")  ' mit Call
' For i = 1 To Tabs
' Next
End Sub
Sub CopyTab(strTabname As String)
Dim k As Long, m As Long
With Sheets("alle Dossiers")
m = .Cells(.Rows.Count, 1).End(xlUp).Row + 1 ' unter letzter gef. Zelle in Spalte A
End With
With Sheets(strTabname)
k = .Cells(.Rows.Count, 2).End(xlUp).Row    ' bis zum Ende der Spalte B
If k >= 12 Then _
.Range(.Cells(12, 2), .Cells(k, 11)).Copy Sheets("alle Dossiers").Cells(m, 1)
End With
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Auswahl von Tabellenblättern zusammenführen
17.04.2008 10:11:19
Tabellenblättern
Guten Morgen Erich
Vielen Dank für den Tipp. Habs mal ausprobiert, bis auf die Formatierungen der Spaltenüberschriften hats geklappt. Diese hats mir nicht übernommen. Sie befinden sich in den beiden zusammenzufassenden Worksheets in der 11. Zeile und sind identisch.
Weisst du mehr?
herzlich
Nicole

AW: Auswahl von Tabellenblättern zusammenführen
17.04.2008 12:04:13
Tabellenblättern
Hallo Nicole,
das sollte es tun:

Option Explicit      ' immer zu empfehlen!
Sub Zusammenfassen2()
With Sheets("alle Dossiers")
.Cells.ClearContents
.Cells(1, 1) = "Titel"
.Cells(1, 2) = "Node"
.Cells(1, 3) = "Stichwort"
.Cells(1, 4) = "gehört zu"
.Cells(1, 5) = "Erstellt am"
.Cells(1, 6) = "Content-Typ"
.Cells(1, 7) = "Autor"
.Cells(1, 8) = "Redaktion"
.Cells(1, 9) = "Status"
'  .Cells(1, 10) = "?"            ' (Spalte J fehlte)
.Cells(1, 11) = "Erledigen am"
.Cells(1, 12) = "Was ist zu tun?"
'Hier die Texte für Deine Überschriften bitte anpassen.
Sheets("news.online").Rows(11).Copy
.Cells(1, 1).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End With
CopyTab "news.online"  ' ohne Call, geht auch ohne Klammern
Call CopyTab("DRS 2")  ' mit Call
' For i = 1 To Tabs
' Next
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Auswahl von Tabellenblättern zusammenführen
17.04.2008 12:55:00
Tabellenblättern
Hallo Erich
Tut mir Leid, dich nochmals zu belästigen. Das Script funktioniert nicht. Nun werden zwar die Spaltenüberschriften übernommen, der Rest aber nicht.
Kannst du mir weiterhelfen?
Mit Dank & Grüssen
Nicole
Das ganze Script sieht jetzt so aus (musste Namen der Blätter noch anpassen):
Option Explicit ' immer zu empfehlen!

Sub Zusammenfassen2()
With Sheets("alle Dossiers - nur lesen")
.Cells.ClearContents
.Cells(1, 1) = "Titel"
.Cells(1, 2) = "Node"
.Cells(1, 3) = "Stichwort"
.Cells(1, 4) = "gehört zu"
.Cells(1, 5) = "Erstellt am"
.Cells(1, 6) = "Content-Typ"
.Cells(1, 7) = "Autor"
.Cells(1, 8) = "Redaktion"
.Cells(1, 9) = "Status"
.Cells(1, 10) = "Erledigen am"
.Cells(1, 11) = "Was ist zu tun?"
'Hier die Texte für Deine Überschriften bitte anpassen.
Sheets("news.online - eingabe").Rows(11).Copy
.Cells(1, 1).PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End With
CopyTab "news.online - eingabe"  ' ohne Call, geht auch ohne Klammern
Call CopyTab("DRS 2 - eingabe")  ' mit Call
' For i = 1 To Tabs
' Next
End Sub



Sub CopyTab(strTabname As String)
Dim k As Long, m As Long
End Sub


Anzeige
AW: Auswahl von Tabellenblättern zusammenführen
17.04.2008 13:06:00
Tabellenblättern
Hi Nicole,
wo ist denn der Code der Prozedur CopyTab geblieben?
Das waren mal mehr als die drei Zeilen, die du jetzt gepostet hast:

Sub CopyTab(strTabname As String)
Dim k As Long, m As Long
With Sheets("alle Dossiers")
m = .Cells(.Rows.Count, 1).End(xlUp).Row + 1 ' unter letzter gef. Zelle in Spalte A
End With
With Sheets(strTabname)
k = .Cells(.Rows.Count, 2).End(xlUp).Row    ' bis zum Ende der Spalte B
If k >= 12 Then _
.Range(.Cells(12, 2), .Cells(k, 11)).Copy Sheets("alle Dossiers").Cells(m, 1)
End With
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Auswahl von Tabellenblättern zusammenführen
17.04.2008 15:47:00
Tabellenblättern
... stimmt. Habs ergänzt. Nun gibts aber das Problem, dass die Zellen um eine Spalte nach links verschoben eingefügt werden. Titel (Spalte A) werden nicht eingefügt und Nodes kommen dann unter dem Titel.
wenn ich dich dafür noch einmal bemühen könnte ...
herzlichNic

AW: Auswahl von Tabellenblättern zusammenführen
17.04.2008 15:52:00
Tabellenblättern
Hi Nicole,
sorry, da hatte ich etwas missverstanden...
Mit ein paar kleinen Änderungen geht das so:

Sub CopyTab(strTabname As String)
Dim k As Long, m As Long
With Sheets("alle Dossiers")
m = .Cells(.Rows.Count, 1).End(xlUp).Row + 1 ' unter letzter gef. Zelle in Spalte A
End With
With Sheets(strTabname)
k = .Cells(.Rows.Count, 1).End(xlUp).Row    ' bis zum Ende der Spalte A in Tabname
If k >= 12 Then _
.Range(.Cells(12, 1), .Cells(k, 11)).Copy Sheets("alle Dossiers").Cells(m, 1)
End With
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Auswahl von Tabellenblättern zusammenführen
17.04.2008 16:18:49
Tabellenblättern
SSUUPPEERR, Erich!
Vielen Dank, genauso will ichs.
Einen schönen Abend
GrussNic

Danke für Rückmeldung - freut mich! (owT)
17.04.2008 19:00:00
Erich

AW: Eine Auswahl von Tabellenblättern zusammenfüh
16.04.2008 20:14:21
Tabellenblättern
Hi Nicole,
also das NICHT löschen müsste so klappen:

Sub zusammenfassen()
Dim tabs As Integer
'Application.DisplayAlerts = False
tabs = ActiveWorkbook.Sheets.Count
Sheets("alle Dossiers").Move After:=Sheets(tabs)
Sheets("alle Dossiers").Cells.ClearContents
'Application.DisplayAlerts = True
Sheets("alle Dossiers").Range("A1").Value = "Titel"
Sheets("alle Dossiers").Range("B1").Value = "Node"
Sheets("alle Dossiers").Range("C1").Value = "Stichwort"
Sheets("alle Dossiers").Range("D1").Value = "gehört zu"
Sheets("alle Dossiers").Range("E1").Value = "Erstellt am"
Sheets("alle Dossiers").Range("F1").Value = "Content-Typ"
Sheets("alle Dossiers").Range("G1").Value = "Autor"
Sheets("alle Dossiers").Range("H1").Value = "Redaktion"
Sheets("alle Dossiers").Range("I1").Value = "Status"
Sheets("alle Dossiers").Range("K1").Value = "Erledigen am"
Sheets("alle Dossiers").Range("L1").Value = "Was ist zu tun?"
'Hier die Texte für Deine Überschriften bitte anpassen.
CopyTab ("news.online")
CopyTab ("DRS 2")
' For i = 1 To Tabs
' Next
End Sub


(Ich habe die DisplayAlerts auskommentiert, weil sie, glaub ich nicht gebraucht werden, wenn doch , mach nur die ' weg.) Das Erstellen der Überschriften kanns Du nach dem erstenmal eigentlich auch löschen, denke ich.
Das mit dem übernehmend der Formatierungen müsste ich mir noch überlegen -oder jemand anders- , habe heute aber keine Lust mehr. Wenn Du das noch haben möchtest, hakt nochmal nach und setzt Deine Frage wieder auf noch offen. Bestimmt hilft Dir jemand, sonst schau ich wahrscheinlich morgen nochmal 'rein.
Gruß
Uwe
(:o)

Anzeige
Da war Erich schneller und fleißiger als ich (:-)
16.04.2008 20:18:00
Uwe
owT

AW: Laufzeitfehler '9'
17.04.2008 10:05:00
Nicole
Guten Morgen Uwe
Vielen Dank für deinen Tipp. Habe dieses Script eingebaut. Es gibt mir aber einen Laufzeitfehler '9'. Der Index liege ausserhalb des gültigen Bereichs, meldets mir. Weisst du, woran der Fehler liegen könnte?
Die Frage mit der Formatierung ist übrigens noch offen ;)
herzlich
Nicole

AW: Laufzeitfehler '9'
17.04.2008 10:42:47
Nicole
... nochmals ich: habe den Laufzeitfehler selbst ausmerzen können. Der Name des Sheets war falsch.
Bliebe noch die Formatierung.
GrussNic

AW: Laufzeitfehler '9'
17.04.2008 12:58:09
Uwe
Hi Nicole,
probiere es mal damit:

Sub zusammenfassen()
Dim tabs As Integer
'Application.DisplayAlerts = False
tabs = ActiveWorkbook.Sheets.Count
Sheets("alle Dossiers").Move After:=Sheets(tabs)
Sheets("alle Dossiers").Cells.ClearContents
Sheets("alle Dossiers").Cells.ClearFormats
'Application.DisplayAlerts = True
Sheets("alle Dossiers").Range("A1").Value = "Titel"
Sheets("alle Dossiers").Range("B1").Value = "Node"
Sheets("alle Dossiers").Range("C1").Value = "Stichwort"
Sheets("alle Dossiers").Range("D1").Value = "gehört zu"
Sheets("alle Dossiers").Range("E1").Value = "Erstellt am"
Sheets("alle Dossiers").Range("F1").Value = "Content-Typ"
Sheets("alle Dossiers").Range("G1").Value = "Autor"
Sheets("alle Dossiers").Range("H1").Value = "Redaktion"
Sheets("alle Dossiers").Range("I1").Value = "Status"
Sheets("alle Dossiers").Range("K1").Value = "Erledigen am"
Sheets("alle Dossiers").Range("L1").Value = "Was ist zu tun?"
'Hier die Texte für Deine Überschriften bitte anpassen.
CopyTab ("news.online")
CopyTab ("DRS 2")
' For i = 1 To Tabs
' Next
End Sub



Sub CopyTab(tabname)
k = Sheets(tabname).UsedRange.Rows.Count
Sheets(tabname).Select
'Sheets(i).Range(Cells(12, 1), Cells(k, 11)).Copy
m = Sheets("alle Dossiers").UsedRange.Rows.Count + 1
Sheets(tabname).Range(Cells(12, 1), Cells(k, 11)).Copy
Sheets("alle Dossiers").Cells(m, 1).PasteSpecial (xlPasteAll)
Sheets("alle Dossiers").Select
Cells(1, 1).Select
Application.CutCopyMode = False
End Sub


Gruß
Uwe
(:o)

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige