Optbutton
#41
Das ist kein Rätsel, das liegt an deiner Programmierung. Es ist völlig normal, dass wenn du irgendwo im Code eine Userform non-modal (vbModeless) öffnest, dass der Code dort gestoppt wird und der Code der Userform weitermacht, bis du sie wieder schliesst. Dann geht es in der Zeile NACH Aufruf der Userform weiter.
Antworten Top
#42
Hallo

@oee   ich sehe das du sehr viel mehr von UserForm Funktionen verstehst wie ich, Hut ab!

Mein spontaner Gedanke war, gibt es eine Möglichkeit im Code der UF eine Abfrage einzubauen, das sie vor dem weitermachen im Code schaut, ob sie sich selbst schliessen soll?  Wenn ich es wüsste würde ich es ihm einbauen.
Falls ja, wo genau müsste Andyle es im Code einbauen???

mfg Gast 123
Antworten Top
#43
" vor dem weitermachen im Code schaut, ob sie sich selbst schliessen soll " ? WO nachschauen ?
Anhand welcher Kriterien soll denn geschlossen werden?
Antworten Top
#44
Hallo

Zitat:Das ist kein Rätsel, das liegt an deiner Programmierung.     Stimmt, aber -das- war DIE Herausforderung!!

@oee   es freut mich sehr das du im Excel und Türkisch besser bist, Hut ab vor deinem Können!!

@Andyle   in deinem Code gibt es sicher noch so einige Tucks, aber den Fehler habe ich wohl gefunden.
                Du hast ihn übrigens Selbst eingebaut, mich damit  ganz schön zum Narren gehalten.

Viele Kollegen sind mir vom fachlichen Wissen und Können haushoch überlegen, daraus mache ich keinen Hehl!
Was mich im Forum auszeichnet ist meine -unglaubliche hartnäckigkeit- bei richtig verzwickter Fehlersuche!
Ich gebe dir mal einen Typ wie ich dahinter kam was du eingebaut hast:  Dr. Oetker Backrezept für Excel.

Wenn man nach fast 1 Stunde Suche die Schnautze voll hat, weil nichts klappt wie es soll nehme man eine MsgBox und schaue sich die Variablen beim Einsprung ins Makro mal genauer an. Ist dir aufgefallen das "einaus" KEINEN Wert hatte?
Da war ich sprachlos, bis ich dahinter kam das du im Modul1 und in der UserForm zweimal -Public einaus- gesetzt hast!
Machst du das in zwei Modulen kommt eine Fehlermeldung, hier kam aber keine!!

Ändere dazu ibitte n der UserForm im Code für Ein- und Ausbuchen diesen Codeteil vor End Sub, dann sollte es klappen.
Call BarcodeSuchen
einaus = "ende"
TextBox10 = ""

mfg Gast 123

Code:
    Dim AbgabeRow As Long
   
   'MsgBox einaus  '** nur zum testen!!
    If einaus = "ende" Then
       Unload UserForm1
       einaus = "": Exit Sub
    End If
   
    With ActiveSheet.Range("tblProdukte").ListObject

Nachtrag   du solltest bei With Klammer statt ActiveSheet den richtigen Sheetnamen angeben.
Ich stand beim Testen in einem falschen Sheet und wollte die UserForm starten.  Laufzeitfehler!!
Antworten Top
#45
Hi,

(03.02.2025, 14:35)Gast 123 schrieb: Wenn man nach fast 1 Stunde Suche die Schnautze voll hat, weil nichts klappt wie es soll nehme man eine MsgBox und schaue sich die Variablen beim Einsprung ins Makro mal genauer an.

Bei so etwas nimmt man keine MsgBox sondern setzt einen Breakpoint und geht dann im Einzelschritt durch den Code (und zwar schon vor Ablauf der Stunde 21). Gleichzeitig schaut man sich im Lokal-Fenster den Zustand aller Variablen an.

Und so ganz nebenbei hast du nun auch gemerkt, dass die Verwendung von Public-Variablen die Fehlersuche nicht gerade vereinfacht. Nicht umsonst findet man immer wieder die Aufforderung, auf solche Variablen gänzlich zu verzichten. Und ja, das ist ganz gut möglich, auch wenn viele fortgeschrittene Anfänger das anzweifeln werden.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#46
" Und so ganz nebenbei hast du nun auch gemerkt, dass die Verwendung von Public-Variablen die Fehlersuche nicht gerade vereinfacht. " ?
Inwiefern denn?
Wenn man sie korrekt verwendet, gibt es da keine Probleme mit denen.
Antworten Top
#47
Hi,

was heißt schon "korrekt verwendet"? Auch wenn man sie "korrekt verwendet", weiß man nie, wo sie eventuell geändert werden könnten. Solange man nur 2-3 Unterprogramme hat und man alleine an einem Projekt arbeitet, geht das gut. Aber wehe, es werden mehr Routinen und vor allem mehr Programmierer, dann verliert man sehr schnell den Überblick. Daher ist es besser, ALLE Werte, die man in einem Unterprogramm braucht, direkt zu übergeben. Vor allem wenn man Unterprogramme in verschiedenen Projkten verwenden will, hat man so auch gleich eine rudimentäre Dokumentation, was überhaupt benötigt wird.

Natürlich gibt es da viele unterschiedliche Meinungen dazu. Hier jetzt alles für und wider aufzuzählen wäre müßig. Wenn dich so was näher interessiert, dann google einfach mal danach.
Gruß,
Helmut

Win10 - Office365 / MacOS - Office365
Antworten Top
#48
Estmal vielen Dank für Eure Anteilnahme.

Erstmal, möchte ich darstellen, dass was ich bisher geschafft habe auf völligen Nichtwissen basiert.

Die Änderung habe ich mal eingebaut, aber da geht die UserForm3 garnicht auf zur Abfrage nach den scannen im TB Produkte.

Kann natürlich den Hintergrund haben, dass sich mitlerweile viel geändert hat.

Ich hänge mal einfach das AB dran.


Angehängte Dateien
.xlsm   Barcode scannen.xlsm (Größe: 550,43 KB / Downloads: 7)
Antworten Top
#49
@Gast123,
 
schau mal ins Modul "Mdl_Variablen"
Das sind letztendlich alles Variablen von jeder Ecke des Projekts aus erreichbar sind.
 
Warum das Vorgehen via Propertys?
- Der Inhalt der Variablen ist bei manuellem Durchlauf lesbar.
- da gespiegelt in privater Dimensionierung bei Fehler die Variable erhalten bleibt kann man diese trotzdem weiter nutzen.
 
Einziger Nachteil: Es ist etwas mehr Schreiberei.
 
@ Andreas,
 
Den Exit Button im Datepicker braucht es nicht. Für Abbruch des Datepicker einfach auf das Überschriftlabel doppelklicken.

Public Variablen im Userform bzw. Tabellenblattmodul können außerhalb der Beiden nicht aufgerufen werden.
Diese Variablen dimensioniert man im allgemeinen Modul Public oder noch besser als Propertys.
 
Gruß Uwe
Antworten Top
#50
Hallo

viel Kritik, nun ja, die ist sicher berechtigt.  Ich bin halt nicht die "hellste Leuchte" im Forum.

@Andyle  wie startet bei euch die UserForm mit den Materialdaten. Durch den Scanner bei Eingabe??
Das kann ich ohne Scanner nicht bewerkstelligen, habe die UF1 per Makro mit Show manuell gestartet.  
Dabei weiß man aber nicht wie sie in eurer Datei gestartet wird, welche Programmteile sie da durchläuft?
 
Schade, ich dachte ich habe den Fehler gefunden, schaue morgen noch mal ins neue Beispiel rein.

mfg Gast 123
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste