Hallo miteinander!
Erstmal ein großes Lob an das Forum! Klasse Community die mir schon öfter als Gast-User helfen konnte.
Allerdings bin ich jetzt an meine Grenzen gestoßen und habe zu meinem Problem noch in keinem Forum eine Lösung gefunden.
Ich bin gerade dabei, ein sehr verzwicktes Tool zu entwickeln (mit Visual Studio) und programmiere das ganze mit VB.
Nun starte ich einen Makros, welcher durch "Call" mehrere Subs durchläuft, welche als Prüfschleifen dienen (es werden Excel-Datei auf Inhalt geprüft).
Unter vielen anderen, nennt sich ein Sub "checkfelder", welches mehrere Felder in der ersten Zeile kontrolliert.
Wenn nun alle Felder, die vorhanden sein müssen, vorhanden sind, kann der Makro einfach weiter laufen. Fehlt aber ein Feld, wird abgefragt, ob die Excel Tabelle nun sichtbar gemacht werden soll. Klickt der Benutzer "Ja", wird die Tabelle angezeigt. Allerdings soll hier der Makro im Hintergrund einfach nur stoppen. Mit 'Exit Sub' ist dies nicht getan, da er dann wieder zurück zum ausführenden Sub springt und da die nächste Prüfschleife aufruft. Auch mit 'End' bringt es nichts, da dann meine Forms geschlossen werden, was auch nicht sein soll.
Wenn der Nutzer mit "Nein" antwortet, soll eine MsgBox ausgegeben werden und im anschluss wieder das Makro beendet werden, allerdiongs wiederrum nicht die Forms. Der Effekt ist derselbe wie oben.
Hier ein paar Code-Schnipsel (Sachen würden aus Datenschutz umbennant):
Das hier ist der Code, der meine Schleifen etc ausführt:
Das hier ist der Code, aus dem ich wieder an der markierten Stelle wieder raus muss:
Danke im voraus für eure Hilfe!!
Gruß Bra
Erstmal ein großes Lob an das Forum! Klasse Community die mir schon öfter als Gast-User helfen konnte.
Allerdings bin ich jetzt an meine Grenzen gestoßen und habe zu meinem Problem noch in keinem Forum eine Lösung gefunden.
Ich bin gerade dabei, ein sehr verzwicktes Tool zu entwickeln (mit Visual Studio) und programmiere das ganze mit VB.
Nun starte ich einen Makros, welcher durch "Call" mehrere Subs durchläuft, welche als Prüfschleifen dienen (es werden Excel-Datei auf Inhalt geprüft).
Unter vielen anderen, nennt sich ein Sub "checkfelder", welches mehrere Felder in der ersten Zeile kontrolliert.
Wenn nun alle Felder, die vorhanden sein müssen, vorhanden sind, kann der Makro einfach weiter laufen. Fehlt aber ein Feld, wird abgefragt, ob die Excel Tabelle nun sichtbar gemacht werden soll. Klickt der Benutzer "Ja", wird die Tabelle angezeigt. Allerdings soll hier der Makro im Hintergrund einfach nur stoppen. Mit 'Exit Sub' ist dies nicht getan, da er dann wieder zurück zum ausführenden Sub springt und da die nächste Prüfschleife aufruft. Auch mit 'End' bringt es nichts, da dann meine Forms geschlossen werden, was auch nicht sein soll.
Wenn der Nutzer mit "Nein" antwortet, soll eine MsgBox ausgegeben werden und im anschluss wieder das Makro beendet werden, allerdiongs wiederrum nicht die Forms. Der Effekt ist derselbe wie oben.
Hier ein paar Code-Schnipsel (Sachen würden aus Datenschutz umbennant):
Das hier ist der Code, der meine Schleifen etc ausführt:
VB.NET-Quellcode
- ElseIf rb_daimler.Checked And rb_1zeilig.Checked Then
- Clipboard.SetText(tb_auftragsnr.Text) 'Auftragsnummer wird in die Zwischenablage kopiertDim xls As Object
- Dim word As Word.Application
- xls = CreateObject("Excel.Application")
- xls.Workbooks.Open(excelpfad & "001_Aufträge\" & tb_auftragsnr.Text & ".xlsx")
- xls.Visible = FalseCall checkfelder(xls, {"Vorname", "Name", "Titel"})
- Call checknamen(xls)
- word = CreateObject("Word.Application") 'Öffnet Word
- word.Visible = False 'Word sichtbar Ja/Nein
- word.Documents.Open(excelpfad & "000_ASN_Vorlagen\Daimler-1-Zeiler.dotx") 'Öffnet Datei
- Call wordserie(word)
Das hier ist der Code, aus dem ich wieder an der markierten Stelle wieder raus muss:
VB.NET-Quellcode
- Sub checkfelder(ByVal xls, ByVal felder)
- Dim s As String = ""
- 'Dim processId As IntPtrFor Each x In felder
- If xls.ActiveSheet.Range("A1:AZ1").Find(x, , , 1) Is Nothing Then
- s = s & x & ", "
- End If
- Next
- If s <> "" ThenMsgBox("Folgende Seriendruckfelder fehlen: " & s, MsgBoxStyle.Critical)
- If MsgBox("Möchten Sie den Auftrag öffnen?", MsgBoxStyle.YesNo, "Auftrag öffnen?") = vbYes Then
- xls.Visible = True
- Else
- HIER MUSS ICH AUS DEM MAKRO EBEN WIEDER RAUS...WENN ICH DAS MIT 'Exit Sub' MACHE, SPRINGT ER NACH OBEN UND MACHT BEI DER NÄCHSTEN ZÄHLSCHLEIFE WEITER
- End If
- ElseMsgBox("Nötige Seriendruckfelder vorhanden!", MsgBoxStyle.Information)
- End If
- End Sub
Danke im voraus für eure Hilfe!!
Gruß Bra