1.2k Aufrufe
Gefragt in Tabellenkalkulation von b25812 Mitglied (509 Punkte)
Hallo Leute,
ich habe mal eine Frage,
ich habe in spalte a artikel zu stehen z.b.

schraube
hammer
Kugelschreiber

usw.
in spalte b steht die stückzahl

2
3
3

jetzt soll in spalte c stehen

schraube
schraube
hammer
hammer
hammer
Kugelschreiber
Kugelschreiber
Kugelschreiber

d.h anzahl in spalte b x der artikel in spalte a.
geht das mit einem Makro und eine schaltfäsche?

gruß andi

4 Antworten

0 Punkte
Beantwortet von m-o Profi (19.5k Punkte)
Hallo Andi,

das geht z.B. so:

Sub Andi()

Dim i, m, z, zeile As Long

'Bildschirmaktualisierung ausschalten:
Application.ScreenUpdating = False

zeile = 1

For i = 1 To ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
m = Cells(i, 2)
For z = 1 To m
Cells(zeile, 3) = Cells(i, 1)
zeile = zeile + 1
Next z
Next i

'Bildschirmaktualisierung einschalten:
Application.ScreenUpdating = True

End Sub


Gruß

M.O.
0 Punkte
Beantwortet von b25812 Mitglied (509 Punkte)
Danke M.O

ich denke mal das ist die Ausgabe zeile
Cells(zeile, 3)

wenn die daten in b ( Artikel)
und die daten in c (stückzahlen)
stehen würden, welche parameter müßte ich in der formel ändern?

gruß andi
0 Punkte
Beantwortet von m-o Profi (19.5k Punkte)
Hallo Andi,

In VBA wird die Zelle mit Cells wie folgt angesprochen:
Cells(zeile, spalte)

wobei Spalte A = 1, Spalte B = 2 usw.

Die Anzahl der Begriffe wird in der Zeile
m = Cells(i, 2)

eingelesen.
Steht die Anzahl in Spalte C, dann müsste die Zeile wie folgt lauten:
m = Cells(i, 3)


Entsprechend muss die Zeile
Cells(zeile, 3) = Cells(i, 1)

geändert werden.

Der erste Ausdruck ist die Zelle, in der die Begriffe reingeschrieben werden. Der zweite Ausdruck, bezeichnet die Zelle, aus der der Begriff (Artikel) genommen wird.
Sollen Begriffe aus Spalte B statt in Spalte C in Spalte D untereinander geschrieben werden dann müsste die Zeile so aussehen:
Cells(zeile, 4) = Cells(i, 2)


Gruß

M.O.
0 Punkte
Beantwortet von b25812 Mitglied (509 Punkte)
Hallo M.O
Danke für die Antwort.

gruß andi
...