ich habe ein Makro geschrieben, welches über eine WENN-DANN Funktion aufgerufen wird
=WENN(UND(A3="Stimmt";B3="Stimmt");MakroStart();"Nix")
Dieses Makro wird dann über folgendes aufgerufen:
Function MakroStart()
If Test = 1 Then
MakroStart_Makro
Test = 2
End If
End Function
Test ist heirbei nur eine Variable, die verhindern soll, dass es unendlich oft ausgeführt wird.
Dies ruft dann mein Makro auf.
Mein Makro soll erkennen, wenn eine Nummer eingegeben wird, ob diese bereits in einer Liste vorhanden ist und wenn ja fragen, ob eine Anzahl an Teilen zu dieser Nummer hinzugefügt werden soll und bei Ja dann hinzufügen. Soweit so gut, das Makro selbst läuft wenn ich es über Ausführen starte durch und macht genau was ich will.
Wenn es aber automatisch startet, kann ich noch die Anzahl eingeben, um die ich erhöhen will und dann passiert nix meh. Keine Fehlermeldung, kein Debuggen, keine Fertigmeldung und auch keine Erhöhung der Zahl. Ich hab mir das arbeiten mit Makros nach und nach beigebracht und es gibt bestimmt viele bessere Wege um mein Ziel zu erreichen, aber ich verstehe trotzdem nicht, wieso mein Makro richtig ausgeführt wird, wenn ich selber starte und ohne Meldung abbricht, wenn es automatisch startet.
Ich hoffe mir kann jemand helfen, vielen Dank.
Mein Makro:
Sub MakroStart_Makro()
Test = 2
Dim Quelltab As Worksheet
Dim Zieltab As Worksheet
Set Quelltab = ActiveWorkbook.Worksheets("Eingabe")
Set Zieltab = ActiveWorkbook.Worksheets("Übersicht")
Dim Eingabewert As Byte
'Fenster das Teil vorhanden + Frage, ob Anzahl erhöht werden soll
Eingabewert = MsgBox("Diese Teilenummer ist bereits vorhanden, soll die Anzahl der bereits _
vorhandenen Teile erhöht werden?", vbYesNo)
'Ja angeklickt:
If Eingabewert = vbYes Then
'Fenster mit Frage wie viele hinzugefügt werden sollen
Dim intEingabe As Integer
intEingabe = Application.InputBox(prompt:="Bitte geben Sie " & vbNewLine _
& "die zu addierende Anzahl ein:", Title:="Zahleneingabe", Default:="0", Type:=1)
Dim Summe As Integer
Dim Wert As Integer
Dim Zeile As Integer
Zeile = Quelltab.Cells(3, 3).Value
Wert = Zieltab.Cells(Zeile, 3)
'Rechnet den vorhandenen Wert und die eingegebene Zahl zusammen
Summe = Wert + intEingabe
'Fenster mit Frage, ob Anzahl auf das erechnete Ergebnis gesetzt werden soll
Dim EingabewertZwei As Byte
EingabewertZwei = MsgBox("Soll die Anzahl des Teils auf " & Summe & " erhöht werden", vbYesNo)
'Wenn ja:
If EingabewertZwei = vbYes Then
Zieltab.Unprotect Password:="123"
'Wert auf neue Anzahl ändern
Dim WertNeu As Range
Set WertNeu = Zieltab.Cells(Zeile, 3)
WertNeu.Value = Summe
Zieltab.Protect Password:="123", AllowDeletingRows:=True, AllowFiltering:=True
'Fenster, dass sagt, dass Anzahl erhöht wurde
MsgBox "Die Anzahl für dieses Teil wurde erhöht "
'Inhalt der Zellen im Eingabefeld löschen
ZellenLeeren
'Makro wird wieder automatisch möglich
Test = 1
'Wenn Nein gewählt: Fenster mit Anzahl unverändert
ElseIf EingabewertZwei = vbNo Then
MsgBox "Die Anzahl wurde nicht verändert"
End If
'Wenn Nein gewählt: Fenster mit Anzahl unverändert
ElseIf Eingabewert = vbNo Then
MsgBox "Die Anzahl wurde nicht verändert"
End If
End Sub