Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Zelle finden dann UserForm öffnen

Zelle finden dann UserForm öffnen
13.09.2024 20:24:09
Excelfan1
Hallo zusammen,

ich schon wieder.

Da mir die Schrift in einer MsgBox zu klein ist habe ich das UserForm2 erstellt.
Das UF2 soll sich aber nur öffnen wenn folgendes passiert:
Im UserForm1 gibt es eine ComboBox. Wird eine Auswahl getroffen soll dieser Wert in Spalte O gesucht werden.
Nur wenn in der betreffenden Zeile die Summe der Spalten R:T kleiner dem Wert in Spalte P ist soll sich das UF2 öffnen und dann als Text den Wert der Spalte O und die Summe der Spalten R:T ausgeben.
Mit dem Code
Private Sub ComboBox1_Change()

Dim rng As Range
Dim rng1 As Range
Dim iRow As Range

With Worksheets("Tabelle1")
Set rng = .Range("o8:o14")
For Each iRow In rng.Rows
If ComboBox1.Value > "" Then
If Application.Sum(.Range(.Cells(iRow.Row, 18), .Cells(iRow.Row, 20))) > .Cells(iRow.Row, 16) Then
UserForm2.Show
UserForm2.TextBox1.Text = "Auswahl " & _
Cells(iRow.Row, 15).Text & " " & Application.Sum(.Range(.Cells(iRow.Row, 18), .Cells(iRow.Row, 20))) & " Punkte"
End If
End If
Next iRow
End With
End Sub
öffnet sich das UF2 immer und zeigt für alle Werte der Zeilen 8 bis 14, deren Summe der Spalten R:T kleiner dem Wert in Spalte P ist, den Text an.

In dem Code fehlt also, daß nur die Zeile gefunden werden soll, deren Wert der Spalte O der Auswahl der ComboBox entspricht.

Kann mir bitte jemand helfen.
Datei anbei https://www.herber.de/bbs/user/172195.xlsm

Vielen Dank vorab

Gruß Excelfan1
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Zelle finden dann UserForm öffnen
13.09.2024 21:21:03
Alwin Weisangler
Hallo,

das sollte für deine Zwecke ausreichen.



Option Explicit

Private Sub ComboBox1_Change()
Dim Fund As Variant
With Worksheets("Tabelle1")
Fund = Application.Match(ComboBox1.Text, .Columns(15), 0)
If Not IsError(Fund) Then
If .Cells(Fund, 22) .Cells(Fund, 16) Then
UserForm2.TextBox1.Text = "Auswahl " & .Cells(Fund, 22)
UserForm2.Show
End If
End If
End With
End Sub


Gruß Uwe
Anzeige
AW: Zelle finden dann UserForm öffnen
14.09.2024 09:18:11
Alwin Weisangler
Hallo Excelfan,

ich hatte vergessen die Funktion .Sum() einzubauen.
Da musst du nur iRow.Row gegen Fund austauschen.
Ich denke, dass du das selbst hinbekommst.

Gruß Uwe
AW: Zelle finden dann UserForm öffnen
14.09.2024 13:44:07
Excelfan1
Hallo Uwe,

super!

Vielen herzlichen Dank

LG von Excelfan1
AW: Zelle finden dann UserForm öffnen
14.09.2024 14:14:19
Alwin Weisangler
Man kann den Code ohne Funktionalitätseinschränkung auf 4 Zeilen schrumpfen:


Private Sub ComboBox1_Change()
Dim Fund As Variant: Fund = Application.Match(ComboBox1.Text, Tabelle1.Columns(15), 0)
If Not IsError(Fund) And Tabelle1.Cells(Fund, 22) Tabelle1.Cells(Fund, 16) Then UserForm2.TextBox1.Text = "Auswahl " & Application.Sum(Tabelle1.Range(Tabelle1.Cells(Fund, 18), Tabelle1.Cells(Fund, 20))) & " Punkte": UserForm2.Show
End Sub

Der Code ist dann so nicht mehr wirklich gut lesebar.

Gruß Uwe

Anzeige
AW: Zelle finden dann UserForm öffnen
15.09.2024 12:32:25
Excelfan1
Uwe, danke für deine erneute Antwort.
Ich lasse es jetzt so wie du in deiner ersten, bzw. zweiten Antwort vorgeschlagen hast.
Damit funkioniert es einwandfrei.

LG Excelfan1

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige