Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1968to1972
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Msgbox wird angezeigt, obwohl Kriterien dafür nicht erfüllt

Msgbox wird angezeigt, obwohl Kriterien dafür nicht erfüllt
26.03.2024 13:49:36
Wolfgang Lichtenberg
Hallo,
ich habe ein Makro erstellt, in welchem Textboxen gefüllt werden.
Option 1: Wenn in der Textbox 7 kein Wert steht, wird im Namenfeld "INDEX" eine 2 geschrieben und es soll eine Msgbox angezeigt werden.
Option 2: Steht in Textbox 7 ein Wert, soll das Makro M21032024 gestartet werden.
Beides funktioniert, jedoch wird mir bei der Option 2 am Ende trotzdem die Msgbox angezeigt.

Sub Zelleleer()
'
' Zelleleer Makro
'
ThisWorkbook.Sheets("Überschrift").Activate
Range("e1").Value = TextBox7.Value
Range("c2").Value = TextBox1.Value
Range("c3").Value = TextBox2.Value
Range("c4").Value = TextBox3.Value
Range("c6").Value = TextBox4.Value
Range("c7").Value = TextBox5.Value
Range("c8").Value = TextBox6.Value
Range("c9").Value = TextBox7.Value
Range("c10").Value = TextBox8.Value
Range("c11").Value = TextBox9.Value

If Range("INDEX").Value = 2 Then
MsgBox ("Datensatz existiert nicht!" & vbNewLine & "Änderung nicht möglich!" & vbNewLine & "Es können nur existierende Datensätze geändert werden!")
Else
Call M21032024

End If

End Sub


Ich habe folgendes Makro als separates Makro kopiert, ohne die Textboxen, damit ich mit F8 Schritt für Schritt nach dem Fehler suchen kann. Das funktioniert komischerweise, es wird keine Msgbox mehr angezeigt.
Mittlerweile bin ich mit meinem Latein am Ende. Hat jemand eine Lösung?

Sub AAATest()
'
' AAATest Makro
'
If Range("INDEX").Value = 2 Then
MsgBox ("Datensatz existiert nicht!" & vbNewLine & "Änderung nicht möglich!" & vbNewLine & "Es können nur existierende Datensätze geändert werden!")
Else
Call M21032024

End If
End Sub

Liebe Grüße
Wolfgang

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

Betreff
Datum
Anwender
Anzeige
AW: Msgbox wird angezeigt, obwohl Kriterien dafür nicht erfüllt
26.03.2024 14:06:30
Onur
Hallo Wolfgang,

1) Benutze nie Excel oder VBA-Schlüsselwörter wie INDEX als Variablen- oder Bereichs- oder sonstige Namen, dass kann Chaos auslösen.
2) Du musst schon alle Makros (am besten die Datei) posten, da wir nicht wissen, was da noch alles mitspielt.


Gruß
Onur
AW: Msgbox wird angezeigt, obwohl Kriterien dafür nicht erfüllt
26.03.2024 14:22:59
schauan
Hallöchen,

ich habe ein Makro erstellt, in welchem Textboxen gefüllt werden.

im geposteten Makro werden Bereiche gefüllt und keine Textboxen.

Option 1: Wenn in der Textbox 7 kein Wert steht, wird im Namenfeld "INDEX" eine 2 geschrieben und es soll eine Msgbox angezeigt werden.

das sieht man im geposteten code nirgends.

Option 2: Steht in Textbox 7 ein Wert, soll das Makro M21032024 gestartet werden.

du prüfst in einem benannten Bereich, ob dort 2 steht und nicht auf den Inhalt der Textbox. Vielleicht ist das sogar die Zelle c9, wer weiß ...

Onur hat Dir ja schon geschrieben, was Du tun solltest. Eine genaue Beschreibung wäre auch nicht verkehrt.
Anzeige
AW: Msgbox wird angezeigt, obwohl Kriterien dafür nicht erfüllt
26.03.2024 14:37:42
Wolfgang Lichtenberg
Schon mal danke für die Antworten.
Hier das Makro M21032024, auf welches zurückgegriffen wird. Die Datei kann ich leider nicht schicken, da firmenintern.
Wie bereits geschrieben, wenn ich das Makro als separates Makro ohne die Textboxen laufen lasse, wird die Msgbox nicht mehr angezeigt.
Hat also irgendwas mit den Textboxen zu tun.
Das Feld INDEX wird mit 2 befüllt, wenn in der Textbox 7 eine Ersatzteillistennummer enthalten ist.

Über den Commandbutton kann ich das Makro nicht mit F8 durchlaufen lassen (zumindest weiß ich nicht, wie das geht).


Sub M21032024()
'
' M21032024 Makro
'
Dim last As Integer
Dim wb As Workbook
Set wb = Workbooks.Open("\\hwf2\office\service\Abteilungsablage After Sales\D-SP3\Allgemein\EL\Maschinenliste1.xlsx")

Windows("Maschinenliste1.xlsx").Activate
Windows("Kalkulation Vordruck GP test.xlsm").Activate
Sheets("Überschrift").Visible = True
Sheets("Überschrift").Select
ActiveSheet.Range("e1").Copy
Windows("Maschinenliste1.xlsx").Activate
Range("L1").Select
ActiveSheet.Paste
ActiveSheet.Range("A1").AutoFilter 1, ActiveSheet.Range("L1").Value
ActiveCell.Offset(xZeilen, 0).Select
Range("A1").CurrentRegion.Offset(1, 0).SpecialCells(xlCellTypeVisible).EntireRow.Delete
Application.DisplayAlerts = False
ActiveSheet.ShowAllData
Range("L1").Delete
Windows("Kalkulation Vordruck GP test.xlsm").Activate
Sheets("Überschrift").Select
Range("A29:K29").Select
Selection.Copy
Windows("Maschinenliste1.xlsx").Activate
x = Range("A65536").End(xlUp).Row
Cells(x + 1, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
ActiveWorkbook.Worksheets("EL").AutoFilter.Sort.SortFields.Clear
ActiveWorkbook.Worksheets("EL").AutoFilter.Sort.SortFields.Add2 Key:=Range( _
"A1:A10000"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
xlSortNormal
With ActiveWorkbook.Worksheets("EL").AutoFilter.Sort
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("A1").Select
ActiveWorkbook.Save
ActiveWorkbook.Close
Application.DisplayAlerts = True
Windows("Kalkulation Vordruck GP test.xlsm").Activate
Sheets("Überschrift").Select
Range("A1").Select
ActiveWindow.SelectedSheets.Visible = False
Sheets("Kalkulation").Select

End Sub
Anzeige
AW: Msgbox wird angezeigt, obwohl Kriterien dafür nicht erfüllt
26.03.2024 14:49:42
daniel
naja, das Makro ist reiner Recordercode, das hat jemand erstellt, der sich nicht wirklich auskennt.
und dieses Makro ist auch nicht wichtig.
entscheidend ist ja nur, welcher Teil des IFs im übergeordneten Makros ausgeführt wird, der mit der Messagebox oder der mit dem Makroaufruf.
wenn die Messagebox erschein UND das Makro aufgerufen wird, läuft irgendwas größeres schief.

zum Einzelstep: du kannst auch an beliebiger Stelle im Code einen Haltepunkt setzen.
hierzu kannst du entweder den Befehl STOP einfügen oder du klickst auf den linken Rand des Codefensters im Editor, neben der der Zeile wo angehalten werden soll.
dann startest du das Makro normal und es läuft bis zum Haltepunkt. Ab dieser Stelle kannst du dann im Einzelstep (F8) weiter durchgehen (oder besser über die Icons in der Symbolleiste Debuggen)

Gruß Daniel
Anzeige
AW: Msgbox wird angezeigt, obwohl Kriterien dafür nicht erfüllt
26.03.2024 15:11:27
schauan
Hallo Wolfgang,

das gilt immer noch:

Option 1: Wenn in der Textbox 7 kein Wert steht, wird im Namenfeld "INDEX" eine 2 geschrieben und es soll eine Msgbox angezeigt werden.

das sieht man im geposteten code nirgends.


Wie kommt die 2 an den gewünschten Ort ...
AW: Msgbox wird angezeigt, obwohl Kriterien dafür nicht erfüllt
26.03.2024 15:27:10
Wolfgang Lichtenberg
Danke Daniel

Das mit Stop und anschließendem Einzelstep F8 wusste ich nicht.
Das war genau die Hilfe, mit der ich das Problem identifizieren konnte.
Die Verknüpfung vom CommandButton war nicht korrekt.
Damit ist das Problem gelöst, jetzt geht's.
Manchmal sieht man den Wald vor lauter Bäumen nicht :)
Vielen Dank an alle und einen schönen Tag euch.

Liebe Güße
Wolfgang
Anzeige
AW: Msgbox wird angezeigt, obwohl Kriterien dafür nicht erfüllt
26.03.2024 15:13:23
Onur
Ich glaube langsam, es wäre besser, den VBA-Recorder zu fragen....
AW: Msgbox wird angezeigt, obwohl Kriterien dafür nicht erfüllt
26.03.2024 14:22:27
daniel
Hi
die erste Frage an dich wäre:
hast du dich schon mal im Einzelstepmodus durch das Makro geklickt um zu schauen, was abläuft und welche Werte die einzelnen Variablen an den entscheidenden Punkten haben?
weitere Fragen:
- Referenziert Range("Index") auf die richtige Zelle?
- wie kommt die 2 in die Range("Index")
- Warum fragst du nicht einfach die Textbox direkt ab?

Gruß Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige