Anzeige
Archiv - Navigation
1024to1028
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

kopieren/filtern von x-Spalten in x-Blättern

kopieren/filtern von x-Spalten in x-Blättern
22.11.2008 16:34:00
x-Spalten
So, anderes Thema:
Ich habe eine Arbeitsmappe mit verschiedenen Arbeitsblättern, diese Arbeitsblätter sind von der struktur her alle gleich aufgebaut, nur der Inhalt unterscheidet sich voneinander.
Ich möchte jetzt eine Auflistung generieren, die mir auf dem letzten Blatt der Arbeitsmappe (Tabelle13!B:B) alle Einträge der anderen Arbeitsmappen in den Zeilen C122-C218 untereinander auflistet, dabei aber darauf achtet Zellen ohne Wert bzw. leere Zellen nicht zu kopieren.
Die Formel sollte interaktiv sein, sprich: einige Arbeitsblätter werden erst im Laufe der Zeit gefüllt. Wenn dies der Fall ist sollen die neuen Einträge von selbst an die Auflistung angestellt werden.
Jemand eine Idee / Lösung?
LG
Heiko

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: kopieren/filtern von x-Spalten in x-Blättern
23.11.2008 12:02:57
x-Spalten
Hallo Heiko,
Private Sub Worksheet_Activate()
    'Zielblatt muss immer die höchste Nr. haben!
    Dim i As Long
    Dim j As Long
    On Error GoTo Fehler
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    Columns("B").ClearContents
    For i = 1 To ActiveWorkbook.Sheets.Count - 1 Step 1
        Sheets(i).Range("C122:C218").Copy
        Cells(Rows.Count, "B").End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues
    Next i
    j = Cells(Rows.Count, "B").End(xlUp).Row 'Zeilenzahl ermitteln
    Range("B1:B" & j).SpecialCells(xlCellTypeBlanks).Delete 'Leerzellen aufrücken
    Fehler:
    Application.EnableEvents = True
    Application.ScreenUpdating = True
    Range("A1").Select
    ActiveSheet.UsedRange
End Sub


Füge das Makro in Codefenster der Tabelle13!
Immer wenn diese Tabelle aktiviert wird, wird dort die Spalte B gelöscht und der Bereich C122:C218 aus allen anderen Blättern dort in Spalte B kopiert untereinander. Dann werden in Tabelle13! die Leerzellen gelöscht, so dass Spalte B dort lückenlos ist.
Wichtig ist, dass Tabelle13! die höchste Tabellenzahl bleibt, ansonsten setze die Blattzahl dieses Blattes hoch. Weil alle Zellbereiche der Blätter 1 bis zum letzten Blatt -1 kopiert werden.
Beispieldatei: https://www.herber.de/bbs/user/57055.xls
Gruß,
Beate
Anzeige
AW: kopieren/filtern von x-Spalten in x-Blättern
23.11.2008 12:32:00
x-Spalten
Ich werde es gleich mal probieren
Danke schon mal für die Lösung :)
AW: kopieren/filtern von x-Spalten in x-Blättern
23.11.2008 12:55:00
x-Spalten
Hallo Beate,
vielen Dank für den Code, der funktioniert wirklich Prima.
Aber ein Problem habe ich noch:
Er kopiert jetzt auch Zeilen ohne Wert in die Auflistung.
Es wäre schön, wenn er nur Zeilen mit Wert untereinander auflistet und er Zeilen die in C122-C218 keinen Wert haben ignoriert.
Gibt es dafür auch eine Lösung bzw. eine Erweiterung des Codes?
Danke und LG
Heiko
AW: kopieren/filtern von x-Spalten in x-Blättern
23.11.2008 13:16:00
x-Spalten
Hallo Heiko.
probier mal, nun werden auch Textzellen und Nuller-Zellen gelöscht. Es ist schon schneller, die erstmal alle ins Zielblatt zu kopieren und dort auf einen Rutsch zu behandeln:
Private Sub Worksheet_Activate()
    'Zielblatt muss immer die höchste Nr. haben!
    Dim i As Long
    Dim j As Long
    On Error GoTo Fehler
    Application.EnableEvents = False
    Application.ScreenUpdating = False
    Columns("B").ClearContents
    For i = 1 To ActiveWorkbook.Sheets.Count - 1 Step 1
        Sheets(i).Range("C122:C218").Copy
        Cells(Rows.Count, "B").End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues
    Next i
    'Nuller Zellen werden in Leerzellen gewandelt und im nächsten Gang gelöscht:
    Columns("B:B").Replace 0, "", xlWhole
    'Text wird in Leerzellen gewandelt und im nächsten Gang gelöscht:
    Columns("B:B").SpecialCells(xlCellTypeConstants, 2).ClearContents
    j = Cells(Rows.Count, "B").End(xlUp).Row 'Zeilenzahl ermitteln
    Range("B1:B" & j).SpecialCells(xlCellTypeBlanks).Delete 'Leerzellen aufrücken
    Fehler:
    Application.EnableEvents = True
    Application.ScreenUpdating = True
    Range("A1").Select
    ActiveSheet.UsedRange
End Sub


Gruß,
Beate
Anzeige
AW: kopieren/filtern von x-Spalten in x-Blättern
23.11.2008 13:28:00
x-Spalten
Jetzt zeigt er mir gar nichts mehr an.
Ich habe den alten Code durch den neuen Ersetzt.
Aber auch wenn ich Ihn an den alten code ranhänge tut er nichts :(
AW: kopieren/filtern von x-Spalten in x-Blättern
23.11.2008 18:49:00
x-Spalten
Hallo Heiko,
das verstehe ich nicht. Bei mir läuft es, Werte bleiben erhalten, Leerzellen, Nullzellen und Textzellen werden gelöscht.
Welcher Art ist denn tatsächlich der Inhalt in den kopierten Zellen bei dir?
Gruß,
Beate
@ Rocky
23.11.2008 19:48:00
Beate
Hallo Rocky,
Das:
On Error GoTo Fehler
solltest du aber nicht auskommentieren, da die Ereignisse deaktiviert werden mit:
Application.EnableEvents = False
Im Fehlerfall würde das Makro nur abbrechen, dass System aber nicht wieder auf scharf gesetzt.
Guckst Du: Fehlerbehandlung (1) -On Error Goto und Err
Da mein Code bei mir läuft, warte ich mal Heikos Reaktion ab.
Deine rote Unterschrift erscheint sehr rieseig und ungünstig bei mir und ich kann noch nicht mal mehr unter deiner Antwort antworten. Es fehlen die Buttons, die sonst doch immer da sind.
Gruß,
Beate
Anzeige
AW: @ Beate
23.11.2008 20:07:00
Rocky
Hallo Beate,
vielen lieben Dank für deinen Hinweis. Ich arbeite mit OPERA da war meine Unterschrift in Größe 10 zu sehen. Bin deinem Hinweis gefolgt und hab mienen Beitrag im IE angeschaut. Man ist ja riesig. Habs gleich auf 10pt korrigiert.
Mit on error hast du recht. Sorry. Hatte es ausgeblendet um auf Spurensuche zu gehen. Die Zeile hat bei mir alles gelöscht wat nach einer Zahl aussieht. Daswegen hab ich es rausgenommen. Sonst echt ne Spitzen Lösung.

Columns("B:B").SpecialCells(xlCellTypeConstants,2).ClearContents



Gruß Rocky



Wenn unter den Blinden der Einäugige König ist, dann findet man hier die Herren der Ringe!


Anzeige
AW: @ Rocky
23.11.2008 21:20:12
Uwe
Hi Rocky,
mit der Größe Deiner Unterschrift hatte ich nie Probleme, ich nutze auch Opera, aber jedesmal wenn ich einen Beitrag von Dir lese grübele ich über den SINN Deines Spruchs. Irgendwie komme ich nicht dahinter wieso hier die Herrn der Ringe zu finden sind!!!? Irgendwie will bei mir der Groschen nicht fallen.
Gibst Du mir 'nen Tip.
Gruß
Uwe
(:o)
AW: @ Rocky
23.11.2008 21:30:00
Rocky
Wenn du die Filme kennst, dann weist du auch wie sie begonnen haben.
"Ein Ring aus den Feuern des Schicksalsberges geschmiedet um alle anderen zu knechten." (also auch die Könige) Also die Poster sind quasie die zweiäugigen. Die Könige der Könige. Ist den bissel Poetisch.

Gruß Rocky



Wenn unter den Blinden der Einäugige König ist, dann findet man hier die Herren der Ringe!


Anzeige
AW: @ Rocky
23.11.2008 22:45:11
Uwe
Hi Rocky,
DANKE! Jetzt ist der Groschen (ist ein 10 Cent Stück eigentlich auch ein Groschen, oder nur ein 10 Pfennig Stück? (;-)) gefallen und ich kann ruhiger schlafen.
Gruß
Uwe
(:o)
AW: @ Rocky
24.11.2008 12:09:00
Rocky
Naja eigentlich war der Groschen ja 10 Pfennig (Ost). Aber denke schon das man das beibehalten kann. Es gibt ja auch nach wie vor den Pfennigabsatz. ;-)

Gruß Rocky



Wenn unter den Blinden der Einäugige König ist, dann findet man hier die Herren der Ringe!


Anzeige
AW: @ Rocky
24.11.2008 23:55:00
Uwe
Stimmt. Centabsatz wäre komisch.
Übrigens ist jetzt Dein "Gruß Rocky" bei mir im Opera-Browser auf ca. Größe 20. Ist das Absicht oder liegt es an Deiner Anpassung für den IE?
Gruß
Uwe
(:o)
AW: @ Rocky
25.11.2008 09:58:00
Rocky
Hallo Uwe,
Nee war absicht. Aber danke für den Hinweis. Dir noch nen schönen Tag.
Gruß Rocky (Jetzt mal ohne alles, da ich uff de Arbeit bin)
AW: kopieren/filtern von x-Spalten in x-Blättern
23.11.2008 19:14:24
x-Spalten
Hallo Beate,
bie mir war auch alles leer. Hab in deinem Code mal nur zwei sachen ausgeblendet. so ging es dann.

 _
Option Explicit
Private Sub  _
Worksheet_Activate()
'Zielblatt muss immer die höchste Nr. haben!
Dim i As Long
Dim j As Long
'On Error GoTo Fehler
Application.EnableEvents = False
Application.ScreenUpdating = False
Columns("B").ClearContents
For i = 1 To  _
ActiveWorkbook.Sheets.Count - 1 Step 1
Sheets(i).Range("C122:C218" _
).Copy
Cells(Rows.Count, "B").End( _
xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues
Next i
'Nuller Zellen werden in Leerzellen gewandelt und im nä _
chsten Gang gelöscht:
Columns("B:B").Replace 0, " _
34;, xlWhole
'Text wird in Leerzellen gewandelt und im nächsten Gang  _
gelöscht:
'Columns("B:B").SpecialCells( _
xlCellTypeConstants,2).ClearContents
j = Cells(Rows.Count, "B").End( _
xlUp).Row 'Zeilenzahl ermitteln
Range("B1:B" & j).SpecialCells& _
#40;xlCellTypeBlanks).Delete 'Leerzellen aufrücken
Fehler:
Application.EnableEvents = True
Application.ScreenUpdating = True
Range("A1").Select
ActiveSheet.UsedRange
End Sub



Gruß Rocky



Wenn unter den Blinden der Einäugige König ist, dann findet man hier die Herren der Ringe!


Anzeige

318 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige