Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1024to1028
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
maximum finden in VBA
13.11.2008 07:22:00
Lars
Hallo zusammen,
ich habe in Excel eine Tabelle, in der in der ersten Zeile Überschriften stehen (B1, B2, B3, ...). Darunter befinden sich die dazugehörigen Werte. Über eine Abfrage suche ich mir nun bestimmte Überschriften (z.B. B1,B3,B4,B7) heraus und lasse mir deren Spalte jeweils in eine Variable "Wert(1) = Spalte_B1, Wert(2) = Spalte_B3 ..." schreiben.
Wie ist es nun möglich, sich den Maximalwert von den gewählten Überschriften ausgeben zu lassen. Da ich nicht zwangsläufig zusammenhängende Zellen habe, fehlt mir ein Ansatz. "Per Hand" würde man alle Zellen einzeln markieren. Wie realisiere ich dies in VBA?
Zur Info: Die Anzahl der gewählten Überschriften ist variabel.
Danke für die Hilfe.
Gruß
Lars

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: maximum finden in VBA
13.11.2008 08:09:00
Reinhard
Moin Lars,
wie sieht diese Abfrage aus?
Sollen die max-Werte markiert werden, doppelte Max-Werte auch, oder sollen sie ausgegeben werde, in einer msgbox?
Gruß
Reinhard
AW: maximum finden in VBA
13.11.2008 13:06:02
Lars
Hallo Reinhard,
wenn ein Wert der Max-Wert ist, soll in eine bestimmte Zelle eine "1", bei Min-Wert eine "-1" und sonst eine "0" eingetragen werden.
Gruß
Lars
AW: maximum finden in VBA
13.11.2008 10:21:00
Erich
Hallo Lars,
hilft dir das hier?

Option Explicit
Sub myMax()
Dim lngZ As Long, zz As Long, Wert() As Long, rngM As Range
'  --- Dieser Teil dient nur der Auswahl - ist bei dir anders.
lngZ = Cells(Rows.Count, 12).End(xlUp).Row - 1
ReDim Wert(1 To lngZ)
For zz = 1 To lngZ
Wert(zz) = Cells(zz + 1, 12)
Next zz
'  --- Zusammenbau des Bereichs, über den das Max. bestimmt wird
Set rngM = Columns(Wert(1))
For zz = 2 To lngZ
Set rngM = Union(rngM, Columns(Wert(zz)))
Next zz
MsgBox Application.Max(rngM) & " von Bereich " & rngM.Address(0, 0), , "Max"
End Sub

Und hier die Mappe dazu: https://www.herber.de/bbs/user/56733.xls
(Die Spalten G bis K sind nur zum Testen.)
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: maximum finden in VBA
13.11.2008 14:08:37
Lars
Hallo Erich,
bei der Ausführung deines Makros ist mir aufgefallen, dass meine Problembeschreibung falsch ist.
Hier also nochmal:
Ich habe mir die Spalten der gewünschten Überschriften in die Variablen Wert(i) schreiben lassen.
Angenommen die Überschriften stehen in Zeile 1.
Entsprechende Werte zu den Überschriften stehen dann z.B. in den Zeilen 2 bis 5.
Nun möchte ich mir das Maximum (zeilenweise) von den gewählten Überschriften ausgeben lassen.
Also aus Zeile 2 Max(Wert(1);Wert(3);Wert(6)...); aus Zeile 3 Max(Wert(1);Wert(3);Wert(6)...)
Hast du da eine Idee?
Danke
Gruß
Lars
Anzeige
AW: maximum finden in VBA
13.11.2008 16:36:00
Erich
Hi Lars,
manchmal ist es schwer, eine Aufgabenstellung präzise abzufassen.
Da hilft dann meist eine Beispielmappe mit dem gewünschten Ergebnis sehr gut.
Du musstest jetzt eine solche Mappe gar nicht mehr erstellen, hättest einfach die Mappe,
die ich gepostet hatte, ergänzen und hier einstellen können.
Vielleicht triffts jetzt das hier:

Sub myMax()
Dim lngS As Long, lngZ As Long, zz As Long, Wert() As Long, dblM As Double
'  --- Dieser Teil dient nur der Auswahl - ist bei dir anders.
lngS = Cells(Rows.Count, 12).End(xlUp).Row - 1
ReDim Wert(1 To lngS)
For zz = 1 To lngS
Wert(zz) = Cells(zz + 1, 12)
Next zz
For lngZ = 2 To 8       ' Schleife über Zeilen
dblM = -9E+99
For zz = 1 To lngS   ' Ermitteln Max. über gewählte Zellen
dblM = Application.Max(dblM, Cells(lngZ, Wert(zz)))
Next zz
Cells(lngZ, 13) = IIf(dblM > -9E+99, dblM, "Kein Wert")  ' Ausgabe in Sp. 13
Next lngZ
End Sub

Für jede Zeile (von 2 bis 8 wird das Max. in Spalte M (13) ausgegeben.
Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige

310 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige