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

Bei vorhandenem Wert PopUp-Fenster

Forumthread: Bei vorhandenem Wert PopUp-Fenster

Bei vorhandenem Wert PopUp-Fenster
08.03.2022 15:32:25
OzziT
Hallo ich habe ein kleines Problem, was ich einfach nicht lösen konnte, weil mir die VBA Kenntnisse dazu fehlen.
Ich habe zwei Tabellenblätter.
-In Tabellenblatt 1 "Personen" soll in Spalte B was reingeschrieben werden.
-Tabellenblatt 2 "Zahlen" Spalte A soll überprüft werden, ob Wert schon vorhanden ist.
-Falls ja: "Wert da, bitte überprüfen" als PopUp.
Datenüberprüfung hat nicht funktioniert und trifft auch nicht genau das Ziel, weil es mich sonst ja nicht den Wert eintragen lassen würde.
Um eine MsgBox in VBA zu erstellen bin ich nicht erfahren genug.
Kann mir jemand da helfen? =)
Anzeige

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bei vorhandenem Wert PopUp-Fenster
08.03.2022 17:19:54
ChrisL
Hi

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 2 And Target  "" Then
If WorksheetFunction.CountIf(Worksheets("Zahlen").Columns(1), Target) Then _
MsgBox "Wert da, bitte überprüfen"
End If
End Sub
Alt+F11, links Doppelklick auf Tabelle "Personen", Code einfügen.
Der Code ist nicht auf die Änderung mehrere Zellen gleichzeitig (Copy/Paste) ausgerichtet.
cu
Chris
Anzeige
AW: Bei vorhandenem Wert PopUp-Fenster
09.03.2022 08:09:55
OzziT
Danke.. Manchmal kann es so einfach sein
AW: Bei vorhandenem Wert PopUp-Fenster
09.03.2022 08:47:09
OzziT
Und wie kriege ich als Zusatz noch hin, dass er mir die Nachbarzellen in die MsgBox mit einbaut?
Quasi ich gebe was in Spalte A ein. Spalte B4 (zB) wird der Wert gefunden und jetzt soll er mir in der MsgBox so etwas wie: "Wert vorhanden, Preis (Wert C4) in Währung (Wert D4)" ausspucken.
Danke erneut!
Anzeige
AW: Bei vorhandenem Wert PopUp-Fenster
09.03.2022 09:18:05
hary
Moin

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Treffer As Variant
If Target.CountLarge > 1 Then Exit Sub
If Target.Column = 1 And Target  "" Then '--Eingabe SpalteA und nicht leer
With Worksheets("Zahlen")
Treffer = Application.Match(Target, Worksheets("Zahlen").Columns(1), 0)
If IsNumeric(Treffer) Then
MsgBox "Wert vorhanden, Preis " & .Cells(Treffer, 4) & " in Währung " & .Cells(Treffer, 3)
Else
MsgBox "Eingabe nicht vorhanden"
End If
End With
End If
End Sub
gruss hary
Anzeige
korrektur
09.03.2022 09:38:05
hary
Moin
Du moechtest ja in SpalteB den Wert finden.
ersetz mal

Worksheets("Zahlen").Columns(1)
durch

Worksheets("Zahlen").Columns(2)
gruss hary
AW: Bei vorhandenem Wert PopUp-Fenster
09.03.2022 09:22:47
Pierre
Hallo Ozzi,
einfach deine Zeile MsgBox so umbauen:

MsgBox "Wert da, Preis " & Target.Offset(1, 0) & " in Währung " & Target.Offset(2, 0)
Gruß Pierre
Anzeige
AW: Bei vorhandenem Wert PopUp-Fenster
09.03.2022 13:11:07
OzziT
Die MsgBox taucht auf. Baut aber die gesuchten Werte nicht in die MsgBox mit rein
bei mir schon (owT) (bsp-Mappe!?)
09.03.2022 13:17:57
Pierre
AW: bei mir schon (owT) (bsp-Mappe!?)
09.03.2022 13:25:27
OzziT
Oh vllt habe ich mich falsch ausgedrückt. Mit deinem Code werden die Werte in die MsgBox eingetragen die beschriftet und nach der gesucht wird.
Es sollen aber die Werte neben dem gefundenen Wert also im Blatt "Zahlen" einsetzt werden =)
Anzeige
AW: bei mir schon (owT) (bsp-Mappe!?)
09.03.2022 13:35:47
Pierre
Möglicherweise habe ich was durcheinander gebracht, versuch doch mal harys Vorschlag.
Gruß Pierre
AW: bei mir schon (owT) (bsp-Mappe!?)
09.03.2022 13:42:46
OzziT
Habe es tatsächlich so hinbekommen wie ich es wollte. Harrys Vorschlag ist ziemlich gut gewesen. Danke trotzdem. Nur aus reiner Neugier. Der Code funktioniert ja nicht wenn mehrere Zellen kopiert und eingefügt werden. Ist das technisch überhaupt möglich das bei Einfügen mehrerer Zeilen suchen zu lassen?
Anzeige
AW: auch mehrere Zellen
10.03.2022 07:52:05
hary
Moin
Dann so.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Treffer As Variant
Dim Zelle As Range
Dim strText As String
For Each Zelle In Intersect(Target, Columns(1))
If Zelle  "" Then  '--Zelle nicht leer
With Worksheets("Zahlen")
Treffer = Application.Match(Zelle, .Columns(2), 0)
If IsNumeric(Treffer) Then
strText = strText & Zelle & " , Preis " & .Cells(Treffer, 4) & " in Währung " & .Cells(Treffer, 3) & Chr(13)
End If
End With
End If
Next
If strText  "" Then MsgBox strText, , "vorhandene Werte"
End Sub
gruss hary
Anzeige
AW: sry, Codezeile vergessen jetzt aber
10.03.2022 08:10:07
hary
Moin nochemal
So ist es richtig.

Private Sub Worksheet_Change(ByVal Target As Range)
Dim Treffer As Variant
Dim Zelle As Range
Dim strText As String
If Target.Column  1 Then Exit Sub
For Each Zelle In Intersect(Target, Columns(1))
If Zelle  "" Then  '--Zelle nicht leer
With Worksheets("Zahlen")
Treffer = Application.Match(Zelle, .Columns(2), 0)
If IsNumeric(Treffer) Then
strText = strText & Zelle & " , Preis " & .Cells(Treffer, 4) & " in Währung " & .Cells(Treffer, 3) & Chr(13)
End If
End With
End If
Next
If strText  "" Then MsgBox strText, , "vorhandene Werte"
End Sub
gruss hary
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige