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

Forumthread: PopUp Fenster bei bestimmtem Wert

PopUp Fenster bei bestimmtem Wert
24.03.2018 12:19:59
Thomas
Hallo Zusammen,
würde gerne in VBA ein Macro bzw Worksheet haben, das ausgeführt wird, wenn ein bestimmter Wert in einer DropDown-Liste ausgewählt wird.
Sobald der Wert ausgewählt wird , sollte ein PopUp Fenster mit einer Information aufgehen.
Habe hier schon was gefunden aber habe Probleme es für mich anzupassen.
habe zwei Werte die Ausgewählt werden können ( X51 & X52 ) bei beiden müssen Fenster mit unterschiedlichem Inhalt aufgehen. Info Inhalt anpassen ist kein Prob. aber sobald ich die anpassen will in X51 bekomme ich eine Fehlermeldung.
Kann mir da jemand weiterhelfen :-)
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("S14:S109")) Is Nothing Then
If Target.Count = 1 And Target = 1 Then
MsgBox "Du hast Derivat X gewählt!", vbInformation, "Hinweis für " & _
Application.UserName
End If
End If
End Sub

Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: PopUp Fenster bei bestimmtem Wert
24.03.2018 12:22:29
Hajo_Zi
If Target.Count = 1 And Target = 1 and Target ="X51"Then
MsgBox "Du hast Derivat X51 gewählt!", vbInformation, "Hinweis für " & _
Application.UserName
elseIf Target.Count = 1 And Target = 1 and Target ="X52"Then
MsgBox "Du hast X52 gewählt!", vbInformation, "Hinweis für " & _
Application.UserName
End If

Beiträge von Werner, Luc, robert, J.O.Maximo und folgende lese ich nicht.
Anzeige
AW: PopUp Fenster bei bestimmtem Wert
24.03.2018 12:52:01
Thomas
Danke für die schnelle Antwort bekomme aber eine Fehlermeldung:
Fehler beim Kompilieren.:
"End If" ohne If-Block.
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count = 1 And Target = 1 And Target = "X51" Then
MsgBox "Du hast Derivat X51 gewählt!", vbInformation, "Hinweis für " & _
Application.UserName
ElseIf Target.Count = 1 And Target = 1 And Target = "X52" Then
MsgBox "Du hast X52 gewählt!", vbInformation, "Hinweis für " & _
Application.UserName
End If
End If
End Sub

Anzeige
AW: PopUp Fenster bei bestimmtem Wert
24.03.2018 12:54:47
Hajo_Zi
man sollte mit Einrückungen arbeiten, da fällt auf das das End If am Ende Zu viel ist. Das war bei mir nicht.
Gruß Hajo
AW: PopUp Fenster bei bestimmtem Wert
24.03.2018 13:10:36
Thomas
Hab´s jetzt genauso noch mal anpasst..bekomms aber irgendwie net hin, bekomme immer die gleiche Fehlermeldung
:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("S14:S109")) Is Nothing Then
If Target.Count = 1 And Target = 1 And Target = "X51" Then
MsgBox "Du hast Derivat X51 gewählt!", vbInformation, "Hinweis für " & _
Application.UserName
ElseIf Target.Count = 1 And Target = 1 And Target = "X52" Then
MsgBox "Du hast X52 gewählt!", vbInformation, "Hinweis für " & _
Application.UserName
End If
End Sub

Anzeige
AW: PopUp Fenster bei bestimmtem Wert
24.03.2018 13:24:49
Hajo_Zi
lösche "And Target = 1 "
Gruß Hajo
AW: PopUp Fenster bei bestimmtem Wert
24.03.2018 13:58:22
fcs
Hallo Thomas,
gestalte das Makro etwas übersichtlicher.
Gruß
Franz
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MsgText As String
If Not Intersect(Target, Range("S14:S109")) Is Nothing Then
If Target.Count = 1 Then
Select Case Target.Value
Case "X51"
MsgText = "Du hast Derivat """ & Target.Value & """  gewählt!"
Case "X52"
MsgText = "Du hast Derivat """ & Target.Value & """  gewählt!"
Case Else
'do nothing
End Select
If MsgText  "" Then
MsgBox MsgText, vbInformation, "Hinweis für " & Application.UserName
End If
End If
End If
End Sub

oder wenn tatsächlich nur der Name des gewählten Derivats im sonst identischen Text angezeigt werden soll.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MsgText As String
If Not Intersect(Target, Range("S14:S109")) Is Nothing Then
If Target.Count = 1 Then
Select Case Target.Value
Case "X51", "X52"
MsgBox "Du hast Derivat """ & Target.Value & """  gewählt!", _
vbInformation, "Hinweis für " & Application.UserName
Case Else
'do nothing
End Select
End If
End If
End Sub

Anzeige
AW: PopUp Fenster bei bestimmtem Wert
24.03.2018 14:51:21
Thomas
Danke für die super Hilfe ..funktioniert super gut :-) genauso wollte ich das.
Besteht auch die Möglichkeit das PopUp Fenster farblich anzuzeigen z.b Case 1 in grün & case 2 in blau.
Die Schrift fett.
Das wäre dann noch das Highlight dazu ,
VG
Thomas
AW: PopUp Fenster bei bestimmtem Wert
24.03.2018 16:06:36
fcs
Hallo Thomas,
die VBA-MsgBox gibt leider nicht mehr her.
Dazu muss man sich ein kleines Userform erstellen, dessen Steuerelemente man manuell oder per Makro einstellen kann.
Beispiel-Datei:
https://www.herber.de/bbs/user/120654.xlsm
Gruß
Franz
Anzeige
AW: PopUp Fenster bei bestimmtem Wert
24.03.2018 17:21:56
Thomas
Genauso..die wäre völlig ausreichend für mich so.....
Hab noch keine große Erfahrung mit UserForm erstellen.. aber ich probiere mal..danke schon mal
AW: PopUp Fenster bei bestimmtem Wert
24.03.2018 18:25:30
Thomas
Habe die UserForm importier.. läuft super..wie kann ich die UserForm erweitern um eine Zelle.. würde da gerne nach gewählt noch eine neue Zelle haben mit dem Inhalt : Bitte in Box Nr.1 (bei der X51) und bei der andern Bitte in Box Nr.2 (bei der X52) stehen haben, in fetter Schrift..finde aber nirgends einen Button um die UserForm zu bearbeiten.
Dann wäre es perfekt :-)
Danke euch beiden für die super Hilfe , ihr habt mir schonmal super weitergeholfen
Anzeige
AW: PopUp Fenster bei bestimmtem Wert
24.03.2018 19:07:43
Thomas
Kann auf meinem Mac mit der 2016 Version leider die UserForm weder anzeigen noch bearbeiten..wäre super wenn du mir die Userform anpassen könntest.
Hinweis ist noch ein Schreibfehler drin :-)
AW: PopUp Fenster bei bestimmtem Wert
25.03.2018 11:41:27
Thomas
Hallo Zusammen, hab mir jetzt mal den Rechner vom Nachbarn besorgt mit Windows :-) und konnte die UserForm bearbeiten.Wenn ich jetzt für beide Derivate X51 &X52 eine separate UserForm habe( mit Bild) und die gerne bei Auswahl (Dropdown-Liste) auf popen sehen würde , wie kann ich das in dem Makro am besten um schreiben: Name UserForm 1 ( UF_Info_X51 ) & UserForm 2 ( UF_Info_X52) :
LG Thomas
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MsgText As String
If Not Intersect(Target, Range("S14:S109")) Is Nothing Then
If Target.Count = 1 Then
With UF_Info
.txbUser = Application.UserName
With .txbDerivatName
Select Case Target.Value
Case "X51"
.Value = Target.Value
.BackColor = RGB(0, 255, 0)     'grün
.ForeColor = RGB(0, 0, 0)       'schwarz
Case "X52"
.Value = Target.Value
.BackColor = RGB(0, 0, 255)     'blau
.ForeColor = RGB(255, 255, 0)   'gelb
Case Else
'do nothing
End Select
End With
.Show
End With
End If
End If
End Sub

Anzeige
AW: PopUp Fenster bei bestimmtem Wert
25.03.2018 18:58:02
fcs
Hallo Thomas,
wenn du für jedes Derivat ein separates Userform erstellst, dann musst du nur noch den Usernamen in eine Textbox übergeben.
Falls die User in einem Netzwerk arbeiten, dann ist es ggf sinnvoll statt des Office Usernamens, der für die Anwendung lokal eingegeben wird, den Anmeldenamen für Windows anzuzeigen.
Private Sub Worksheet_Change(ByVal Target As Range)
Dim MsgText As String
If Not Intersect(Target, Range("S14:S109")) Is Nothing Then
If Target.Count = 1 Then
Select Case Target.Value
Case "X51"
With UF_Info_X51
.txbUser = Application.UserName
'                        .txbUser = VBA.Environ("Username") 'Windows-Anmeldename
.Show
End With
Case "X52"
With UF_Info_X52
.txbUser = Application.UserName
'                        .txbUser = VBA.Environ("Username") 'Windows-Anmeldename
.Show
End With
Case Else
'do nothing
End Select
End If
End If
End Sub
bezüglich Problemen auf dem Mac:
Prüfe mal im VBA-Editor ob für die Datei im VBA-Editor alle notwendigen Verweise gesetzt sind.
Unter Windows sieht es bei mir wie folgt aus:
Userbild
Die Versionen der Verweise können bezüglich der jeweiligen Versionen unterschiedlich sein.
Wenn du die Datei mal unter Windows, mal auf dem Mac öffnest/bearbeitest kann es sein, das du jeweils Anpssungen machen musst.
Gruß
Franz
Anzeige
AW: PopUp Fenster bei bestimmtem Wert
25.03.2018 20:27:03
Thomas
Alles nochmal angepasst und jetzt funzt alles so wie ich mir das gewünscht habe :-)...Auf diesem Weg nochmal ganz großes Lob an euch und herzlichen Dank für eure Hilfe, ihr seit super hier.
VG
Thomas
AW: PopUp Fenster bei bestimmtem Wert
24.03.2018 13:19:41
Nepumuk
Hallo Thomas,
teste mal:
Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("S14:S109")) Is Nothing Then
        If Target.Count = 1 Then
            If Target.Value = "X51" Then
                MsgBox "Du hast Derivat X51 gewählt!", vbInformation, "Hinweis für " & _
                    Application.UserName
            ElseIf Target.Value = "X52" Then
                MsgBox "Du hast Derivat X52 gewählt!", vbInformation, "Hinweis für " & _
                    Application.UserName
            End If
        End If
    End If
End Sub

Gruß
Nepumuk
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

PopUp Fenster in Excel bei bestimmten Werten erstellen


Schritt-für-Schritt-Anleitung

  1. Öffne den VBA-Editor: Drücke ALT + F11 in Excel.

  2. Finde das entsprechende Arbeitsblatt: Doppelklicke auf das Arbeitsblatt, in dem du das PopUp Fenster erstellen möchtest.

  3. Füge den folgenden Code ein:

    Private Sub Worksheet_Change(ByVal Target As Range)
       If Not Intersect(Target, Range("S14:S109")) Is Nothing Then
           If Target.Count = 1 Then
               Select Case Target.Value
                   Case "X51"
                       MsgBox "Du hast Derivat """ & Target.Value & """ gewählt!", vbInformation, "Hinweis für " & Application.UserName
                   Case "X52"
                       MsgBox "Du hast Derivat """ & Target.Value & """ gewählt!", vbInformation, "Hinweis für " & Application.UserName
                   Case Else
                       'do nothing
               End Select
           End If
       End If
    End Sub
  4. Schließe den VBA-Editor: Speichere deine Änderungen und kehre zurück zu Excel.

  5. Teste das PopUp: Wähle in der DropDown-Liste einen der Werte (X51 oder X52) aus, um zu sehen, ob das PopUp Fenster erscheint.


Häufige Fehler und Lösungen

  • Fehler: "End If" ohne If-Block:

    • Überprüfe, ob die Einrückungen korrekt sind. Achte darauf, dass jeder If-Block korrekt geöffnet und geschlossen wird.
  • Kein PopUp Fenster:

    • Stelle sicher, dass das Arbeitsblatt korrekt ausgewählt ist und dass die Zelle, die du änderst, im Bereich S14:S109 liegt.
  • Fehler beim Kompilieren:

    • Überprüfe den Code auf Tippfehler und stelle sicher, dass alle Bedingungen korrekt formuliert sind.

Alternative Methoden

  • Excel Popup ohne VBA: Du kannst auch Datenüberprüfung verwenden, um die Eingabe zu steuern, jedoch ist das Erstellen eines PopUp Fensters ohne VBA nicht möglich.

  • UserForms verwenden: Erstelle ein UserForm, wenn du ein komplexeres Popup benötigst, das mehr Interaktivität bietet (z.B. Textfelder, Schaltflächen).


Praktische Beispiele

  1. Einfaches PopUp Fenster:

    • Verwende den oben erwähnten Code, um ein einfaches Excel Hinweis Popup zu erstellen.
  2. Farbige UserForms:

    • Erstelle separate UserForms für X51 und X52, um unterschiedliche Inhalte und Farben zu präsentieren.
    With UF_Info
       .txbUser = Application.UserName
       Select Case Target.Value
           Case "X51"
               .BackColor = RGB(0, 255, 0) ' grün
           Case "X52"
               .BackColor = RGB(0, 0, 255) ' blau
       End Select
       .Show
    End With

Tipps für Profis

  • Verwende Select Case: Das macht deinen Code übersichtlicher, besonders wenn mehr als zwei Werte zu prüfen sind.
  • Nutze UserForms: Für eine bessere Benutzeroberfläche. Diese kannst du farblich anpassen und gestalten.
  • Fehlerbehandlung einfügen: Um unerwartete Fehler abzufangen, füge Fehlerbehandlungsroutinen hinzu.

FAQ: Häufige Fragen

1. Wie kann ich das PopUp Fenster farblich anpassen? Du kannst die Hintergrund- und Schriftfarbe in den UserForms anpassen, indem du die Eigenschaften BackColor und ForeColor benutzt.

2. Ist es möglich, ein PopUp Fenster ohne VBA zu erstellen? Nein, ein echtes PopUp Fenster in Excel ist nur über VBA möglich. Du kannst jedoch einfache Datenüberprüfungen nutzen, um Nutzerwarnungen anzuzeigen.

3. Wie kann ich den Code auf andere Zellen anwenden? Ändere den Bereich in der Intersect-Funktion, um andere Zellen zu integrieren, z.B. Range("A1:A10").

4. Gibt es eine Möglichkeit, das PopUp Fenster beim Öffnen anzuzeigen? Ja, du kannst den Code in das Workbook_Open-Ereignis einfügen, um das PopUp beim Öffnen der Datei anzuzeigen.

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