Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Zeilen, die in Spalte 9 ein X enthalten in anderes Blatt kopieren





Frage

Servus! Ich benötige mal wieder Hilfe bei einer Excel Anwendung... Zeil ist es, Zeilen die in Spalte 9 bzw. I ein "X" enthalten vom Tabellenblatt 1 in ein anderes Blatt (Tabellenblatt 2) zu kopieren. Wenn in Spalte 10 (bzw. J) ein X steht sollen die Zeilen in Tabellenblatt 3 usw. Kann mir da jmd. helfen??? vielen, vielen dank - ihr rettet möglichweise meinen feierabend :) Gruß Alex

Antwort 1 von Hajo_Zi

Hallo Alex,

ich habe jetzt keine Zeit mehr, aber ich versuche mal die Aufgabe nachzufragen.

Handelt es sich bei den X um eine Eingabe oder sind die schon vorhanden?

Ich lese es richtig die Zeile soll kopiert werden in die erste freie Zeile der anderen Tabelle? Sie soll im Original nicht gelöscht werden?

Gruß Hajo

Antwort 2 von AlexP123

Moin Hajo!

Also, das X ist eine Eingabe, die ich manuell gemacht habe, quasi als Kennzeichnung für die Spalte.

Genau, das orginal so behalten werden, wie es ist..

Sinn der Tabelle ist es, die Daten von Flügen in Spalte 1-8 auf den folgenden Tabellenblättern (je nachdem in welcher Spalte das X steht) auszugeben, damit die erzeugten Tabellenblätter immer nur die Infos für best. waren enthalten...

Vielen Dank für deine / eure Hilfe...


Alex

Antwort 3 von rainberg

Hallo Alex,

schau Dir doch mal die Wirkungsweise von Spezialfilter oder Pivot-Tabelle an.
Beide Tools eignen sich hervorragend für Dein Vorhaben.
Anbei zwei Links zum Erlernen des Vorgeschlagenen.

http://www.online-excel.de/excel/singsel.php?f=5

http://www.online-excel.de/excel/singsel.php?f=55

Gruß
Rainer

Antwort 4 von AlexP123

Moin fedjo,

das sieht schonmal gut aus, aber leider werden die Daten in den folge-Tabellen nach änderung in Tab 1 nicht aktualisiert.

Das beste wäre ein Makro o.ä., dass automatisch die verknüpften Daten aktualisiert und ein neues Tabellenblatt einfügt, wenn ich neue Zeilen mit zusätzlichen x-en einfüge. Geht sowas?

Gruß Alex

Antwort 5 von AlexP123

Nachtrag: das ist eine Beispieldatei!!

Vielen Dank!!!!!!

http://www.netupload.de/detail.php?img=e4691631b9a165d44c5e195ae0ec...

Antwort 6 von nighty

hi all :-)

hier ein beispiel :-)

gruss nighty

einzufuegen

alt f11/projektexplorer/Daten

Private Sub worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim daten() As Variant
If Target.Column > 6 And Target.Row > 1 And UCase(Cells(Target.Row, Target.Column)) = "X" And Sheets.Count >= Target.Column - 6 Then
daten() = Range("A" & Target.Row & ":G" & Target.Row)
ZielZeile = Sheets(Target.Column - 6).Range("A" & Rows.Count).End(xlUp).Row + 1
Sheets(Target.Column - 6).Range("A" & ZielZeile & ":G" & ZielZeile) = daten()
End If
Application.EnableEvents = True
End Sub

Antwort 7 von fedjo

Hallo Alex,
ein Aktualisierung der Daten in den folge-Tabellen durch eine Änderung in Tab 1 ist kaum möglich, da die übertragenen Zeilen unterschiedlich sind.

Vielleicht reicht ja auch der Autofilter!
Der vor schließen der Datei die Daten automatisch filtert und in den verschiedenen Tabellen einträgt, speichert und die Datei schließt
(x=Tab1, y=Tab2 usw)


Gruß
fedjo

Antwort 8 von nighty

hi all :-)

korrigiert bzw mit auromatischer tabellenerstellung :-))

gruss nighty

Private Sub worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
Dim daten() As Variant
Dim ZielZeile As Long
If Target.Column > 6 And Target.Row > 1 And UCase(Cells(Target.Row, Target.Column)) = "X" Then
If Sheets.Count < Target.Column - 6 And Sheets.Count < 255 Then
Sheets.Add Count:=1, after:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = "Objekt " & Sheets.Count + 1
Sheets(1).Select
End If
daten() = Range("A" & Target.Row & ":G" & Target.Row)
ZielZeile = Sheets(Target.Column - 6).Range("A" & Rows.Count).End(xlUp).Row + 1
Sheets(Target.Column - 6).Range("A" & ZielZeile & ":G" & ZielZeile) = daten()
End If
Application.EnableEvents = True
End Sub