Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1504to1508
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

Datensätze automatisch übertragen in 2. Tabelle

Datensätze automatisch übertragen in 2. Tabelle
13.07.2016 15:58:25
Domi
Hallo zusammen,
ich habe folgendes Problem und bisher noch keine Lösung dafür gefunden:
In der ersten Tabelle mit dem Namen "Datenbank" werden laufend neue Datensätze zu Literatur-/Internetquellen gesammelt. Hier sollen alle Informationen, die basiernd auf einer Literaturrecherche gefunden werden, händisch eingetragen werden.
In der zweiten Tabelle mit dem Namen "Übersicht" sollen dann schließlich nur die Datensätze automatisch ausgegeben werden, deren Quellen auf einen "wissenschaftlichen Paper" bezogen ist. Es sollen auch nicht alle Spalten in die zweite Tabelle übernommen werden.
Durch fortlaufendes Erweitern der ersten Tabelle soll die zweite Tabelle natürlich automatisch angepasst werden.
Gibt es hierfür eine Lösung, wie man dies VBA-technisch lösen kann oder ist dies auch mit Funktionen möglich. Leider bin ich in VBA nicht so fit.
Die Excel-Datei habe ich angehängt um ein besser Verständnis meines Problems zu bekommen:

Die Datei https://www.herber.de/bbs/user/106989.xlsm wurde aus Datenschutzgründen gelöscht

Über jegliche Lösungen/Hinweise/Hilfe bin ich sehr dankbar.
Gruß
Domi

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Datensätze automatisch übertragen in 2. Tabelle
13.07.2016 16:18:45
Peter
Hallo Domi,
ich empfehle dir eine Pivot-Tabelle (habe im Anhang schon mal mit dem Aufbau angefangen).
Gruß,
Peter
https://www.herber.de/bbs/user/106991.xlsm

AW: Datensätze automatisch übertragen in 2. Tabelle
13.07.2016 17:20:11
Bastian
Guck mal ob du damit zurecht kommst ?
Gruß Basti
Sub Bla()
Dim i, x, o As Long
Dim wsD, wsU As Worksheet
Dim rng, rng2, data, zelle As Range
Application.ScreenUpdating = False
Set wsD = Worksheets("Datenbank")
Set wsU = Worksheets("Übersicht")
wsU.Range("Tabelle3").ClearContents
wsU.ListObjects("Tabelle3").Resize Range("$B$7:$N$8")
Set rng = wsD.Range("B7:B" & wsD.Cells(1048576, 2).End(xlUp).Row)
Set rng2 = wsD.Range("B6:X6")
x = 2
o = 1
For Each zelle In rng
If Not zelle.Value = "" Then
h = wsU.Cells(1048576, 2).End(xlUp).Row
For i = 2 To 14
Set data = rng2.Find(wsU.Cells(7, x), LookIn:=xlValues)
wsU.Cells(h + 1 - o, i) = wsD.Cells(zelle.Row, data.Column)
x = x + 1
Next i
End If
o = 0
x = 2
i = 2
Next zelle
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Datensätze automatisch übertragen in 2. Tabelle
13.07.2016 17:23:37
Bastian
Ups soo meine ich
Sub Bla()
Dim i, x, o As Long
Dim wsD, wsU As Worksheet
Dim rng, rng2, data, zelle As Range
Application.ScreenUpdating = False
Set wsD = Worksheets("Datenbank")
Set wsU = Worksheets("Übersicht")
wsU.Range("Tabelle3").ClearContents
wsU.ListObjects("Tabelle3").Resize Range("$B$7:$N$8")
Set rng = wsD.Range("B7:B" & wsD.Cells(1048576, 2).End(xlUp).Row)
Set rng2 = wsD.Range("B6:X6")
x = 2
o = 1
For Each zelle In rng
If Not zelle.Value = "" Then
h = wsU.Cells(1048576, 2).End(xlUp).Row
For i = 2 To 14
Set data = rng2.Find(wsU.Cells(7, i), LookIn:=xlValues)
wsU.Cells(h + 1 - o, i) = wsD.Cells(zelle.Row, data.Column)
Next i
End If
o = 0
i = 2
Next zelle
Application.ScreenUpdating = True
End Sub

Anzeige
AW: Datensätze automatisch übertragen in 2. Tabelle
13.07.2016 18:15:30
Domi
Hallo Peter,
hallo Basti,
besten Dank euch beiden. Mit der Pivottabelle hat das gut funktioniert.
Ich würde aber glaube doch eher eine Lösung mit VBA bevorzugen.
Das klappt mit dem Quellcode soweit auch super.
Nur habe ich noch ein Problem. Mit diesem Quellcode übernimmt er mir alle Datensätze aus der ersten Tabelle und fügt alle automatisch in die 2. Tabelle ein.
Gibt es eine Möglichkeit das Programm noch so abzuändern, dass nur die Datensätze aus der ersten Tabelle übernommen werden, wo "Wissenschaftlicher Paper" drin steht. Also müsste vielleicht noch eine Abfrage rein, ob in dem jeweiligen Datensatz "Wissenschaftlicher Paper" steht und wenn ja darf er den Datensatz in die zweite Tabelle übernehmen, ansonsten nicht.
Gibt es da vielleicht noch eine Möglichkeit, wie man das lösen kann?
Gruß
Domi

Anzeige
AW: Datensätze automatisch übertragen in 2. Tabelle
13.07.2016 20:22:33
Bastian
Hey Domi
Ich habe den Code etwas geändert nun könntest du bei Übersicht eine Spalten überschrieft von der einen seite nehmen und hinter Kryogene Kühlung packen und er würde Automatisch diese Spalte füllen aber Achtung die Überschrieften von beiden Sheets müssen identisch sein sonst kommt ein Fehler.
Und er sollte nun auch nur die Zeilen kopieren dei mit dem Wissenschaftlicher Paper
Sub Bla()
Dim i, x, o As Long
Dim wsD, wsU As Worksheet
Dim rng, rng2, data, zelle As Range
Application.ScreenUpdating = False
Set wsD = Worksheets("Datenbank")
Set wsU = Worksheets("Übersicht")
wsU.Range("Tabelle3").ClearContents
wsU.ListObjects("Tabelle3").Resize Range(wsU.Cells(7, 2).Address & ":" & wsU.Cells(8, wsU.Cells( _
7, 256).End(xlToLeft).Column).Address)
Set rng = wsD.Range("B7:B" & wsD.Cells(1048576, 2).End(xlUp).Row)
Set rng2 = wsD.Range(wsD.Cells(6, 2), wsD.Cells(6, wsD.Cells(6, 256).End(xlToLeft).Column))
o = 1
For Each zelle In rng
If Not zelle.Value = "" And zelle.Offset(0, 5).Value = "Wissenschaftlicher Paper" Then
h = wsU.Cells(1048576, 2).End(xlUp).Row
For i = 2 To wsU.Cells(7, 256).End(xlToLeft).Column
Set data = rng2.Find(wsU.Cells(7, i), LookIn:=xlValues)
wsU.Cells(h + 1 - o, i) = wsD.Cells(zelle.Row, data.Column)
Next i
End If
o = 0
i = 2
Next zelle
Application.ScreenUpdating = True
End Sub

Anzeige
Datensätze automatisch übertragen in 2. Tabelle
14.07.2016 07:29:07
baschti007
Oder so dann kommt kein Fehler und es wird die spalte einfach nicht gefüllt
Sub Bla()
Dim i, x, o, h As Long
Dim wsD, wsU As Worksheet
Dim rng, rng2, data, zelle As Range
Application.ScreenUpdating = False
Set wsD = Worksheets("Datenbank")
Set wsU = Worksheets("Übersicht")
wsU.Range("Tabelle3").ClearContents
wsU.ListObjects("Tabelle3").Resize Range(wsU.Cells(7, 2).Address & ":" & wsU.Cells(8, wsU.Cells( _
_
7, 256).End(xlToLeft).Column).Address)
Set rng = wsD.Range("B7:B" & wsD.Cells(1048576, 2).End(xlUp).Row)
Set rng2 = wsD.Range(wsD.Cells(6, 2), wsD.Cells(6, wsD.Cells(6, 256).End(xlToLeft).Column))
o = 1
For Each zelle In rng
If Not zelle.Value = "" And zelle.Offset(0, 5).Value = "Wissenschaftlicher Paper" Then
h = wsU.Cells(1048576, 2).End(xlUp).Row
For i = 2 To wsU.Cells(7, 256).End(xlToLeft).Column
Set data = rng2.Find(wsU.Cells(7, i), LookIn:=xlValues)
If Not data Is Nothing Then wsU.Cells(h + 1 - o, i) = wsD.Cells(zelle.Row, data. _
Column) Else 'MsgBox wsU.Cells(7, i).Value & " in " & wsD.Name & " nicht gefunden"
Next i
End If
o = 0
i = 2
Next zelle
Application.ScreenUpdating = True
End Sub

Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige