Zuweisen einer Tastenkombination zu einem cmdbutton in einem UF

Hallo ihr alle

Nach vielen Recherchen und Tests kann ich anscheinend keine Tastenkombination erstellen, um einen cmdbutton in einem UserForm zu aktivieren.
Ich habe verschiedene Ansätze ausprobiert, der letzte war dieser:

Privater Sub UserForm_Initialize()
Me.KeyPreview = Wahr
Ende Sub

Private Sub UserForm1_KeyDown(ByVal KeyCode als MSForms.ReturnInteger, ByVal Shift als Ganzzahl)
Wenn KeyCode = vbKeyF4 dann
Rufen Sie cmdButton_1_Click an
Ende, wenn
Ende Sub

Ich habe auch den Befehl getestet: Application.OnKey, aber nichts hilft!

Im Idealfall sollte die Tastenkombination einen cmdbutton aktivieren, ohne dass das Userform die Brennweite hat.
Ich sollte darauf hinweisen, dass ich an SW 2010 arbeite. Möglicherweise gibt es Kompatibilitätsprobleme...

Wenn Sie jemals mit dem Problem konfrontiert waren und die richtigen Steuerelemente kennen, würde ich mich freuen.

Vielen Dank!

Guten Abend

Der einzige Weg, den ich gefunden habe, damit es funktioniert, besteht darin, die Schaltfläche auf Enable = False zu setzen.
Die Zeile bei der Initialisierung des UserForm ist meiner Meinung nach nicht notwendig.
Und das musste ich ändern:

Private Sub UserForm1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

Bis:

Private Sub UserForm_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)

Hallo

Gibt es noch etwas anderes als diesen Button im Benutzerformular?

Ist es nicht möglich, ein Makro zu erstellen, das der automatischen Ausführung der Funktion gewidmet ist, die von der genannten Schaltfläche gestartet wird, und dann der Makroschaltfläche in der Symbolleiste eine Verknüpfung zuzuweisen?

Mit anderen Worten, eine Tastenkombination startet das Makro, das die Funktion startet, und wird beim nächsten Drücken der Tastenkombinationen geschlossen.

1 „Gefällt mir“

Guten Abend

Vielen Dank für Ihre Antworten. Ich werde es morgen versuchen.
Sylk, ja, ich habe ungefähr zwanzig Knöpfe auf meinem UF. Die Idee ist, sie alle einzurichten, indem man ihnen Verknüpfungen zuweist.

Mein UF hat bereits seine Verknüpfung, aber aus Gründen der Effizienz möchte ich, dass die etwa zwanzig Tasten konfiguriert werden.

Wir sind etwa zehn Leute, die Makros verwenden, die sich auf dem Server befinden. Meine erste Idee war, sie einzeln in einen Tab unter SW einzufügen; Im Nachhinein wurde mir klar, wie mühsam das Update für alle sein würde, wenn eine Änderung in dem/den Makro(s) auftreten würde oder wenn ein Ordner seinen Namen oder Speicherort ändern würde. Das UF schien mir die beste Lösung zu sein, um in den oben genannten Fällen einen reibungslosen und einfachen Zustand zu gewährleisten.
Davon abgesehen, wenn ich eine " Technik " übersehen habe und die UF nicht obligatorisch ist, stehe ich Ihnen gerne zur Verfügung.

Vielen Dank für Ihre Antworten,

Hallo

Für das Update ist es nicht so restriktiv.
Zu Hause habe ich eine ganze Reihe von Makros entwickelt, die durch Drücken eines Symbols neben den Speichersymbolen, Backtracking... SW-Basis.
Da wir die globale Konfiguration verwalten und eine Konfigurationsdatei generieren, die von allen verwendet wird (sldreg), kann das Aktualisieren der Makrolinks einfach durchgeführt werden (aber wenn wir die Pfade und Methoden, die wir genannt haben, fest lassen können, ist es immer besser).
Für das Code-Update müssen Sie dann nur einen Zeitpunkt finden, an dem niemand SW geöffnet hat, um den Inhalt aktualisieren und neue Funktionen oder Fehlerbehebungen bereitstellen zu können.
Denken Sie daran, Makros schreibgeschützt zu machen und ihren Inhalt mit einem Passwort zu sperren, um Manipulationen durch Personen zu vermeiden, die nichts davon wissen (ich habe bereits Makros ihres Inhalts entleeren lassen, glücklicherweise hatte ich anderswo Backups).
Die Idee der @Sylk ist gut, aber sie erfordert, dass die Benutzer gut über die Funktionen informiert sind, die mit jeder Tastenkombination verbunden sind.

1 „Gefällt mir“

Hallo @Cyril_f

Die Übersichtlichkeit der zugehörigen Funktionen und Tastenkombinationen ist also ausnahmsweise genau ein Vorteil dieser Methode:
image
Ein explizites Symbol und eine QuickInfo mit Titel, Tastenkombination und Beschreibung. Es ist schwierig, es für den Benutzer klarer zu machen.

Für mich geht nichts über eine persönliche Symbolleiste mit einer Schaltfläche für jede Funktion, die mit einer Schaltfläche im Benutzerformular verknüpft ist. Sie können es offen und in Reichweite lassen oder ausblenden (um Verknüpfungen " nativ integriert" und unsichtbar zu machen.
Die Symbolleisten sind mit SW-Einstellungen übertragbar, so dass es ziemlich einfach zu implementieren ist.

Der einzige Nachteil, wenn man weiß, dass das Makro nach jeder Ausführung der Funktion geschlossen wird, ist vielleicht, wenn einige Variablenwerte zwischen 2 Funktionen bestehen bleiben müssen...

Ich habe im Moment nichts Besseres zu bieten.

Ich bin auf der Linie, aber aus dem Anblick der Benutzer zu Hause kann ich sagen, dass selbst ein Tooltip über ihre " Kompetenz " hinausgeht.
Grundsätzlich müssen sie sich dazu herablassen, die verfügbaren Symbole zu überfliegen und nicht nur SW20xx zu verwenden, wie wir SW9x (95/98/99) verwendet haben

Hallo;
Es ist möglich, eine (oder mehrere) vollständige und konfigurierbare Symbolleiste zu erstellen, die Sie auf allen Ihren Solidworks Arbeitsstationen (über die Add-Ins) freigeben können:

Diese Symbolleiste hat auch den Vorteil, dass der Zugriff auf Schaltflächen/Makros je nach Arbeitsumgebung aktiviert werden kann (oder auch nicht) (wenn Sie in einer Baugruppe arbeiten, ist es nicht notwendig, zeichnungsspezifische Makros verwenden zu können...).
Der Nachteil ist, dass personalisierte und lesbare Symbole erstellt werden müssen, aber er ist immer noch überwindbar.
Hinweis: Die Version, die wir auf unseren Workstations verwenden, ist die Beta-Version (damals " MyToolbar " genannt). Ich habe die " Toolbar+ " -Version, die  im " Cad+ " -Paket angeboten wird, nicht getestet...

1 „Gefällt mir“

Hallo

Vielen Dank für Ihre Antworten.
Die Toolbar-Lösung wurde bereits getestet.


Es ist gut, weil es Ihnen ermöglicht, individuelle Tastenkombinationen zuzuweisen,
Wenn jedoch mehrere Makros geändert werden, muss der Link für jedes geänderte Makro und für jeden Benutzer aktualisiert werden.
Cyril_f In der Tat müsste jeder Benutzer für das Update SW geschlossen haben, um es getestet zu haben, es ist restriktiv. Zusätzlich zu den Änderungen, die innerhalb der Makros vorgenommen werden, kann es Änderungen am Speicherort von Dateien oder Änderungen an den Namen von Ordnern geben.
Ich hatte bereits, wie Sie vorgeschlagen haben, getestet, Cyril_f man eine .sldreg registriert, die ein schnelles Update ermöglicht. Dies erwies sich jedoch in unserer Situation als nicht effektiv.
Die Idee der USF war damals, nur eine Änderung vorzunehmen. Einfacher für die Benutzer.
Um noch weiter zu gehen, die Idee, einen Stapel auf den Desktops der Benutzer abzulegen, der es ermöglicht, die aktualisierte Makrodatei lokal zu kopieren und auf dem Server einzufügen; Dies geschieht, um die Reaktionsfähigkeit von Makros deutlich zu erhöhen.

Aber ich komme immer wieder auf mein Problem der direkt in den Code geschriebenen Tastenkombinationen zurück, keine Syntax scheint zu funktionieren!
Cyril_f hatte ich UserForm1 geschrieben, weil es mir logischerweise relevant erschien, es zu benennen, da ich 2 USFs in meinem Projekt hatte. Liege ich falsch?

Oh ja, aber was Sie dann programmieren müssen, ist ein Makro, um die Funktion " startUserBrain() " für ihre Neuronen zu starten...

1 „Gefällt mir“

Hallo @N_MS

Nein. Alles, was Sie tun müssen, ist, alle Funktionen in ein einziges Makro (ein gemeinsames Makro) zu integrieren und die Funktion (genannt " Methode ") auszuwählen, die für jede Schaltfläche vorgesehen ist.
Wenn Sie das Makro aktualisieren, haben alle Aktualisierungen Auswirkungen, solange Sie den Namen der Funktionen, die von den Schaltflächen aufgerufen werden, nicht ändern. Die Aktualisierung der Symbolleiste auf der Startseite des Benutzers ist nur nützlich, um neue Schaltflächen/Funktionen hinzuzufügen.

Das ist der Sinn der Symbolleiste, die ich oben vorschlage.
Letzteres muss sich auf einem gemeinsam genutzten Server befinden, die verschiedenen damit verbundenen Makros liegen in Form von Links vor (Speicherort der Makros) und werden im Falle von Updates oder dem Hinzufügen von Funktionen beim nächsten Start von Solidworks für alle Benutzer automatisch neu geladen.

Andernfalls gibt es das Dienstprogramm CustomToolbar, mit dem Sie auch eine Symbolleiste mit Verknüpfungen zum Makro hinzufügen können.
Ich konfiguriere diese Leiste auf meinem Computer und dann habe ich eine bat-Datei, die es mir ermöglicht, sich auf dem Computer zu verbreiten, von dem aus die bat-Datei gestartet wird.
Eine Beat-Datei zum Sichern der lokalen Dateien auf dem Server und eine Datei zum Wiederherstellen der lokalen Dateien durch Sichern des Servers.
Dies ermöglicht es mir, Verbesserungen mit neuen Makros schnell für alle zu propagieren.
Früher habe ich die gleiche Symbolleiste @maclane durchlaufen (aber die IT-Abteilung hatte die Installation von Software aus einer Quelle blockiert, die nicht ausreichend bekannt war!)
Damit der Code der bat-Datei aus dem Netzwerk in das lokale Netzwerk kopiert werden soll:

Echo Message > log.txt
Echo Message >> log.txt
chcp 65001
Echo "Fermer Solidworks puis appuyer sur entrée"
pause
cd %LOCALAPPDATA%\Visiativ\myCADtools\CustomToolbar
ren "%LOCALAPPDATA%\Visiativ\myCADtools\CustomToolbar" "CustomToolbar save-%date:/=-%" 
xcopy "Z:\XXX\xxx\Solidworks\Configuration\CustomToolbar\Sauvegarde Profil\Profil-SW2023\" "%LOCALAPPDATA%\Visiativ\myCADtools\CustomToolbar" /e /i /c /h /y > "Z:\XXX\xxx\Solidworks\Configuration\CustomToolbar\log.txt

Bearbeiten: Ich habe gerade eine Entwicklungsanfrage über Visiativ gestellt, um einen Netzwerksicherungspfad zu haben und über eine Sicherungsdatei für dieses Dienstprogramm wiederherzustellen.

2 „Gefällt mir“

… Haben sie Ihnen auf diese Entwicklung geantwortet? Ich hatte es auch vor ein paar Jahren angefordert... ohne Antworten.

Das Gleiche @Maclane , ich habe eine neue Anfrage gestellt, bevor ich die Bearbeitung geschrieben habe.
Durch die Gruppierung unserer Anfragen kann es passieren!
Und wenn @fmarchand zum Beispiel den Wunsch unterstützen können, wäre das noch besser!
Beispiel für die Konkurrenzsoftware, die mir in diesem Punkt großartig erscheint:

1 „Gefällt mir“