Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1548to1552
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
Inhaltsverzeichnis

VBA Zellenabfrage und Maximumsuche

VBA Zellenabfrage und Maximumsuche
04.04.2017 19:37:04
Juan
Hallo Zusammen,
ich habe folgendes Problem:
ich möchte nach einem Wert X, den ich über eine TextBox-Eingabe definiert habe, in A20:A60 suchen und anschließend aus der entsprechenden Zeile das Maximum abfragen und über MsgBox ausgeben lassen.
Beispiel: TextBox.Value = 100
Spalte A wird nach dem Wert 100 durchsucht und in A30 gefunden und die Zellen B30:AL30 nach dem Maximum durchsucht und ausgegeben.
Ich hoffe ich konnte mein Problem verständlich machen und ihr habt eine Lösung für mich :)
LG Juan

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Zellenabfrage und Maximumsuche
04.04.2017 20:15:53
Werner
Hallo Juan,
ich bin mal davon ausgegangen, dass in Spalte A nach Ganzzahlen (long) gesucht wird.
Private Sub CommandButton1_Click()
Dim loZeile As Long
Dim raBereich As Range
Dim raMaxBereich As Range
With Sheets("Tabelle1") 'Blatt anpassen
Set raBereich = .Range(.Cells(20, 1), .Cells(60, 1))
On Error Resume Next
loZeile = raBereich.Find(what:=CLng(TextBox1.Value)).Row 'Name Textbox anpassen
If loZeile > 0 Then
Set raMaxBereich = .Range(.Cells(loZeile, 2), .Cells(loZeile, 38))
Unload Me
MsgBox Application.Max(raMaxBereich)
Else
Unload Me
MsgBox "Zahl nicht gefunden."
End If
End With
Set raBereich = Nothing
Set raMaxBereich = Nothing
On Error GoTo 0
End Sub
Gruß Werner
Anzeige
AW: VBA Zellenabfrage und Maximumsuche
05.04.2017 10:47:37
Juan
Super, vielen Dank Werner!
In meiner Tabelle sind die Werte einer bestimmten Distanz (Spalte A) einer bestimmten Zeit (Zeile 19) zugeordnet. Wäre es möglich noch zusätzlich ausgeben zu lassen zu welchem Zeitpunkt, also Wert in Zeile 19, das Maximum angetroffen wird?
LG Juan
AW: VBA Zellenabfrage und Maximumsuche
05.04.2017 11:24:19
Werner
Hallo Juan,
wenn ich dich richtig verstanden habe dann:
Private Sub CommandButton1_Click()
Dim loZeile As Long
Dim loMax As Double
Dim raBereich As Range
Dim raMaxBereich As Range
With Sheets("Tabelle1") 'Blatt anpassen
Set raBereich = .Range(.Cells(20, 1), .Cells(60, 1))
On Error Resume Next
loZeile = raBereich.Find(what:=CLng(TextBox1.Value)).Row 'Name Textbox anpassen
If loZeile > 0 Then
Set raMaxBereich = .Range(.Cells(loZeile, 2), .Cells(loZeile, 38))
Unload Me
loMax = Application.Max(raMaxBereich)
loSpalte = .Rows(loZeile).Find(what:=loMax).Column
MsgBox "Maximum ist " & loMax & " um " & .Cells(19, loSpalte).Text & " Uhr"
Else
Unload Me
MsgBox "Zahl nicht gefunden."
End If
End With
Set raBereich = Nothing
Set raMaxBereich = Nothing
On Error GoTo 0
End Sub
Gruß Werner
Anzeige
AW: VBA Zellenabfrage und Maximumsuche
05.04.2017 14:49:07
Juan
Hallo Werner,
leider funktioniert es nicht. loSpalte war nicht definiert, das habe ich noch ergänzt. Wenn ich das skript aber ausführe passiert nichts. Ich habe dann mal etwas rumprobiert und bemerkt, wenn ich
& .Cells(19, loSpalte).Text & " Uhr" 

auskommentiere, dann funktioniert es bis dahin. Das heißt dort dürfte der Fehler liegen. Leider habe ich es nicht selbst geschafft hinter den Fehler zu kommen.
Gruß Juan
AW: VBA Zellenabfrage und Maximumsuche
05.04.2017 15:15:26
Werner
Hallo Juan,
Dann lade mal eine Beispielmappe mit ein paar Daten hoch.
Gruß Werner
AW: VBA Zellenabfrage und Maximumsuche
05.04.2017 15:29:43
Juan
Hallo Werner,
hier meine Tabelle: https://www.herber.de/bbs/user/112665.xlsm
Gruß Juan
Anzeige
AW: VBA Zellenabfrage und Maximumsuche
06.04.2017 16:43:23
Werner
Hallo Juan,
probier mal:
Option Explicit
Private Sub CommandButton2_Click()
Unload Me
End Sub
Private Sub CommandButton1_Click()
Dim loZeile As Long
Dim loSpalte As Long
Dim loMax As Double
Dim sngAusgabe As Single
Dim raBereich As Range
With Sheets("Test") 'Blatt anpassen
Set raBereich = .Range(.Cells(24, 1), .Cells(60, 1))
On Error Resume Next
loZeile = raBereich.Find(what:=CDbl(TextBox1.Value)).Row 'Name Textbox anpassen
If loZeile > 0 Then
loMax = WorksheetFunction.Max(.Range(.Cells(loZeile, 2), .Cells(loZeile, 38)))
loSpalte = Application.Match(loMax, .Rows(loZeile), 0)
sngAusgabe = loMax
MsgBox "Ausgabeversion 1" & vbLf & vbLf & _
"Maximum ist " & sngAusgabe & vbLf & _
" um " & .Cells(21, loSpalte).Value
MsgBox "Ausgabeversion 2" & vbLf & vbLf & _
"Maximum ist " & loMax & vbLf & _
" um " & .Cells(21, loSpalte).Value
Unload Me
Else
Unload Me
MsgBox "Zahl nicht gefunden."
End If
End With
Set raBereich = Nothing
On Error GoTo 0
End Sub
Ob dir Max tatsächlich die richtigen Werte liefert musst du selbst noch prüfen. Exponential ist jetzt nicht unbedingt meine Baustelle.
Gruß Werner
Anzeige
AW: VBA Zellenabfrage und Maximumsuche
07.04.2017 11:10:18
Juan
Hallo Werner,
super, funktioniert alles! Die Maxima sind auch korrekt. Vielen Dank für deine Hilfe
Gruß Juan
Gerne u. Danke für die Rückmeldung. o.w.T.
07.04.2017 11:17:10
Werner

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige