……………………………………………….
Schritt 4
Artikelnummern aussuchen
Mit dieser Makro kann jetzt aus dem Tabellenblatt Source aus der Spalte A, die ersten 10 Artikelnummern in die Spalte C6 bis C15 des Tabellenblattes Dashboard eingelesen werden.
Nach erneuten klicken auf den Button werden die nächsten 10 Artikelnummern
aus dem Tabellenblatt Source in die Spalte C6 bis C15 des Tabellenblattes Dashboard eingelesen usw. bis alle Artikelnummern einmal durch sind. Danach startet es wieder von vorne. Wenn diese Nummern in das Feld C6 bis C15 eingelesen werden erscheinen per Formel in der Spalte H6 bis H15 die dazugehörigen Informationen. Jetzt sollen die
Information aus H6 bis H15 wieder in die Exceldatei Artikelnummer558.xls wieder hineinkopiert werden.
Beispiel: Die Datei Artikelnummer558.xls hat in dem Tabellenblatt ART-Beschreibung in der Spalte A z.B. 100 Artikelnummern. Aber in Spalte B sind 100 leere Felder die mit Informationen befüllt werden müssen. Dann werden die 100 Nummern mit dem Makro aus Schritt 3 zuerst in das Tabellenblatt Source Spalte A der Exceldatei DATENBANK1A hineinkopiert.
Nun wird mit der Makro Schritt 4 aus dem Tabellenblatt Source die erst 10 Nummern kopiert und in das Tabellenblatt Dashboard in der Spalte C6 bis C15 eingelesen, per Formel erscheinen in der Spalte H6 bis H16 die dazu gehörigen Informationen, nach erneutem klicken des dazu gehörigen Button werden weitere 10 Nummern in die Spalte C6 bis C15 eingelesen usw.
Schritt 4
Global IndexPos As Long
Global ArrQ As Variant
Sub copy10()
Dim Zaehler1 As Long
Dim Zaehler2 As Long
Dim lzeile As Long
' Schritt 4 Artikelnummern aussuchen
Worksheets("Dashboard").Range("C6:C15").Clear
lzeile = Worksheets("Source").Cells(Rows.Count, 1).End(xlUp).Row
If IndexPos = 0 Then
With Worksheets("Source")
ArrQ = .Range(.Cells(1, 1), .Cells(lzeile, 1))
End With
IndexPos = 1
End If
If IndexPos > UBound(ArrQ) Then
With Worksheets("Source")
ArrQ = .Range(.Cells(1, 1), .Cells(lzeile, 1))
End With
IndexPos = 1
End If
With Worksheets("Source")
If .Cells(lzeile, 1).Value <> ArrQ(UBound(ArrQ), 1) Then
ArrQ = .Range(.Cells(1, 1), .Cells(lzeile, 1))
IndexPos = 1
End If
End With
For Zaehler1 = IndexPos To IndexPos + 9
If Zaehler1 > UBound(ArrQ) Then Exit For
Zaehler2 = Zaehler2 + 1
Worksheets("Dashboard").Cells(Zaehler2 + 5, 3) = ArrQ(Zaehler1, 1)
Next Zaehler1
IndexPos = IndexPos + Zaehler2
End Sub
…………………………………………………………………….
[*]
[sup]
*Threadedit* 02.10.2015, 14:04:09
Admininfo: Führe Threads bitte nicht fort, indem du weitere eröffnest, und vermeide Mehrfachanfragen! Siehe dazu unser FAQ 2, #3 - wie man einen Thread eröffnet[/sup]