Herbers Excel-Forum - das Archiv
Ausgabe der Sheets wo das Maximum vorkommt
Betrifft: Ausgabe der Sheets wo das Maximum vorkommt
von: Nicole M.
Geschrieben am: 10.03.2005 16:16:23
Hallo!
Ich habe einige Sheets in einem Excel-File und suche mit max() immer zB im Feld C4 nach dem Maximumwert, den ich ein neues Sheet speichere. Als zweiten Vergleich würde ich gerne ein Sheet machen wo ich nicht den höchsten Wert sehe, sondern welches Sheet am höchsten war.
Wollte mit dieser Formel beginnen:
=CELL("address";INDEX(Z22:Z33;MATCH(MAX(Z22:Z33);Z22:Z33;0)))
Leider kann ich aber dann nicht statt den Arrays eine Liste mit zB
Sheet1!C6,Sheet2!C4, usw. da einfach reinstopfen.
Weiß dafür vielleicht jemand eine Lösung?
Grüße Nicole
Betrifft: AW: Ausgabe der Sheets wo das Maximum vorkommt
von: ransi
Geschrieben am: 10.03.2005 19:12:28
hallo nicole
das blatt mit dem höchsten wert in c4 kannst du z.B. so finden:
Sub test()
Dim i As Integer
Dim wert As Double
Dim blatt As String
wert = 0
For i = 1 To Worksheets.Count
If Worksheets(i).[c4] > wert Then
wert = Worksheets(i).[c4].Value
blatt = Worksheets(i).Name
End If
Next
MsgBox blatt
End Sub
ist allerdings noch keine fehlerbehandlung drin...
ransi
Betrifft: AW: Ausgabe der Sheets wo das Maximum vorkommt
von: Nicole M.
Geschrieben am: 11.03.2005 08:54:42
Hallo!
Besten Dank für diesen Code. Da ich kein VBA Programmier bin, hab ich noch eine Frage.
Ich möchte c4 jetzt mit einer Variablen zB test(field) aufrufen. Wie folgt, gehts nicht. Wenn ichs ohne Variable aufrufe und wieder c4 einsetzte, gehts einwandfrei.
Function test(field$)
Dim i As Integer
Dim wert As Double
Dim blatt As String
wert = 0
For i = 1 To Worksheets.Count
If Worksheets(i).[field] > wert Then
wert = Worksheets(i).[field].Value
blatt = Worksheets(i).Name
End If
Next
test = blatt
End
Function
Wie gesagt, ich kann kein VBA und fang grad zu lernen an. Danke!!!
Nicole
Betrifft: AW: Ausgabe der Sheets wo das Maximum vorkommt
von: Nicole M.
Geschrieben am: 11.03.2005 08:57:48
Damit keine Missverständnisse aufkommen:
aufrufen tu ich schon =test(c4)
Betrifft: AW: Ausgabe der Sheets wo das Maximum vorkommt
von: Nicole M.
Geschrieben am: 11.03.2005 12:41:10
Habs mit range() gelöst! Was mich aber vor das Probelm stellt, dass folgendes nicht funkt:
=test((CELL("address")))
Betrifft: AW: Ausgabe der Sheets wo das Maximum vorkommt
von: ransi
Geschrieben am: 11.03.2005 13:32:44
Hallo nicole
Die profis mögen jetzt lachen, aber das ist meine erste eigene function.
Probier mal dies:
Option Explicit
Function test(ByVal field As Range) As String
Dim i As Integer
Dim wert As Double
Dim blatt As String
Application.Volatile
wert = 0
If field.Count > 1 Then
test = "XXX"
MsgBox "Keine Mehrfachselektion"
Exit Function
End If
For i = 1 To Worksheets.Count
If IsNumeric(Worksheets(i).Range(field.Address).Value) Then
If Worksheets(i).Range(field.Address).Value > wert Then
wert = Worksheets(i).Range(field.Address).Value
blatt = Worksheets(i).Name
End If
End If
Next
test = blatt
End Function
ransi
Code eingefügt mit
Syntaxhighlighter 3.0