Zeilen, die in Spalte 9 ein X enthalten in anderes Blatt kopieren
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 schreiben
Antwort 1 von Hajo_Zi vom 03.04.2019, 11:35 Options
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 vom 04.04.2019, 08:25 Options
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 4 von AlexP123 vom 05.04.2019, 08:41 Options
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 vom 05.04.2019, 08:58 Options
Antwort 6 von nighty vom 06.04.2019, 12:12 Options
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 vom 06.04.2019, 14:27 Options
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 vom 07.04.2019, 09:18 Options
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