hallo
ich hab da wieder mal ein problem und zwar hab ich in einer excel datei in der erste tabelle eine spalte wo sehr viele zahlen stehen.
nun möchte ich das excel bzw. ein makro mir die zahlen in einer 2. tabelle in der erste spalte ordnet und in einer 2. spalte auch sagt wie oft diese zahlen vorkamen
zb aus
45
81
73
65
70
…
wird
45 1
47 2
49 4
50 1
51 3
…
kann mir dabei einer helfen
schonmal vielen dank im vorraus
ich hab da wieder mal ein problem und zwar hab ich in einer
excel datei in der erste tabelle eine spalte wo sehr viele
zahlen stehen.
nun möchte ich das excel bzw. ein makro mir die zahlen in
einer 2. tabelle in der erste spalte ordnet und in einer 2.
spalte auch sagt wie oft diese zahlen vorkamen
Hallo Tobi,
in ein Standardmodul wie Modul1:
Sub Zahlen()
Dim Zei As Long, C As Long, colC As New Collection
On Error Resume Next
With Worksheets("Tabelle1")
For Zei = 1 To .Cells(Rows.Count, 1).End(xlUp).Row '1=Spalte A
colC.Add Item:=CStr(.Cells(Zei, 1)), key:=CStr(.Cells(Zei, 1))
Next Zei
End With
On Error GoTo 0
With Worksheets("Tabelle2")
.Range("A:B").ClearContents
For Zei = 1 To colC.Count
.Cells(Zei, 1).Value = Val(colC(Zei))
Next Zei
.Range("A1:A" & Zei - 1).Sort Key1:=.Range("A1"), Order1:=xlAscending, Header:=xlNo, \_
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
.Range("B1:B" & Zei - 1).FormulaLocal = "=ZÄHLENWENN(Tabelle1!A:A;A1)"
.Range("B1:B" & Zei - 1).Value = .Range("B1:B" & Zei - 1).Value
End With
End Sub
Gruß
Reinhard
vielen dank schonmal.
es wär schon wenn das programm in der erste tabelle erst ab A8 die zahlen nimmt, weil davor keine zahlen stehen sondern eine art kopfzeile.
und in der 2. tabelle wär es gut wenn da die erste zeile frei bleibt für überschriften.
sind das grosse programmänderungen?
es wär schon wenn das programm in der erste tabelle erst ab A8
die zahlen nimmt, weil davor keine zahlen stehen sondern eine
art kopfzeile.
und in der 2. tabelle wär es gut wenn da die erste zeile frei
bleibt für überschriften.
Hallo Tobi,
ungetestet:
Sub Zahlen()
Dim Zei As Long, C As Long, colC As New Collection
On Error Resume Next
With Worksheets("Tabelle1")
For Zei = 8 To .Cells(Rows.Count, 1).End(xlUp).Row '1=Spalte A
colC.Add Item:=CStr(.Cells(Zei, 1)), key:=CStr(.Cells(Zei, 1))
Next Zei
End With
On Error GoTo 0
With Worksheets("Tabelle2")
.Range("A:B").ClearContents
.Range("A1").Value = "Zahlen"
.Range("B1").Value = "Anzahl"
For Zei = 1 To colC.Count
.Cells(Zei + 1, 1).Value = Val(colC(Zei))
Next Zei
.Range("A2:A" & Zei - 1).Sort Key1:=.Range("A2"), Order1:=xlAscending, Header:=xlNo, \_
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
.Range("B2:B" & Zei - 1).FormulaLocal = "=ZÄHLENWENN(Tabelle1!A:A;A2)"
.Range("B2:B" & Zei - 1).Value = .Range("B2:B" & Zei - 1).Value
End With
End Sub
Gruß
Reinhard
getestet und funtkioniert
vielen dank
ok neues problem…
ich möchte das jetzt nicht nur für die spalte a machen sondern auch für spalte f…hab es versucht zu ändern funktioniert aber leider nicht so ganz
ok neues problem…
ich möchte das jetzt nicht nur für die spalte a machen sondern
auch für spalte f…hab es versucht zu ändern funktioniert
aber leider nicht so ganz
Hallo Tobi,
stell mal den Curser auf „Cells“ und drücke F1, dann siehst du die Erläuterung zu „Cells“.
Wenn du hier:
With Worksheets("Tabelle1")
For Zei = 8 To .Cells(Rows.Count, 1).End(xlUp).Row '1=Spalte A
colC.Add Item:=CStr(.Cells(Zei, 1)), key:=CStr(.Cells(Zei, 1))
Next Zei
End With
von A auf F wechseln willst, dann so:
With Worksheets("Tabelle1")
For Zei = 8 To .Cells(Rows.Count, **6** ).End(xlUp).Row '1=Spalte A
colC.Add Item:=CStr(.Cells(Zei, **6** )), key:=CStr(.Cells(Zei, **6** ))
Next Zei
End With
F ist die 6te Spalte…
Gruß
Reinhard