Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

MsgBox aktivieren


Betrifft: MsgBox aktivieren von: Georg
Geschrieben am: 13.09.2017 10:59:13

Hallo liebe Excel Fans:
Folgender Code:

Sub Worksheet_Wert()

 If ActiveSheet.range("N13").Value > range("Grenze20Proz") Then

 MsgBox "Überstundengrenze überschritten! Wenden Sie sich an ihren Vorgesetzen!"

 End If
 
End Sub
Das Makro steht in Modul 1. Es sind Blätter von Jan - Dez da.
Werte werden jedoch in Spalten C, D, G eingetragen, N13 ist ein reines Rechenfeld, "Grenze20Proz" ist ein ExcelName und steht woanders.
Letztendlich: es tut sich nix, wenn N13 größer wird als "Grenze20Proz"? Also keine Ausgabe der MsgBox,woran liegt das? Danke.

  

Betrifft: AW: N13 ist ein reines Rechenfeld von: Gerd L
Geschrieben am: 13.09.2017 11:10:11

Hallo Georg,

nimm das Worksheet_Change des Tabellenblattes.
Der Wirkungsbereich sollte dort auf die maßgeblichen Eingabzellen eingeschränkt werden.

Gruß Gerd


  

Betrifft: AW: N13 ist ein reines Rechenfeld von: Georg
Geschrieben am: 13.09.2017 11:18:10

Hallo Gerd,
ich habe mangels VBA Kenntnisse keine Ahnung was du meinst?
Gruß G


  

Betrifft: AW: MsgBox aktivieren von: Dennis
Geschrieben am: 13.09.2017 11:14:19

Moin,

das Range-Objekt stellt immer nur ein Zellbereich dar. Wenn Grenze20Proz bereits einem Zellbereich hinterlegt wurde müssen die "" weg, ansonsten einen Zellbereich angeben.

Gruß
Dennis


  

Betrifft: AW: MsgBox aktivieren von: Gerd L
Geschrieben am: 13.09.2017 11:31:10

Hallo Georg,

vorausgesetzt in N13 steht eine Formel, kopiere mal dies ins Codefenster der Tabelle.

Private Sub Worksheet_Change(ByVal Target As Range)

 If Intersect(Range("C2:C99,D2:D99,G2:G99"), Target) Is Nothing Then Exit Sub

 If Range("N13").Value > Range("Grenze20Proz") Then
     MsgBox "Überstundengrenze überschritten! Wenden Sie sich an ihren Vorgesetzen!"
 End If

End Sub
Gruß Gerd


  

Betrifft: AW: MsgBox aktivieren von: Georg
Geschrieben am: 13.09.2017 11:46:48

Hallo Gerd, ich bin glaube ich zu blöd für VBA:
In dem Blatt (mom. nur Januar) steht schon ein Code:

Private Sub Worksheet_Change(ByVal Target As range)

If Target.Column = 11 Then
    If Target.Row >= 6 And Target.Row <= 36 Then
        If Not Target Is Nothing Then
            If Target.Count > 1 Then
                MsgBox "Mehrachselektion ist nicht zulässig."
                Application.EnableEvents = False
                Application.Undo
                Application.EnableEvents = False
                Exit Sub
            End If
            Select Case Target.Value
                Case Is = "AU ganztägig", "AU untertägig", "Urlaub"
                    range(Cells(Target.Row, 4), Cells(Target.Row, 6)).ClearContents
                Case Else
            End Select
        End If
    End If
End If

End Sub
Natürlich sagt Excel, wenn ich deinen Code einfüge..mehrdeutiger Name oder so. Wie löse ich das? Ich denke, grundsätzlich würde er funktionieren.
Danke.


  

Betrifft: es gibt nur ein Change-Event (Ereignis) von: Matthias L
Geschrieben am: 13.09.2017 12:16:56

Hallo

Du musst beides in das Worksheet_Change Event packen


Desweiteren machst Du hier einen Fehler!

If Target.Count > 1 Then
   MsgBox "Mehrachselektion ist nicht zulässig."
   Application.EnableEvents = False
   Application.Undo
   Application.EnableEvents = False '? das sollte True werden!
   Exit Sub
End If
Gruß Matthias


  

Betrifft: AW: es gibt nur ein Change-Event (Ereignis) von: Georg
Geschrieben am: 13.09.2017 12:43:24

Es geht!!DANKE an alle Helfer!


  

Betrifft: AW: MsgBox aktivieren von: Gerd L
Geschrieben am: 13.09.2017 12:38:43

Hallo Georg,

mal drübergehuscht:

Private Sub Worksheet_Change(ByVal Target As Range)

If Target.Column = 11 Or Not Intersect(Range("C2:C99,D2:D99,G2:G99"), Target) Is Nothing Then
    
    Application.EnableEvents = False 'Rekursion abschalten
    'erste Alternative
    If Target.Column = 11 Then
        If Target.Row >= 6 And Target.Row <= 36 Then
            
                If Target.Count > 1 Then
                    MsgBox "Mehrachselektion ist nicht zulässig."
                    Application.Undo
                    
                Else
                    Select Case Target.Value
                        Case Is = "AU ganztägig", "AU untertägig", "Urlaub"
                            Range(Cells(Target.Row, 4), Cells(Target.Row, 6)).ClearContents
                        Case Else
                    End Select
            End If
        End If
    'zweite Alternative
ElseIf Range("N13").Value > Range("Grenze20Proz") Then
        MsgBox "Überstundengrenze überschritten! Wenden Sie sich an ihren Vorgesetzen!"
    End If
End If

Application.EnableEvents = True

End Sub
Gruß Gerd


  

Betrifft: AW: MsgBox aktivieren von: Georg
Geschrieben am: 13.09.2017 12:44:21

Hallo Gerd, danke es geht!


Beiträge aus den Excel-Beispielen zum Thema "MsgBox aktivieren"