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

VLookUP 2 arr

VLookUP 2 arr
14.07.2021 14:56:01
Eisi
Hallo zusammen,
ich brauch bitte Eure Hilfe.
Im Sheet "1_Kalkulation" sind zwei Zellbereiche mit Namen definiert. Von der Quelle sollen die Werte per Button Zeile für Zeile aus der Spalte B in das Ziel Spalte B eingetragen werden. Bei meinem Code tut sich gar nichts.
Ich denke mal beim Befehl VLookUP liege ich komplett daneben. Den SVerweis verstehe ich besser?
Vielen Dank für die Hilfe.
VG Eisi :-)

Private Sub cmd_Menge_fuer_Befestigungsmittel_uebertragen_Click()
Dim arrQuelle() As Variant
Dim arrZiel() As Variant
arrQuelle = [Matrix_Plattendicke].Value       'A22:B33  - 12 Zeilen  ; In Spalte A und B stehen vorhandene Werte
arrZiel = [Matrix_Schraubenlaenge].Value      'A47:B59  - 12 Zeilen  ; In Spalte A stehen bereits die Daten aus der Quelle Spalte A
' In Spalte B des Ziels sollen die Werte aus der Quelle kopiert werden
For i = 1 To 12
On Error Resume Next
arrZiel(i, 1) = WorksheetFunction.VLookup(arrQuelle(i, 1), arrQuelle, 2, False)
Next i
End Sub

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VLookUP 2 arr
14.07.2021 16:25:36
UweD
Hallo
1)
&GT&GT VLookUP liege ich komplett daneben. Den SVerweis verstehe ich besser?
Ist das Gleiche einmal englisch ( wird in VBA verwendet) das andere mal Deutsch
2)
Des weiteren sind A47:B59 13 Zeilen
3)&GT&GT Bei meinem Code tut sich gar nichts.
Doch, aber du musst die Werte aus dem Array noch zurück in die Zellen schreiben

Private Sub cmd_Menge_fuer_Befestigungsmittel_uebertragen_Click()
Dim i As Integer
Dim arrQuelle() As Variant
Dim arrZiel() As Variant
arrQuelle = [Matrix_Plattendicke].Value       'A22:B33  - 12 Zeilen  ; In Spalte A und B stehen vorhandene Werte
arrZiel = [Matrix_Schraubenlaenge].Value      'A47:B58  - 12 Zeilen  ; In Spalte A stehen bereits die Daten aus der Quelle Spalte A
' In Spalte B des Ziels sollen die Werte aus der Quelle kopiert werden
For i = 1 To 12
'On Error Resume Next
arrZiel(i, 1) = WorksheetFunction.VLookup(arrQuelle(i, 1), arrQuelle, 2, False)
Next i
[Matrix_Schraubenlaenge].Value = arrZiel
End Sub
ABER....
Was du da machst, ist
- Zeilenweise die Quelle, Spalte A zu durchlaufen und den Wert aus der gleichen Zeile aus Spalte B zurückholst
- genau das schreibst du in den Zielbereich in Spalte A
das kannst du dann auch direkt kopieren ohne Schleife
Das reicht

Private Sub cmd_Menge_fuer_Befestigungsmittel_uebertragen_Click()
[Matrix_Schraubenlaenge].Columns(1).Value = [Matrix_Plattendicke].Columns(2).Value
End Sub
LG UweD
Anzeige
AW: VLookUP 2 arr
14.07.2021 16:49:05
UweD
Vergiss es.
Habe gerade gelesen, dass in Ziel A ja schon Werte drin stehen
offen
14.07.2021 16:49:27
UweD
so aber
14.07.2021 16:56:35
UweD
Hallo nochmal

Private Sub cmd_Menge_fuer_Befestigungsmittel_uebertragen_Click()
With [Matrix_Schraubenlaenge].Columns(2)
.FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-1],Matrix_Plattendicke,2,0),"""")"
.Value = .Value
End With
End Sub
LG UweD
0,00 wird noch angezeigt?
14.07.2021 17:13:21
Eisi
Hallo Uwe,
herzlichen Dank. Jetzt überträgt der Code alles richtig.
Aber der Code trägt auch 0,00 bei allen Feldern ein, obwohl die Ursprungsfelder leer sind.
Das soll aber nicht passieren, denn später will ich nur die Zeilen kopieren, die einen Wert als Zahl oder als Null stehen haben.
Alle anderen Zellen, die in Spalte B leer sind, sollen dann nicht kopiert werden.
Hast Du da noch eine Idee?
Vielen herzlichen Dank.
GLG Eisi :-)
Anzeige
AW: 0,00 wird noch angezeigt?
14.07.2021 18:04:48
Yal
Hallo Eisi,
Idee:

Private Sub cmd_Menge_fuer_Befestigungsmittel_uebertragen_Click()
With [Matrix_Schraubenlaenge].Columns(2)
.FormulaR1C1 = "=IFERROR(VLOOKUP(RC[-1],Matrix_Plattendicke,2,0),"""")"
.Value = .Value
.Replace What:=0, Replacement:="", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End With
End Sub
VG
Yal
AW: 0,00 wird noch angezeigt?
14.07.2021 18:34:05
Thomas
Hallo Yal,
danke für die Antwort, probiere ich morgen aus.
Bin schon gespannt.
Vielen Dank.
GLG Eisi :-)
Wunschziel noch nicht ganz erreicht :-)
15.07.2021 10:08:40
Eisi
Hallo Yal,
Hallo Uwe,
die Codes laufen einwandfrei, jedoch brauche ich die 0,00, die in der Tabelle oben eingetragen ist. Weil ich über den Weg festlegen möchte, welche Zeilen später kopiert werden sollen.
Ich habe mal eine Musterdatei angehängt und im roten Textfeld mein Plan noch mal genauer beschrieben.
Herzlichen Dank für die Unterstützung.
VG Eisi :-)
https://www.herber.de/bbs/user/147130.xlsm
Anzeige
AW: Wunschziel noch nicht ganz erreicht :-)
15.07.2021 10:59:54
UweD
Hallo nochmal
so?

Private Sub cmd_BestellmengeUebertragen_Click()
Application.ScreenUpdating = False
'Lösung UweD
With [Matrix_Schraubenlaenge].Columns(2)
.FormulaR1C1 = "=IFERROR(IF(VLOOKUP(RC[-1],Matrix_Plattendicke,2,0)="""",""""," & _
"VLOOKUP(RC[-1],Matrix_Plattendicke,2,0)),"""")"
.Value = .Value
End With
endmacro:
Application.ScreenUpdating = True
End Sub
LG UweD
Herzlichen Dank an Uwe und Yal :-)
15.07.2021 11:24:42
Eisi
Hallo Uwe,
klasse, der Code ist perfekt.
Herzlichen Dank.
GLG Eisi :-)
Prima. Danke für die Rückmeldung. owT
15.07.2021 12:52:36
UweD

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige