[VBA] Array String und Summe zuweisen

Sebastian2003

Lieutenant
Registriert
Sep. 2007
Beiträge
646
Ich habe eine Liste in Excel mit 6 Ländern, die jeweils in 5 Quartalen 5 verschiedene Koeffizienten besitzten.
Nun möchte ich diese Koeffizienten aufsummieren und nach Größe sortieren( dabei sollen nur die größten 4 Summen der jeweiligen Länder ausgegeben werden). Zusätzlich möchte ich neben diese Summen die jeweiligen Ländernamen schreiben.



Mein bisheriger Code:

Dim i As Integer
Dim k As Integer
Dim j As Integer
Dim summe As Double
Dim summen() As Double
Dim namen() As String
Dim max As Double
Dim name As Variant


ReDim namen(6)

ReDim summen(6)

i = 1
j = 1

For i = 1 To 6
summe = 0
namen(i) = Range("Anker").Offset(i, 0)


For j = 1 To 4
summe = summe + Range("Anker").Offset(i, j)

Next j
summen(i) = summe
Next i

i = 1

For k = 1 To 4
For i = 1 To 6
For j = 1 To 6
If summen(i) > summen(j) Then
a = summen(i)
summen(i) = summen(j)
summen(j) = a


End If
Next j
Next i
Range("Anker").Offset(10, k) = summen(k)
Range("Anker").Offset(11, k) = namen(k)

Next k

End Sub

Wie kann ich dem Array auch die jeweiligen Namen zuweisen, so dass die Namen auch den richtigen Summen entsprechen?
 
am simpelsten dürfte Diese Lösung sein (hinzugefügte Zeilen rot markiert):

For k = 1 To 4
For i = 1 To 6
For j = 1 To 6
If summen(i) > summen(j) Then
a = summen(i)
summen(i) = summen(j)
summen(j) = a
b = namen(i)
namen(i) = namen(j)
namen(j) = b
End If
Next j
Next i
Range("Anker").Offset(10, k) = summen(k)
Range("Anker").Offset(11, k) = namen(k)
Next k

Einfach das Namen Array gleichzeitig mit dem Summen Array umsortieren, dann müssten rein theoretisch die Werte bei der Ausgabe auch wieder einwandfrei stimmen.

Aber keine Garantie, habe schon lange so was nicht mehr gemacht, von daher kann ich auch daneben liegen
 
Hat geklappt! vielen Dank!
 
Zurück
Oben