Hallo,
ich möchte Art.-Nr aus t2 in ein array einlesen, wenn die Art.-Bezeichnung aus Spalte 3 mit der aus Zell3 E1 übereinstimmt (1.Schleife) und dann alle Art.-Nr. aus dem Array (2.Schleife) in t1 suchen und eine Artikelbeschreibung aus Spalte 5 der t1 (Basistabelle) wieder in Spalte 5 der t2 auflisten. Die erste Schleife habe ich soweit hingekriegt, Probleme habe ich bei der 2. Schleife mit der Einbindung des Arrays. Auch die Deklaration des arrays ist mir noch schleierhaft, hier habe ich alle möglichen Schreibweisen (z.B. arr(), arr(100), arr As Variant etc) gesehen ohne dass ich es richtig verstanden habe. Kann jemand hier weiterhelfen indem der Code unten im wesentlichen weiterverwendet wird.
gruss
ml
Sub artikel()
Dim arr ???
Dim t1 As Worksheet
Dim t2 As Worksheet
Dim i%
Dim j%
Dim s As Long
Set t1 = Sheets("DB")
Set t2 = Sheets("Puffer")
s = 3
Do While t2.Cells(s, 3) ""
If t2.Range("e1") = t2.Cells(s, 3) Then
arr(s) = t2.Cells(s, 4)
End If
s = s + 1
Loop
j = 3
For i = 1 To t1.Cells(Rows.Count, 1).End(xlUp).Row
If t1.Cells(i, 1).Value = **arr(???)** Then
t2.Cells(j, 5).Value = t1.Cells(i, 5).Value
j = j + 1
End If
Next i
End Sub
Hi,
ich habe zwar nicht ganz verstanden, was du vorhast, aber ich vermute, dass du mit der Arbeitsblattfunktion sverweis viel einfacher zum Ziel kommst.
Sieh dir die Funktion einfach mal an. Sonst melde dich nochmal.
Array dimensionieren
Kann jemand hier weiterhelfen indem
der Code unten im wesentlichen weiterverwendet wird.
Hallo ML,
mir geht es wahrscheinlich wie Power, die erste Schleife kapiere ich, bei der zweiten schwächle ich diesbezüglich sehr.
Wenn SVerweis/VLookup nicht geht, beschreibe bitte nochmal mit anderen Worten, was die zweite Schleife genau tun soll.
Beispielmappe mit file-upload hochladen, s. FAQ:2606 ?
Typename kennst du? Die Ergebnisse davon sind nicht immer 1:1 für einen Dim-Befehl umsetzbar, aber liefern schonmal einen Anhaltspunkt.
Zu Dim von arr, schau dir mal nachfolgenden Code an, schau auch in der Hilfe zu Data Base, LBound, Ubound, Redim usw.
Option Explicit
'
Sub tt()
Dim arrA(100), arrB(), arrC, N
Set arrC = Range("A1:A10")
MsgBox TypeName(arrA)
MsgBox TypeName(arrB)
MsgBox TypeName(arrC)
For N = 0 To 9
arrA(N) = N \* 2
ReDim Preserve arrB(N)
arrB(N) = N \* 2
arrC(N + 1) = N \* 2
Next N
For N = 0 To 9
MsgBox arrA(N)
MsgBox arrB(N)
arrC(N + 1) = N \* 2
Next N
End Sub
Gruß
Reinhard
Hallo Reinhard,
ich hab Probleme das array in der 2. Schleife einzubinden, es wurde ja in der 1. Schleife mit Werten (Art.-Nr.) aus t2.Cells(s, 4) gefüllt. Jetzt sollen diese Art.-Nr. aus dem Array mit Art.-Nr. der Tabelle t1 verglichen werden und bei übereinstimmung eine Bezeichnung aus t1 Spalte 5 zurück in die t2 geschrieben werden. Die t1 kannst Du dir wie eine Basistabelle vorstellen, die alle Daten enthält. Die t2 ist nur eine Zusatztabelle, die nur eine Auswahl benötigter Art-Nr. enthält und weitere Daten zur Art-Nr. aus der t1 holt. Grundsätzlich würde ich sowas schon mit sverweis() machen, nur hier geht es nicht. Ich möchte das hier gern mit dem Array machen, dass die Auswahl der Art.-Nr. einliest und für genau diese Art.-Nr. aus der t1 die Bezeichn. holt. Hoffe jetzt ist es klarer.
gruss
ml