Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Begriffe mit VBA suchen und darunterstehende Werte in eine andere Tabelle übertragen





Frage

Hallo VBA-Spezialisten, ich möchte mit VBA automatisch bestimmte Werte aus Tabelle1 in eine andere Datei Tabelle1 übertragen. Beispiel: In der ersten Zeile (Nr. 1) befinden sich die Suchbegriffe und darunter die dazustehenden Werte (Zeile Nr.2). Meine Aufgabe ist es, bestimmte Suchbegriffe auszulesen, die darunterstehenden Werte zu kopieren und diese in eine andere Datei und andere Zellen einzufügen. Ich hoffe ihr habt eine Idee. Gruß David

Antwort 1 von JoeKe

Moin David,

probier mal folgenden Code:

Option Explicit

Sub edelnudel()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim loL1 As Long, loL2 As Long, zähler As Long, Quelle As String, _
Ziel As String
Quelle = "edelnudel1.xls"
Ziel = "edelnudel2.xls"
Workbooks(Quelle).Sheets.Add
ActiveSheet.Name = "Daten"
Workbooks.Open Filename:=Ziel
Workbooks(Ziel).Sheets("Tabelle1").Cells.Copy
Windows(Quelle).Activate
Sheets("Daten").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
loL2 = Workbooks(Quelle).Sheets("Tabelle1").Cells(1, Columns.Count).End(xlToLeft).Column
loL1 = 1
Do While loL1 <= Workbooks(Quelle).Sheets("Daten").Cells(1, Columns.Count).End(xlToLeft).Column
For zähler = 1 To loL2
If Workbooks(Quelle).Sheets("Daten").Cells(1, loL1) = _
Workbooks(Quelle).Sheets("Tabelle1").Cells(1, zähler) Then
Sheets("Daten").Cells(Rows.Count, loL1).End(xlUp).Offset(1, 0) = _
Sheets("Tabelle1").Cells(2, zähler)
End If
Next
loL1 = loL1 + 1
Loop
Sheets("Daten").Cells.Copy
Workbooks(Ziel).Activate
Sheets("Tabelle1").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
Workbooks(Ziel).Save
Workbooks(Ziel).Close
Workbooks(Quelle).Sheets("Daten").Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub


Tabellenaufbau:

edelnudel1:
Zeile1 = Liste der möglichen Suchbegriffe
Zeile2 =Werte

edelnudel2:
Zeile1 = Suchbegriffe
ab Zeile2 abwärts werden die gefundenen Werte unter den Suchbegriffen eingetragen.

Gruß

JöKe

Antwort 2 von edelnudel

Hallo JöKe,
Super! Vielen Dank!

1. Es funktioniert sehr gut, aber ich möchte dich um einen weiteren Gefallen bitten und zwar: Ich bräuchte die kopierten Werte an eine, von mir definierte Stelle in der Zieldatei einzufügen.

z.B. Der Wert des Suchbegriffes 1 sollte in der Zelle "B6" erscheinen oder der Wert des Suchbegriffes 2 in der Zelle "D11".
--> also: individuell platzierbar.

2. Wie ist es, wenn die Dateien auf einem Server gespeichert sind. Funktioniert es auch?

Danke dir im Voraus

Gruss
David (edelnudel)

Antwort 3 von JoeKe

Hallo David,

zu 1.

machbar ist das.
Man müsste nur genau wissen:
    -wie viele Kriterien gibt es
    -wo stehen die Kriterien oder sollen sie Abgefragt werden
    -wie viele Werte pro Kriterium können gefunden werden
    -bleiben die Zielzellen nachdem sie einmal festgelegt wurden fest oder ändern sie sich jedesmal


Zu 2.

mit Servern kenne ich mich leider nicht aus. Wenn man die Pfade aber entsprechend anpasst, dürfte es damit auch keine Probleme geben.

Gruß

JöKe

Antwort 4 von edelnudel

Hallo JöKe,

auf deine Fragen werde ich am besten mit einem Beispiel antworten und zwar:

In der Quelldatei, in der ersten Zeile stehen viele verschiedene Begriffe.( Die Anzahl variiert zwischen 40-70).
Darunter( Zeile 2) stehen dazu die jeweiligen Messwerte, welche nur auf Zeile 2 begrenzt sind.
Die Suchkriterien( von mir festgelegte--> nur etwa 15) stehen in der Zieldatei( Tabelle 1) und sollen von dort aus abgefragt werden.(z.b. in der ersten Zeile)
Die Platzierung der abgefragten Messwerte(Tabelle 2) erfolgt auf von mir definierten Stellen = Zielzellen (Formularfelder).diese sollten eigentlich unverändert bleiben.(man weiss nie)

Frage: ist die Definition der Suchkriterien( nur etwa 15) im CODE möglich?

Danke:)

Gruss David