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

Werte aus Array auslesen

Werte aus Array auslesen
10.12.2022 16:56:51
Constantin
Hallo,
ich komme bei folgender Aufgabenstellung nicht so recht weiter, bei der ich Werte aus einer anderen Tabelle holen möchte. Um die Suchvorgänge zu beschleunigen, habe ich den Datenbereich der zweiten Tabelle (usedRange) in eine Variable eingelesen. Ich durchlaufe die Spalte A der Tabelle1 und möchte nun mit dem jeweiligen Suchkriterium im Array der zweiten Tabelle (Spalte C des eingelesenen Bereichs) suchen. Falls das Kriterium gefunden wird, würden die gesuchten Werte in Spalte D und E stehen, die ich dann übernehmen und in Tabelle1 zurückschreiben möchte (Spalte B und C).
Wie ließe sich dies in VBA umsetzen?
Im Voraus Danke für die Unterstützung.
Grüße, Constantin
Beispieldatei:
https://www.herber.de/bbs/user/156644.xlsx

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

Betreff
Datum
Anwender
Anzeige
AW: Werte aus Array auslesen
10.12.2022 18:00:09
ralf_b
schönes Beispiel mit usedrange. Nur wo ist das? Eine VBA Frage ohne VBA. Das kannst du doch besser.
AW: Werte aus Array auslesen
10.12.2022 19:40:20
Constantin
... das wäre schön. Danke für die Motivation.
Grüße, Constantin
AW: Werte aus Array auslesen
11.12.2022 11:50:05
snb
Du bist nicht geholfen, du hast nur eien Lösung bekommen.
Wenn es um Beschleunigung geht, verwende:

Sub M_snb()
sn = Sheet1.Cells(1).CurrentRegion
sp = Sheet2.Cells(1).CurrentRegion
With CreateObject("scripting.dictionary")
For j = 2 To UBound(sp)
.Item(sp(j, 3)) = Array(sp(j, 4), sp(j, 5))
Next
For j = 2 To UBound(sn)
If .exists(sn(j, 1)) Then
sn(j, 2) = .Item(sn(j, 1))(0)
sn(j, 3) = .Item(sn(j, 1))(1)
End If
Next
End With
Sheet1.Cells(1).CurrentRegion = sn
End Sub

Anzeige
AW: Werte aus Array auslesen
10.12.2022 19:20:59
Nepumuk
Hallo Constantin,
teste mal:

Option Explicit
Public Sub Werte_suchen()
Dim avntInputValues As Variant, avntOutputValues As Variant
Dim ialngInputIndex As Long, ialngOutputIndex As Long
With Tabelle2
avntInputValues = .Range(.Cells(2, 3), .Cells(.Cells(.Rows.Count, 3).End(xlUp).Row, 5)).Value2
End With
With Tabelle1
avntOutputValues = .Range(.Cells(2, 1), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 3)).Value2
For ialngOutputIndex = LBound(avntOutputValues, 1) To UBound(avntOutputValues, 1)
For ialngInputIndex = LBound(avntInputValues, 1) To UBound(avntInputValues, 1)
If avntOutputValues(ialngOutputIndex, 1) = avntInputValues(ialngInputIndex, 1) Then
avntOutputValues(ialngOutputIndex, 2) = avntInputValues(ialngInputIndex, 2)
avntOutputValues(ialngOutputIndex, 3) = avntInputValues(ialngInputIndex, 3)
Exit For
End If
Next
Next
.Range(.Cells(2, 1), .Cells(.Cells(.Rows.Count, 1).End(xlUp).Row, 3)).Value = avntOutputValues
End With
End Sub
Gruß
Nepumuk
Anzeige
AW: Werte aus Array auslesen
10.12.2022 19:43:57
Constantin
Hallo Nepumuk,
das Programm macht auf für mich magische Weise das, was es soll. Ich werde versuchen, mich noch etwas mehr reinzudenken. Funktioniert super. Es hilft mir sehr.
Vielen Dank.
Grüße, Constantin
AW: Werte aus Array auslesen
11.12.2022 11:52:38
snb
Du bist nicht geholfen, du hast nur eine Lösung bekommen.
Wenn mans sich auskennt in VBA hat das nichts 'magisches'.
Wenn es jedoch um Beschleunigung geht, verwende:

Sub M_snb()
sn = Sheet1.Cells(1).CurrentRegion
sp = Sheet2.Cells(1).CurrentRegion
With CreateObject("scripting.dictionary")
For j = 2 To UBound(sp)
.Item(sp(j, 3)) = Array(sp(j, 4), sp(j, 5))
Next
For j = 2 To UBound(sn)
If .exists(sn(j, 1)) Then
sn(j, 2) = .Item(sn(j, 1))(0)
sn(j, 3) = .Item(sn(j, 1))(1)
End If
Next
End With
Sheet1.Cells(1).CurrentRegion = sn
End Sub

Anzeige
AW: Werte aus Array auslesen
11.12.2022 17:42:25
Constantin
Hallo snb,
vielen Dank auch für Deine Lösung!
Grüße, Constantin

303 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige