online 1
gast (50)

/ Forum / Tabellenkalkulation

TabellenkalkulationTabellenkalkulation

Fragevon Petra65 vom 29.03.2021, 18:09 Options

Lösung

Daten aus verschiedenen Tabellenblättern in ein Blatt holen

Hallo,

mal wieder ein Problem....

Ich habe eine Tabelle, die aus diversen Tabellenblättern besteht. Ich möchte nun in ein bestimmtes Tabellenblatt (2009) Daten anderer Tabellenblätter (1-70) holen. Das heisst, jedesmal wenn ich die Zellen fülle, sollen diese übertragen werden (entweder beim Speichern oder über Enter).

Der Aufbau ist wie folgt:

Tabellenblatt 2009:
Hier soll in A5 der Wert von M3 aus den jeweiligen Blättern übergeben werden.
In B5 soll der Wert aus M4 übergeben werden.
In C5 bis P5 sollen die Werte aus A9 bis N9.

Die Tabellenblätter, aus denen die Daten geholt werden sollen, sind fortlaufend nummeriert, von 1 bis 70.

Ich denke, dass das nur mit Makros funktioniert, und mit denen komme ich überhaupt nicht klar - darum hoffe ich hier auf Hilfe.

Vielen Dank im voraus und viele Grüße - Petra


Antwort schreiben

Antwort 1 von Hajo_Zi vom 29.03.2021, 19:32 Options

Hallo Petra,

das geh ohne Makro schreibe doch die Formel in die Zelle z.B. =Tabelle1!M3

Gruß Hajo

Antwort 2 von Petra65 vom 29.03.2021, 19:41 Options

Hallo,

hab mich vielleicht missverständlich ausgedrückt:

in jedem Blatt (1 - 70) stehen unterschiedliche Daten, M3 ist in jedem Blatt mit einem anderen Wert belegt.
Es kann sein, dass in Blatt 10 am 01.02.09 Werte eingetragen werden, am 05.03.09 werden in Blatt 15 Daten eingetragen, und alle diese Daten sollen dann in das Blatt 2009 übertragen werden.

Gruss - Petra

Antwort 3 von Hajo_Zi vom 29.03.2021, 19:47 Options

Hallo Petra,

nur wenige sehen Deine Datei.
Doch nicht alle Wete aus allen Tabellen in M3?

Gruß Hajo

Antwort 4 von tracer vom 29.03.2021, 19:54 Options

Hallo Petra,

Zitat:
Tabellenblatt 2009:
Hier soll in A5 der Wert von M3 aus den jeweiligen Blättern übergeben werden.

Zitat:
Die Tabellenblätter, aus denen die Daten geholt werden sollen, sind fortlaufend nummeriert, von 1 bis 70.


Demnach möchtest du 70 WERTE in EINE ZELLE packen?

..oder hast du uns nicht mitgeteilt, dass sich in A4 eine Auswahl befindet ??

mhmh
..oder doch falsch verstanden ?

Antwort 5 von Petra65 vom 29.03.2021, 19:59 Options

Hallo Hajo,

es geht es darum, dass immer mehr Datensätze dazukommen und die Übersicht (2009) sich automatisch um die dazugekommenden Datensätze erweitern soll.

DOCH, alle Werte aller Blätter aus M3, doch es kommen ja immer neue Datensätze hinzu, dann funktioniert das doch nicht.

Es kann sein, dass der erste Datensatz aus Tabelle 1 kommt, der nächts aus Tabelle 5, der nächste wieder aus Tabelle1.

Ich weiss nicht wie ich es erklären soll - sorry.

Ich hatte schonmal so eine ähnliche Frage, kann nur den VBA-Code nicht auf meine aktuelle Tabelle umstricken.
(http://www.supportnet.de/threads/2153161)

Gruss - Petra

Antwort 6 von Petra65 vom 29.03.2021, 20:01 Options

... oh jeee ...

die Tabelle 2009 soll sich nach unten hin füllen ...

Ich glaube ich habe mich total falsch ausgedrückt!

Antwort 7 von Saarbauer vom 29.03.2021, 20:06 Options

Hallo,

mal grundsätzlich: woran erkennt man wekommt woher?

Es müsste doch in der entsprechenden Zeile irgendwo eine Angabe geben, die die Verbindung zu der Zelle M3 im entsprechenden Tabellenblatt liefert.

Gruß

Helmut

Antwort 8 von Petra65 vom 29.03.2021, 20:08 Options

ich glaube ich stelle die tabelle online, ich denke dann wird das problem deutlicher .,.. melde mich gleich nochmals

Antwort 9 von tracer vom 29.03.2021, 20:13 Options

..also doch so wie Hajo sagte,

Formel in die Zelle z.B. =Tabelle1!$M$3

das machst du in 2 aufeinander folgende Zellen,
z.B. A5 und A6. Danach markierst du beide ZELLEN,
und ziehst die Markierung an der unteren rechten
Ecke 70 Zeilen nach unten, sorry 68.
Dann werden alle Werte aus M3 des jeweiligen Tabellen-Blattes
eingelesen. Zum Schluss kannst du dann auch die
Summe darunter ausgeben lassen...

Antwort 10 von tracer vom 29.03.2021, 20:15 Options

..autsch ... natürlich musst du die Eingabe in der 2. Zelle in
 z.B. =Tabelle2!$M$3

ändern, dann erst markieren und ziehen.

Antwort 11 von tracer vom 29.03.2021, 20:17 Options

die $ Zeichen müssen sein, damit IMMER die Zelle
ausgelesen wird, sonst wird die Zellenziffer beim
ziehen der Markierung immer um eins erhöht.

Antwort 12 von Petra65 vom 29.03.2021, 20:32 Options

So, habe nun die Tabelle online, diese ist zu finden unter:

http://www.file-upload.net/download-1557386/TESTdatei.xls.html

Ich denke dann wird es (so hoffe ich) deutlicher.

Schonmal vielen Dank ...

Petra

Antwort 13 von tracer vom 29.03.2021, 20:49 Options

WOOWW...
du willst also, Wann immer EIN Eintrag in einem der
Blätter getätigt wird, DIE GANZE Zeile in Das Blatt
2009
in die ERSTE LEERE Zeile übertragen wird,
UND wenn sich ETWAS in einer Zeile z.B. auf Blatt 2
ändert, Das denn auch noch imBlatt 2009 aktualisiert wird???

Ist das etwa so zu verstehen ?

Antwort 14 von Petra65 vom 29.03.2021, 20:54 Options

JAAA, genau das möchte ich ..... das muss doch gehen !! ??

Antwort 15 von tracer vom 29.03.2021, 21:12 Options

PUUUUHHHHHHH,

da bin ich ganz sicher NICHT in der Lage.
Aber hier gibt es sicher jemanden, der
sowas kann..............

Viel Glück.
gruss
tracer

Antwort 16 von Petra65 vom 29.03.2021, 21:15 Options

Schade ... trotzdem Danke.

Gruss - Petra

Antwort 17 von nighty vom 30.03.2021, 08:56 OptionsLösung

Lösung
hi all ^^

ein automatismus vielleicht :-))

gruss nighty

zur zeit auf auf alle tabellen bezogen
wechselt sich sich der inhalt von einer zelle in spalte m bzw index 13,startet das makro

trage daher deine wunschspalte ein,in der die letzte eingabe erfolgen sollte um den automatismus auszuloesen

einzufuegen
alt+f11/projektexplorer/DeineArbeitsMappe

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Application.EnableEvents = False
    If Target.Column = 13 Then
        With ThisWorkbook.Worksheets(Sh.Index)
            Zeile = ThisWorkbook.Worksheets("2009").Range("A" & Rows.Count).End(xlUp).Row + 1
            ThisWorkbook.Worksheets("2009").Range("A" & Zeile) = .Range("M3")
            ThisWorkbook.Worksheets("2009").Range("B" & Zeile) = .Range("M4")
            .Range("A" & Target.Row & ":N" & Target.Row).Copy
            ThisWorkbook.Worksheets("2009").Range("C" & Zeile).PasteSpecial Paste:=xlValues, Operation:=xlNone
        End With
        Application.CutCopyMode = False
    End If
    Application.EnableEvents = True
End Sub

Antwort 18 von nighty vom 30.03.2021, 09:03 Options

hi all ^^

oder als startbares makro :-)

gruss nighty

Sub ZeileKop()
    Dim zeile As Long
    With ThisWorkbook.Worksheets(ActiveSheet.Index)
        zeile = ThisWorkbook.Worksheets("2009").Range("A" & Rows.Count).End(xlUp).Row + 1
        ThisWorkbook.Worksheets("2009").Range("A" & zeile) = .Range("M3")
        ThisWorkbook.Worksheets("2009").Range("B" & zeile) = .Range("M4")
        .Range("A" & ActiveCell.Row & ":N" & ActiveCell.Row).Copy
        ThisWorkbook.Worksheets("2009").Range("C" & zeile).PasteSpecial Paste:=xlValues, Operation:=xlNone
    End With
    Application.CutCopyMode = False
End Sub

Antwort 19 von rainberg vom 30.03.2021, 09:41 Options

Hallo Petra,

habe aus Zeitmangel ebenfalls ein Makro zusamen geschustert, welche evtl. noch optimiert werden muss.
nighty war zwar schneller, aber will Dir meinen Code nicht vorenthalten.

Bei Eintragung von "x" in Spalte M wird die entsprechende Zeile übertragen.

Option Explicit

Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
    Dim ws1 As Worksheet, ws2 As Worksheet
    Dim strKunde As String, strKnr As String
    Set ws1 = ThisWorkbook.ActiveSheet
    Set ws2 = ThisWorkbook.Worksheets("2009")
    If Target.Row < 9 Or Target.Column <> 15 Then Exit Sub
    strKnr = ws1.Range("M3").Value
    strKunde = ws1.Range("M4").Value
    If Target.Value = "x" Then
        ws2.Cells(ws2.Cells(Rows.Count, 1).End(xlUp).Row + 1, 1).Value = strKnr
        ws2.Cells(ws2.Cells(Rows.Count, 1).End(xlUp).Row, 2).Value = strKunde
        ws1.Range("A" & ws1.Cells(Rows.Count, 1).End(xlUp).Row & ":N" & ws1.Cells(Rows.Count, 1).End(xlUp).Row).Copy
        Sheets("2009").Select
        Range("C" & ws2.Cells(Rows.Count, 1).End(xlUp).Row).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
        Range("A5").Select
    End If
End Sub


http://www.file-upload.net/download-1558051/re_TESTdatei.xls.html

Gruß
Rainer

Antwort 20 von nighty vom 30.03.2021, 10:06 Options

hi rainer ^^

circelbezug produziert 4 durchlaeufe

gruss nighty

zum anfang

Application.EnableEvents = False


zum ende

Application.EnableEvents = True

Ähnliche Themen

Daten aus anderen Blättern holen
rodster  17.10.2007 - 103 Hits - 6 Antworten

Formel für Suche in verschiedenen Tabellenblättern
smokie  26.03.2008 - 26 Hits - 3 Antworten

Daten auf anderes Blatt verschieben
Ulle-gt5  26.02.2009 - 187 Hits - 22 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 11:26:25 2026