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

Tabelle1 mit Daten aus Tabelle 2 ergänzen

Tabelle1 mit Daten aus Tabelle 2 ergänzen
24.01.2017 16:35:25
TGeneral

Hallo!
Ich möchte gerne per Macro die ID aus Tabelle 1 in Tabelle 2 suchen.
In Tabelle2 können auch mehrere Ergebnisse bei ID vorhanden sein. Daher wäre es super, wenn nur die zugehörigen Code zurückgegeben werden. Jedoch in der zum title passenden Spalte in Tabelle1.
Also zum Beispiel: Die ID "1" wurde in Tabelle2 3 mal gefunden. Mit den Titeln Apfel, Kugel und Würfel und deren zugehörigen Codes 123, 132 und 321. Diese Codes werden jetzt in Tabelle 1 in den entsprechenden Spalten Apfel, Kugel und Würfel eingetragen (in der Zeile der gesuchten ID natürlich)

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


Ich wäre sehr dankbar wenn wir das irgendwie realisieren könnten :)
PS: Ich habe das Thema auch unter http://www.office-loesung.de/p/viewtopic.php?f=166&t=731444 gepostet.

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

Betreff
Datum
Anwender
Anzeige
AW: können nicht alle zugeordnet werden
25.01.2017 09:54:51
TGeneral
@Michael vielen Dank, er läuft perfekt! Ich muss leider den Code anpassen können, da es sich ja hier nur um ein Beispiel handelt. Das ganze ist aber sehr komplex...könntest du mir bitte in ein paar Kommentaren erklären, wo ich meine Tabellen, Suchspalten und die Ergebnisspalte deklarieren kann? Vlt einfach direkt im Code mit den Spaltenbezeichnungen aus dem Beispiel. Dann kann ich das ganze anpassen.
Danke für deine Hilfe!
AW: Tabelle1 mit Daten aus Tabelle 2 ergänzen
24.01.2017 19:49:11
onur
Das alles in ein MODUL:
Option Explicit
Public Const maxz = 100
Public Const maxs = 100
Public ID_Nr(maxz) As Long
Public Title(maxs) As String
Public Sub Suchen()
Dim z, s, n, nr, ID As Long
Dim AnzID, AnzTi As Integer
Dim TI As String
For z = 2 To maxz
If Tabelle1.Cells(z, 1) <> "" Then
ID_Nr(nr) = Tabelle1.Cells(z, 1).Value
nr = nr + 1
End If
Next z
AnzID = nr
nr = 0
For s = 4 To maxs
If Tabelle1.Cells(1, s) <> "" Then
Title(nr) = Tabelle1.Cells(1, s)
nr = nr + 1
End If
Next s
AnzTi = nr
For z = 2 To 1000
If Tabelle2.Cells(z, 2) <> "" Then
ID = Tabelle2.Cells(z, 2)
For n = 0 To AnzID - 1
If ID = ID_Nr(n) Then
For nr = 0 To AnzTi - 1
TI = Tabelle2.Cells(z, 3)
If TI = Title(nr) Then
Tabelle1.Cells(n + 2, 4 + nr) = Tabelle2.Cells(z, 4)
End If
Next nr
End If
Next n
End If
Next z
End Sub

Anzeige
AW: Tabelle1 mit Daten aus Tabelle 2 ergänzen
25.01.2017 10:12:52
TGeneral
vielen Dank @onur! Auch hier ist es so, dass ich wissen müsste wo ich Suchspalten, Ergebnisspalten, Ausgabeort, Tabellen, usw. deklarieren kann. Ich muss den Code auf andere Tabellen anwenden und bräuchte bitte einen Kommentar zu Code um ihn adaptieren zu können.
AW: Tabelle1 mit Daten aus Tabelle 2 ergänzen
25.01.2017 13:03:21
onur
Option Explicit
'Public im Modul, damit Du von überall aus darauf zugreifen kannst
Public Const maxz = 100' Maximale Anzahl Zeilen mit ID in Tabelle1
Public Const maxs = 100' Maximale Anzahl Spalten mit Title in Tabelle1
Public ID_Nr(maxz) As Long
' Hier werden später alle in Tabelle1 vorhandenen ID-Nr im Array gespeichert
Public Title(maxs) As String
' Hier werden später alle in Tabelle2 vorhandenen Title´s im Array gespeichert
Public Sub Suchen()'Name des Sub´s
Dim z, s, n, nr, ID As Long
Dim AnzID, AnzTi As Integer
Dim TI As String
'Lokale Variable, zum einmaligen Gebrauch
'    Speichern der in Tabelle1 vorhandenen ID-Nr
For z = 2 To maxz
If Tabelle1.Cells(z, 1) <> "" Then' Stoppe, sobald Zelle in Spalte 1 leer
ID_Nr(nr) = Tabelle1.Cells(z, 1).Value
nr = nr + 1
End If
Next z
AnzID = nr'Anzahl ID-Nr
nr = 0
'    Speichern der in Tabelle2 vorhandenen Title´s
For s = 4 To maxs
If Tabelle1.Cells(1, s) <> "" Then' Stoppe, sobald Zelle in Zeile 1 leer
Title(nr) = Tabelle1.Cells(1, s)
nr = nr + 1
End If
Next s
AnzTi = nr'Anzahl Title
For z = 2 To 1000
If Tabelle2.Cells(z, 2) <> "" Then'Nimm die ID-Nr in Tabelle2 Spalte2, bis Spalte  _
leer
ID = Tabelle2.Cells(z, 2)
For n = 0 To AnzID - 1
If ID = ID_Nr(n) Then
' Finde Index von ID-Nr (Position im Array - damit auch indirekt Pos. auf Tabelle1)
For nr = 0 To AnzTi - 1
TI = Tabelle2.Cells(z, 3)
If TI = Title(nr) Then
' Finde Index von Title (Position im Array - damit auch indirekt Pos. auf Tabelle1)
Tabelle1.Cells(n + 2, 4 + nr) = Tabelle2.Cells(z, 4)
' Kopiere Wert unter Code auf Tabelle2 in Tabelle 1
End If
Next nr
End If
Next n
End If
Next z
End Sub

Anzeige
AW: Tabelle1 mit Daten aus Tabelle 2 ergänzen
25.01.2017 14:34:35
TGeneral
Perfekt!Viiiiiiiieeeeelen Dank!!!!!
AW: Tabelle1 mit Daten aus Tabelle 2 ergänzen
25.01.2017 16:54:58
TGeneral
Darf ich
Public ID_Nr(maxz) As Long
auch als String definieren? Die ID in meiner Tabelle beginnt mit einem Buchstaben.
Ich habe das mal gemacht, der Code läuft auch, gibt aber keine Ergebnisse zurück...
AW: Tabelle1 mit Daten aus Tabelle 2 ergänzen
25.01.2017 18:41:38
onur
Ja klar, dann schon.
Gruß
Onur
AW: Tabelle1 mit Daten aus Tabelle 2 ergänzen
30.01.2017 12:14:49
TGeneral
Ich bekomme den Code leider nach meinen idividuellen Anpassungen nicht dazu mir die Ergebnisse auszugeben. Die Felder bleiben einfach leer. Wo liegt mein Fehler?
Ich habe die Arbeitsmappe mit Makro auf meine Dropbox gestellt, da hier nur bis 800kb erlaubt sind, diese aber 1,3 Mb hat.
https://www.dropbox.com/s/3m06hvyxo63d4od/Frage.xlsm?dl=0
Anzeige
AW: Tabelle1 mit Daten aus Tabelle 2 ergänzen
30.01.2017 17:16:13
onur
Hi,
Ändere ganz oben das
ID_Nr(nr) = Tabelle1.Cells(z, 1).Value
in
ID_Nr(nr) = Tabelle1.Cells(z, 1)
Da Du ja ID_Nr als string deklariert hast, kanst du keinen value nehmen.
Gruß
Onur

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige