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

Kopfzeile löschen bzw. nicht mitkopieren

Kopfzeile löschen bzw. nicht mitkopieren
24.08.2005 17:08:28
helmar
Hallo ich habe ein Problem das ich nicht gelöst bekomme. Ich verusche mehrere Tabellen in eine zusammenzufassen. Dafür habe ich folgendes Makro benutzt (funktioniert fast einwandfrei):

Sub Auto_Open()
Dim i As Integer
Dim Quelle As Range
Dim Ziel As Range
With ActiveWorkbook
.Worksheets("Total Data").Delete
.Worksheets.Add Before:=.Worksheets(7)
ActiveSheet.Name = "Total Data"
For i = 2 To 6
Set Quelle = .Worksheets(i).UsedRange
Set Ziel = Worksheets(7).Cells(Rows.Count, "A").End(xlUp)(1)
Quelle.Copy Destination:=Ziel
Next
End With
End Sub

Leider haben alle Tabellen in der ersten Zeile den Tabellenkopf, den ich in der konsolidierten Tabelle nun x-Mal habe.
Kann mir jemand dabei helfen das Makro so zuverändern, dass es die Kopfzeile nur beim ersten Tabellenblatt mitkopiert und danach nicht mehr oder ggf. nach dem Kopieren alle gleichen Zeilen identifiziert und dann löscht. THX
Zusatzfrage:
Kann man ausdrücken, dass nur Tabellenblätter mit einer bestimmten Registerfarbe berücksichtigt werden sollen? (Abgefahren)

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Kopfzeile löschen bzw. nicht mitkopieren
24.08.2005 21:30:49
Erich
Hallo Helmar,
das Problem mit den Zeilenköpfen sollte zu lösen sein mit

Sub Auto_Open()
Dim i As Integer
Dim Quelle As Range
Dim Ziel As Range
With ActiveWorkbook
.Worksheets("Total Data").Delete
.Worksheets.Add Before:=.Worksheets(7)
ActiveSheet.Name = "Total Data"
For i = 2 To 6
If i = 2 Then
Set Quelle = .Worksheets(i).UsedRange
Else
Set Quelle = Intersect(.Worksheets(i).UsedRange, _
Range(.Rows(2), .Rows(Rows.Count)))
End If
Set Ziel = Worksheets(7).Cells(Rows.Count, "A").End(xlUp)(1)
Quelle.Copy Destination:=Ziel
Next i
End With
End Sub

Wegen der Frage zur Blattauswahl nach Registerfarben lasse ich offen - da weiß ich nichts drüber.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Kopfzeile löschen bzw. nicht mitkopieren
25.08.2005 09:56:06
helmar
Hallo Erich,
bei mir läuft Dein Makro leider nicht. In der Zeile:
Set Quelle = Intersect(.Worksheets(i).UsedRange, _
Range(.Rows(2), .Rows(Rows.Count)))
kommt es zu einem Fehler den ich leider nicht finden kann.
Gruß
Helmar
AW: Kopfzeile löschen bzw. nicht mitkopieren
25.08.2005 11:55:45
Erich
Sorry, Helmar,
da war ein Fehler in der zweiten Zeile vom Intersect - ich hatte mir die Arbeit erspart, die 7 Blätter usw. für einen Test nachzubilden.
Es hätte
Set Quelle = Intersect(.Worksheets(i).UsedRange, _
Range(.Worksheets(i).Rows(2), .Worksheets(i).Rows(Rows.Count)))
heißen müssen.
Um es etwas übersichtlicher zu machen, habe ich das (überflüssige) With ActiveWorkbook
rausgenommen und ein wenig umgestellt. Auch deine Bestimmung von "Ziel" (hab ich nicht verstanden, lief auch falsch) habe ich geändert:

Sub Auto_Open()
Dim i As Integer
Dim Quelle As Range
Dim Ziel As Range
Worksheets("Total Data").Delete
Worksheets.Add Before:=Worksheets(7)
ActiveSheet.Name = "Total Data"
For i = 2 To 6
With Worksheets(i)
If i = 2 Then
Set Quelle = .UsedRange
Else
Set Quelle = Intersect(.UsedRange, _
Range(.Rows(2), .Rows(Rows.Count)))
End If
If i = 2 Then
Set Ziel = Worksheets("Total Data").Cells(1, 1)
Else
Set Ziel = Worksheets("Total Data").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
End If
Quelle.Copy Destination:=Ziel
End With
Next i
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort
Anzeige
AW: Kopfzeile löschen bzw. nicht mitkopieren
25.08.2005 12:10:04
helmar
Hallo Erich,
vielen Dank. Das Makro läuft jetzt großartig.
Gruß
Helmar
AW: Kopfzeile löschen bzw. nicht mitkopieren
25.08.2005 10:27:55
Peter
Servus,
zu 2: Warnung erst ab Vers. XP möglich, mal das Prinzip verdeutlicht, die Frabennummern bekommst du über den Macro-Recorder raus.
Option Explicit
Sub Makro1()
Dim sh As Object
For Each sh In Application.Worksheets
If ActiveWorkbook.Sheets(sh.Name).Tab.ColorIndex = 3 Then MsgBox "ROT"
Next
End Sub

MfG Peter

188 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige