Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Daten aus Excel Tabelle in andere Tabelle übertrag

Daten aus Excel Tabelle in andere Tabelle übertrag
27.04.2015 20:46:13
tony0786


2010 - Daten aus Excel-Datei per Schaltfläche in andere Excel-Datei übertragen
Guten Tag zusammen. Ich hoffe es war richtig ein neues Thema zu eröffnen, da ich kein anderes /ähnliches Thema gefunden habe.
Ich habe folgendes Problem.
Ich möchte gerne Werte aus einer Excel Tabelle per Knopfdruck in eine andere Excel Tabelle einer anderen Excel-Datei übertragen.
Die erste Tabelle ist ein Bautagesbericht. Dieser enthält viele Informationen und einige wenige davon möchte ich gerne per Konopfdruck in einer weiteren Excel-Datei-Liste auflisten. Dabei sollen allerdings nur Werte übertragen werden welche ein bestimmtes Kriterium erfüllen. Diese Abfrage muss leider sein, da nicht immer die gleiche Zelle abgefragt werden soll.
Zum Beispiel folgender Fall:
In dem Bautagesbericht stehen in einer Liste diverse Tätigkeiten, welche von einer Vorgangs-ID abhängig sind. Siehe Bild_1 im Anhang bzw. Link ganz unten.
Links ist die Vorgang-ID und die rechte Spalte beinhaltet die Tätigkeit bzw. das Ereignis. Jetzt sollen per Knopfdruck alle Werte die in der Vorgang-ID ein "BD" und oder ein "BH" beinhalten übertragen werden. Zwar gibt es unterschiedliche ID´s jedoch würde es ausreichen wenn das Programm erkenn das ein "BD" oder ein "BH" enthalten ist. Darüber hinaus soll noch das in der Quelldatei enthaltene Datum "Zelle Z5" in die Zieldatei übertragen werden. Dabei sollen die Werte einfach in den zugewiesenen Spalten aufgelistet werden. Das bedeutet das Programm muss wissen wo die erste leere Zelle anfäng in der Zieldatei.
Im Prinzip reicht eine einfache auflistung aus. Es muss nicht chronologisch sein, da das datum mit übertragen werden sol. Für eine chronologische Auföistung kann dann später die Sortiefunktion verwendet werden in der Zieldatei. Da es ein Bautagesbericht ist, soll diese Vorgehensweise jeden Tag von einem neuen Bautagesbericht aus gestartet werden. Die Zieldatei bleibt jedoch immer die gleich und würde sich nur bei einem neuen Projekt ändern.
erste Frage:
Ist mein Vorhaben möglich?
zweite Frage?
Was benötigt Ihr noch um mir eventuell weiter zu helfen?
Ich danke dem oder derjenigen Helfer schon mal vielmals im voraus.
Ich habe leichte Excelkenntnisse und habe auch schon mal was in VBA gemacht jedoch liegt das schon 6-7 Jahre zurück. Dementsprechend eingestaubt ist mein Wissen. Ich nutze Excel 2010.
MfG
Tony0786
Userbild

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
dies geht auch ohne "Knopfdruck" ...
28.04.2015 08:48:45
der neopa C
Hallo Tony,
... dies kann man mit einer Formel lösen. Lade dazu mal Deinen kleinen Datenauszug als Datei hier hoch.
Gruß Werner
.. , - ...

AW: dies geht auch ohne "Knopfdruck" ...
28.04.2015 09:08:55
tony0786
Ok cool, hallo der neopa C!
Vielen Dank für die schnelle Hilfe/Antowrt vorab.
Also im Anhang findest Du zwei Excel-Dateien.
1. BTB_Quelldatei_Rohling.xlsx entspricht der Quelldatei
siehe Link: https://www.herber.de/bbs/user/97328.xlsx
2. Ereignisliste_Rohling.xlsx entspricht der Zieldatei
siehe Link: https://www.herber.de/bbs/user/97329.xlsx
Die Zellen welche ausgelesen werden sollen habe ich lila eingefärbt. Dabei handelt es sich um die Zellen unter Punkt 3 der Tabelle. Die Spalte "Vorgang-ID" und die Spalte "Ereignisfeld" sowie das Datum in Zelle "Z5" sollen in die andere Excel-Datei übertragen werden.
Es sollen dabei aber nur Werte übertragen werden, welche in den Zellen der Spalte "Vorgang-ID" (bzw. ab A23)
ein "BD-Nr.:",
ein "BH-Nr.:",
ein "zusätzl. Leistung",
ein "Ereignis-Nr.:" oder
ein "Fertigstellung" enthalten.
Für diese Überprüfung habe ich bereits eine Hilfsspalte agelegt, welche bei Üereinstimmung den Wert "1" und bei keiner Übereinstimmug den Wert "0" auswirft angelegt. Diese liegt außerhalb des Druckbereiches und soll später dann ausgeblendet werden.
Wenn die Überprüfung eine Übereinstimmung feststellt, dann soll bspw. der Zellinhalt von Zelle "A23" und "F23" plus das Datum aus Zelle "Z5" des Tabellenblattes "BTB" der Excel-Datei "BTB_Quelldatei_Rohling" in die ebenfalls lila eingefärbten Zellen der Excel-Datei "Ereignisliste_Rohling.xlsx" übertragen werden. Wenn möglich soll das ganze auch gehen können, wenn die Zieldatei geschlossen ist. Ausgelöst werden soll das ganze per Schaltfläche in der Quelldatei, welche außerhalb des Druckbereiches angelegt werden kann.
Wichtig ist noch, dass in der Zieldatei nicht überschrieben wird, sondern immer da weiter geschrieben wird, wo das Programm zuletzt aufgehört hat. Also es muss überprüft werden wo die erste leere Zelle zum reinschreiben ist.
Darüber hinaus ist noch zu beachten, das die Quelldatei jeden Tag neu ausgefüllt wird, da es sich um einen Tagesbericht handelt. Ich habe mir gedacht, wenn man jeden Tag die Quelldatei öffnet und ausfüllt, dann auf die Schaltfläche zur Datengeneration klickt und dann per Speichern unter die Datei mit einem richtigen Dateinnamen versieht und ablegt müsste doch mein Vorhaben klappen oder?
Schwierig wird es glaube ich, wenn man erst speichert und dann die Daten generiert, da sich dann der Dateiname ändert. Vielleicht wäre es in diesem Fall logischer den Weg umgekehrt zu gehen.
Bspw. von mir aus einmal die Woche den entpsrechenden Ordner mit mehrerer Tagesberichten per Schaltfläche in der Zieldatei auslesen um die maßgeblichen Daten zu übertragen. Was meinst Du dazu? ich würde jedoch die erste Variante bevorzugen, da dann immer in Echtzeit die relevanten Daten in ein übergeordnetes Dokument übertragen werden.
Ich habe leider nur wenig Kenntnisse in VBA und Excel. Habe zwar während meiner Ausbildung mal VBA gemacht jedoch liegt das schon Jahre zurück und die Progrämmchen beschränkten sich auf sinnlose Anwendungen.
Ich hoffe ich habe es klar und verständlich erläutert.
Vielen Vielen Dank schon mal.

Anzeige
das ist ein anderer Sachverhalt ...
28.04.2015 09:44:11
der neopa C
Hallo Tony,
... so wie Du es jetzt beschreibst (bei neuen Bericht Fortschreibung der bereits aus alten Berichten übertragenen Daten) wäre Dein Anliegen nur mit VBA zu lösen.
ich würde es anders zwar trotzdem ohne VBA lösen können, aber das würde hier zu weit führen.
Gruß Werner
.. , - ...

AW: das ist ein anderer Sachverhalt ...
28.04.2015 09:56:50
tony0786
Hmm, ok!
Das bedeutet es ist zu schwierig?
Oder es kann mir niemand helfen?
Gruß Tony

ich stelle Deinen Thread wieder auf offen t ...
28.04.2015 10:11:30
der neopa C
Hallo Tony,
... ich halte mich aus VBA-Lösungsangeboten außen vor. Als schwierig betrachte ich es nicht.
Gruß Werner
.. , - ...

Haste aber nicht, Werner...! Aber jetzt! orT
28.04.2015 19:55:07
Luc:-?
Gruß, Luc :-?

Datenübertragung mit Makro
28.04.2015 20:33:29
Daniel
Hi
probiere mal folgendes Makro.
Damit es funktioniert, musst du noch folgendes ändern:
gib in der Hilfsspalte für die Zeilen, die übertragen werden müssen die Zahl 1 aus (1 ohne Anführungszeichen) und für die die die nicht übertragen werden müssen den Leerstring "".
du kannst auch was anderes nehmen, wichtig ist die Unterscheidung "Zahl" für Übertraben und "Text" für nicht übertragen.
die Datei "Ereignisse" musst du vorher öffnen.
Das Makro prüft die geöffneten Dateien und trägt die Werte in die Datei ein, in der das erste Sheet den Namen "Ereignisse" hat.
Sub Übertrag()
Dim wbE As Workbook
Dim ZelleZiel As Range
Dim i As Long
Dim ZelleQuelle As Range
With ThisWorkbook.Sheets("BTB")
'--- Prüfen, ob relevante Einträge vorhanden sind
If WorksheetFunction.Sum(.Range("AL:AL")) = 0 Then
MsgBox "Keine relevanten Einträge vorhanden."
Exit Sub
End If
'--- Prüfen, ob Ereignisdatei geöffnet ist
For Each wbE In Application.Workbooks
If wbE.WorkSheets(1).Name = "Ereignisse" Then Exit For
Next
If wbE Is Nothing Then
MsgBox "Bitte Ereignis-Datei öffnen und dann Makro nochmal ausführen:"
Exit Sub
End If
'--- Daten übertragen
Set ZelleZiel = wbE.WorkSheets(1).Cells(Rows.Count, 3).End(xlUp).Offset(1, 0)
For Each ZelleQuelle In .Range("AL:AL").SpecialCells(xlCellTypeFormulas, 1)
ZelleZiel.Offset(i, 0).Value = .Range("Z5").Value
ZelleZiel.Offset(i, 1).Value = ZelleQuelle.Offset(0, 1 - ZelleQuelle.Column).Value
ZelleZiel.Offset(i, 2).Value = ZelleQuelle.Offset(0, 6 - ZelleQuelle.Column).Value
i = i + 1
Next
End With
End Sub
gruß Daniel

Anzeige
AW: Datenübertragung mit Makro
29.04.2015 17:11:00
tony0786
Hallo Daniel,
habe schon eine Lösung entwickelt. Trotzdem besten Dank für deinen Tip. Deine Lösung setzt aber voraus, das die Zieldatei geöffnet sein muss. Die liegt jedoch im Ernstfall aufnem Server und sollte eigentlich beim Ausführen des Makros geschlossen sein.
Habe bei meiner Lösung, welche ich von nem bekannten erhielt ein Problemchen. Das Makro übernimmt immer alle relevanten Werte in die Zieldatei jedoch lässt die erste Datei immer weg. Statt 10 kommen nur 9 an und dabei fehlt immer der erste Wert.
komme nicht auf den Fehler

AW: Datenübertragung mit Makro
30.04.2015 14:31:23
Daniel
tja, da wird sich wohl dein Bekannter drum kümmern müssen, da kann ich dir auch nicht weiter helfen.
Gruß Daniel

Anzeige
AW: Datenübertragung mit Makro
01.05.2015 10:34:13
tony0786
OK Daniel, trotzdem vielen Dank für Deine Bemühung.
Schönes Wochenende wünsche ich noch.
Freundliche Grüße Tony

317 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige