Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
968to972
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
968to972
968to972
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Zelleninhalte aus zwei Tabellen kombinieren

Zelleninhalte aus zwei Tabellen kombinieren
23.04.2008 16:13:23
Edmund
Hallo zusammen,
folgendes hab ich vor:
Aus einer Datei Zelleninhalte rausfiltern die eine bestimmte Buchstabenkombination haben. Eine andere Datei dann nach diesen durchsuchen und Informationen die in der gleichen Spalte wie der Fund und einer fixen Spalte liegen, in eine Zelle in der ersten Datei schreiben.
Mein Problem liegt nun in der nötigen Schleife, die eine Spalte durchsucht und in eine Variable den Zelleninhalt speichert, wenn dieser mit PA oder PK anfängt.
Dann sollte die zweite Datei mit der Variablen durchsucht werden und die zugehörige Spalte in einer anderen Variable gespeichert werden.
Damit ich auf die Zelle mit der benötigten Information zugreifen kann (die Spalte ist wie gesagt schon bekannt).
Wahrscheinlich ein wenig verwirrend, aber ich hoffe, dass es dennoch einigermaßen verständlich war.
Einen schönen Tag noch!

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zelleninhalte aus zwei Tabellen kombinieren
24.04.2008 11:55:00
fcs
Hallo Edmund,
hier mal das Gerüst für so eine Wert-Suche/Übernahme.
Dabei müssen beide Dateien geöffnet sein.
Das Makro muss du in der Datei1 einfügen, in der die gefundenen Werte eingetragen werden sollen.
Im Code muss du die Konstanten für Spalten und Zeilen anpassen und die Namen der Datei(en) und Tabellen.
Gruß
Franz

Sub WerteHolen()
'Spalte nach Werten durchsuchen und aus 2. Datei zugehörige Werte holen
Dim objWS As Worksheet        'Tabellenblatt in 1. Datei
Dim objWS_Finden As Worksheet 'Tabellenblatt in 2. Datei
Dim lngZeileWS As Long
Dim objZelle As Range
Dim varFind As Variant, varWert As Variant
Dim varSuchen
Dim intI
'Konstanten für Tabellenblatt in 1. Datei
'Spalte in der PK und PA gesucht werden sollen
Const intSpalteWS_Suchen As Integer = 1
'Spalte in der gefundenner Wert eingetragen werden soll
Const intSpalteWS_Wert As Integer = 4
'Zeile ab der Suchbegriffe gesucht werden sollen
Const lngZeileStart As Long = 2
'Konstanten für Tabellenblatt in 2. Datei
'Spalte in der PK.. bzw. PA... gesucht werden sollen
Const intSpalteFinden As Integer = 1
'Spalte in der Wert steht der in 1. Datei eingetragen werden
Const intSpalteWert As Integer = 2
'Tabellenblatt in 1. Datei festlegen - Namen ggf. anpassen
Set objWS = ActiveWorkbook.Worksheets("Liste")
'Tabellenblatt in 2. Datei festlegen - Namen ggf. anpassen
Set objWS_Finden = Workbooks("VBA_Verweis.xls").Worksheets("Tabelle1")
' Array mit den zu findenden Suchbegriffen definieren
varSuchen = Array("PA*", "PK*") 'ggf. anpassen
With objWS
'Spalte nach Begriffen durchsuchen
For lngZeileWS = lngZeileStart To .Cells(.Rows.Count, intSpalteWS_Suchen).End(xlUp).Row
For intI = LBound(varSuchen) To UBound(varSuchen)
If .Cells(lngZeileWS, intSpalteWS_Suchen).Value Like varSuchen(intI) Then
varFind = .Cells(lngZeileWS, intSpalteWS_Suchen)
'Suchbegriff in 2. Datei suchen
With objWS_Finden
Set objZelle = .Columns(intSpalteFinden).Find(what:=varFind, _
LookIn:=xlValues, lookat:=xlWhole)
If objZelle Is Nothing Then
'Suchbegriff wurde nicht gefunden
varWert = Null
Else
'für gefundene Zelle den Wert merken/speichern
varWert = .Cells(objZelle.Row, intSpalteWert)
End If
End With
Exit For
End If
Next
'gefundenen Wert einfügen
.Cells(lngZeileWS, intSpalteWS_Wert).Value = varWert
Next
End With
End Sub


Anzeige
AW: Korrektur
24.04.2008 12:11:34
fcs
Hallo Edmund,
das Eintragen der Werte war noch nicht ganz korrekt.
Gruß
Franz

Sub WerteHolen()
'Spalte nach Werten durchsuchen und aus 2. Datei zugehörige Werte holen
Dim objWS As Worksheet        'Tabellenblatt in 1. Datei
Dim objWS_Finden As Worksheet 'Tabellenblatt in 2. Datei
Dim lngZeileWS As Long
Dim objZelle As Range
Dim varFind As Variant, varWert As Variant
Dim varSuchen
Dim intI
'Konstanten für Tabellenblatt in 1. Datei
'Spalte in der PK und PA gesucht werden sollen
Const intSpalteWS_Suchen As Integer = 1
'Spalte in der gefundenner Wert eingetragen werden soll
Const intSpalteWS_Wert As Integer = 4
'Zeile ab der Suchbegriffe gesucht werden sollen
Const lngZeileStart As Long = 2
'Konstanten für Tabellenblatt in 2. Datei
'Spalte in der PK.. bzw. PA... gesucht werden sollen
Const intSpalteFinden As Integer = 1
'Spalte in der Wert steht der in 1. Datei eingetragen werden
Const intSpalteWert As Integer = 2
'Tabellenblatt in 1. Datei festlegen - Namen ggf. anpassen
Set objWS = ActiveWorkbook.Worksheets("Liste")
'Tabellenblatt in 2. Datei festlegen - Namen ggf. anpassen
Set objWS_Finden = Workbooks("VBA_Verweis.xls").Worksheets("Tabelle1")
' Array mit den zu findenden Suchbegriffen definieren
varSuchen = Array("PA*", "PK*") 'ggf. anpassen
With objWS
'Spalte nach Begriffen durchsuchen
Application.ScreenUpdating = False
For lngZeileWS = lngZeileStart To .Cells(.Rows.Count, intSpalteWS_Suchen).End(xlUp).Row
For intI = LBound(varSuchen) To UBound(varSuchen)
If .Cells(lngZeileWS, intSpalteWS_Suchen).Value Like varSuchen(intI) Then
varFind = .Cells(lngZeileWS, intSpalteWS_Suchen)
'Suchbegriff in 2. Datei suchen
With objWS_Finden
Set objZelle = .Columns(intSpalteFinden).Find(what:=varFind, _
LookIn:=xlValues, lookat:=xlWhole)
If objZelle Is Nothing Then
'Suchbegriff wurde nicht gefunden
varWert = Null
Else
'für gefundene Zelle den Wert merken/speichern
varWert = .Cells(objZelle.Row, intSpalteWert)
End If
End With
Exit For
End If
Next
'gefundenen Wert einfügen
If IsNull(varWert) Then
'do nothing
Else
.Cells(lngZeileWS, intSpalteWS_Wert).Value = varWert
varWert = Null
End If
Next
Application.ScreenUpdating = True
End With
End Sub


Anzeige
AW: Korrektur
30.04.2008 11:32:00
Edmund
Hallo Franz (oder an alle Anderen die sich meines Problems annehmen mögen),
nachdem ich endlich Zeit gefunden hab den Code für meine Nöte umzuschreiben und auch schließlich auf den "Fehler" gestoßen bin, kann ich mich auch herzlich bedanken für die echt tolle Antwort!
Nun aber zu dem "Fehler":
Es soll nicht genau(!) der Suchbegriff in der der 2. Datei gesucht werden, sondern nur eine Zelle die den Suchbegriff enthällt. Also soll auch was gefunden werden, wenn rechts oder links des Suchbegriffes in der Fundzelle etwas steht.
Aber den Code so umzuschreiben ist bestimmt ein Klacks, wenn man ein derartiges Fachwissen wie Ihr habt!
Gruß
Edmund
Anzeige

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige