Werte zuweisen
13.01.2010 01:33:34
Thomas
Hallo,
würdet Ihr mir bitte weiterhelfen - komm nicht klar.
Ich habe in der Spalte AL ( A1 = Zuweisung ) ca. 38.000 Zellen die mit 386 verschiedenen Werten gefüllt sind. Die Anzahl der Zellen kann sich immer wieder mal ändern.
In der Spalte AM habe ich die Zahlen 1 bis 386 die ich nun den Werten in den Zellen der Spalte AM zuweisen möchte.
Habs mal so versucht:
Sub Ordnungszahl()
' kat_id
Dim lZeile As Long, Counter As Long, kat_id As Long, ZUWEISUNG As Long
Dim StatusCalc As Long
With Application
.ScreenUpdating = False
StatusCalc = .Calculation
If StatusCalc <> xlCalculationManual Then .Calculation = xlCalculationManual
.EnableEvents = False
End With
lZeile = Cells.SpecialCells(xlLastCell).Row
For Counter = 2 To lZeile
kat_id = Cells(Counter, 40).Value 'Range("AN" & Counter).Value
If ZUWEISUNG = Arbeitsspeicher3891 Then kat_id = 1
If ZUWEISUNG = ArbeitsspeicherDDRRAM39843891 Then kat_id = 2
If ZUWEISUNG = ArbeitsspeicherDDR2RAM47813891 Then kat_id = 3
If ZUWEISUNG = ArbeitsspeicherDDR3RAM59413891 Then kat_id = 4
If ZUWEISUNG = ArbeitsspeicherSDRRAM39813891 Then kat_id = 5
If ZUWEISUNG = ArbeitsspeicherSODDR249613891 Then kat_id = 7
If ZUWEISUNG = ArbeitsspeicherSODDR360413891 Then kat_id = 8
If ZUWEISUNG = ArbeitsspeicherSODDR39833891 Then kat_id = 6
If ZUWEISUNG = ArbeitsspeicherSODIMM39823891 Then kat_id = 9
If ZUWEISUNG = Barebonesysteme3927 Then kat_id = 10
If ZUWEISUNG = BarebonesystemeZubehör43413927 Then kat_id = 11
If ZUWEISUNG = BatterienundAkkus5181 Then kat_id = 12
Cells(Counter, 40).Value = kat_id 'Range("AN" & Counter).Value
Next Counter
With Application
.ScreenUpdating = True
If StatusCalc <> .Calculation Then .Calculation = StatusCalc
.EnableEvents = True
End With
End Sub
Ich habe das Makro verkürzt hier reingestellt da die If Then bis 386 gehen - wäre zu lang.
Wenn ich das Script laufen lasse weißt er mir nur die Zahl 386 für alle 38000 Zellen zu.
Wäre nett wenn Ihr mir einen Anstoß geben könntet wie ich das Teil zum laufen bringe.
Merci schon mal im voraus.
Gruß
Thomas