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

Forumthread: Bedingung für Msgbox

Bedingung für Msgbox
meixner
Hallo zusammen,
habe mit meiner Msgbox ein kleines Problem.
Ich möchte das, wenn der wert in zelle g7 >3,5% ODER Bekomme für unteres Makro eine Fehlermeldung. Kann mir jmd einen Tip geben? Viele Grüße Dani
Private Sub Workbook_Open()
Dim GRENZE As String
Sheets(5).Select
Range("g7").Activate
GRENZE = Round(Range("g7").Value, 4) * 100 & "%"
If Range("g7").Value > 3.5 or
Anzeige

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Bedingung für Msgbox
09.07.2010 11:29:50
MisterB
Hallo,
vielleicht so....?
Private Sub Workbook_Open()
Dim GRENZE As String
Sheets(5).Select
Range("g7").Activate
GRENZE = Round(Range("g7").Value, 4) * 100 & "%"
If Range("g7").Value > 3.5 Or Range("g7").Value 

Gruß
Martin
Kein Problem mit MsgBox sondern mit IF-Bedingung
09.07.2010 11:31:13
NoNet
Hallo Meixner,
Deine MsgBox ist absolut OK, aber Deine IF-Struktur entspricht zumindest nicht der VBA-Syntax !
So sollte es klappen :
If Range("g7").Value > 3.5 or Range("g7").Value
Gruß, NoNet
gegen 0:1  

Anzeige
mal so versuchen
09.07.2010 11:32:52
steffen

Private Sub Workbook_Open()
Dim GRENZE As String
Sheets(5).Select
Range("g7").Activate
GRENZE = Round(Range("g7").Value, 4) * 100 & "%"
If Range("g7").Value > 3.5 Then
MsgBox "grenze von -7,5/+3,5% für Fonds auf Basis von Reuters Kursen überschritten: " &  _
GRENZE, vbOKOnly, "WARNING: RESET Fonds"
Else
If Range("G7") 

Anzeige
select case
09.07.2010 11:37:30
ransi
HAllo
Select case kanns auch:
Select Case Sheets(5).Range("g7").Value
    Case Is > 3.5, Is < -7.5
        MsgBox "grenze von -7,5/+3,5% für Fonds auf Basis von Reuters Kursen überschritten: " & GRENZE, vbOKOnly, "WARNING: RESET Fonds"
End Select

ransi
Anzeige
AW: select case
09.07.2010 12:39:46
meixner
Hallo zusammen,
vielen Dank für die zahlreichen Vorschläge. Es funktionieren mehrere Lsg.
Noch eine Frage: zusätzlich soll die Bedingung auch für die Zelle g4 gelten mit anderen grenzen.
Das klappt aber leider noch nicht:
Vielen Dank.
dani
Private Sub Workbook_Open()
Dim GRENZEN As String
grenzen= Round(Range("g7").Value * 100, 2) & "%"
If Range("g7").Value > 0.035 Or Range("g7").Value If Range("g4").Value > 0.035 Or Range("g4").Value
Anzeige
AW: select case
09.07.2010 12:41:01
meixner
sorry, für die weitere Anfrage. Das klappt doch...
Viele Grüße
dani
run Application
09.07.2010 12:57:34
meixner
nochmals sorry, hätte doch eine weitere Frage:
nach Erscheinen der Msgbox wg. Grenzverletzung soll eine weitere Msgbox aufspringen, die fragt ob FM Abteilung über die Grenzverletzung informiert werden soll? Antwortmögl. JA/NEIN soll angeklickt werden können.
Wenn anklicken von ja, dann soll ein anderes Makro dadurch gestartet werden.
Makro aus Modul3 mit dem Namen: Fonds.xls!Emailversand. Funktioniert das über Run Application?
Das Makro sieht bis jetzt so aus:
Private Sub Workbook_Open()
Dim GRENZEN As String
GRENZEN = Round(Range("g7").Value * 100, 2) & "%"
If Range("g7").Value > 0.035 Or Range("g7").Value If Range("g4").Value > 0.035 Or Range("g4").Value Viele Grüße
Dani
Anzeige
Einfach mal ausprobieren....
09.07.2010 22:01:21
Ramses
Hallo
Erst testen, dann ausprobieren, dann in der Hilfe schauen, dann fragen
Application.Run("Fonds.xls!Emailversand")
Gruss Rainer
;
Anzeige
Anzeige

Infobox / Tutorial

Bedingung für Msgbox in VBA


Schritt-für-Schritt-Anleitung

Um eine MsgBox in VBA zu verwenden, die auf bestimmte Bedingungen reagiert, kannst du folgende Schritte befolgen:

  1. Öffne das Excel-Dokument und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge den folgenden Code in das ThisWorkbook-Modul ein:

    Private Sub Workbook_Open()
       Dim GRENZE As String
       Sheets(5).Select
       Range("g7").Activate
       GRENZE = Round(Range("g7").Value, 4) * 100 & "%"
       If Range("g7").Value > 3.5 Then
           MsgBox "Grenze von -7,5/+3,5% für Fonds auf Basis von Reuters Kursen überschritten: " & _
           GRENZE, vbOKOnly, "WARNING: RESET Fonds"
       Else
           ' Weitere Bedingungen hier hinzufügen
       End If
    End Sub
  3. Ändere die Werte und Bedingungen je nach Bedarf, zum Beispiel für die Zelle G4.

  4. Speichere die Änderungen und schließe den VBA-Editor.

  5. Schließe und öffne die Arbeitsmappe erneut, um die MsgBox zu testen.


Häufige Fehler und Lösungen

  • Fehler: If-Bedingung nicht korrekt.

    • Lösung: Stelle sicher, dass die Syntax der If-Bedingung korrekt ist. Beispiel:
      If Range("g7").Value > 3.5 Or Range("g4").Value < 0.035 Then
  • Fehler: MsgBox wird nicht angezeigt.

    • Lösung: Überprüfe, ob das Makro beim Öffnen der Arbeitsmappe tatsächlich ausgeführt wird. Dies kannst du mit Debugging-Werkzeugen im VBA-Editor überprüfen.

Alternative Methoden

Eine alternative Methode zur Verwendung von MsgBox ist die Verwendung von Select Case. Hier ist ein Beispiel:

Private Sub Workbook_Open()
    Dim GRENZE As String
    Sheets(5).Select
    Range("g7").Activate
    GRENZE = Round(Range("g7").Value, 4) * 100 & "%"

    Select Case Range("g7").Value
        Case Is > 3.5
            MsgBox "Grenze überschritten: " & GRENZE, vbOKOnly, "WARNING"
        Case Is < -7.5
            MsgBox "Untergrenze überschritten: " & GRENZE, vbOKOnly, "WARNING"
    End Select
End Sub

Praktische Beispiele

Hier sind einige praktische Beispiele für die Verwendung von MsgBox in Verbindung mit den Zellwerten:

  1. Einfacher Grenzwert-Check für G7 und G4:

    If Range("g7").Value > 3.5 Or Range("g4").Value < 0.035 Then
       MsgBox "Grenzverletzung festgestellt!"
    End If
  2. Zusätzliche Abfrage nach einer Grenzverletzung:

    If MsgBox("Soll die FM-Abteilung informiert werden?", vbYesNo) = vbYes Then
       Application.Run "Fonds.xls!Emailversand"
    End If

Tipps für Profis

  • Nutze Option Explicit am Anfang deines VBA-Moduls, um sicherzustellen, dass alle Variablen deklariert sind.
  • Verwende Round und Format Funktionen, um die Ausgabe der Werte in der MsgBox zu steuern.
  • Halte deinen Code sauber und gut strukturiert, indem du Kommentare hinzufügst, die die Funktionalität deines Codes erklären.

FAQ: Häufige Fragen

1. Wie kann ich mehrere Zellwerte in einer MsgBox anzeigen?
Du kannst die Zellwerte einfach verketten, z.B.:

MsgBox "Wert G7: " & Range("g7").Value & ", Wert G4: " & Range("g4").Value

2. Was ist der Unterschied zwischen MsgBox und Debug.Print?
MsgBox zeigt eine Nachricht an den Benutzer, während Debug.Print nur im Immediate-Fenster des VBA-Editors sichtbar ist. Verwende MsgBox für Benutzerinteraktionen und Debug.Print für Debugging-Zwecke.

3. Wie kann ich die MsgBox mit verschiedenen Schaltflächen anpassen?
Du kannst die Schaltflächen über das Argument Buttons anpassen, z.B.:

MsgBox "Warnung!", vbYesNoCancel, "Entscheidung erforderlich"

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