Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Username in die Zeichnung eintragen mit einem Makro

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
PLM TechnologieForum Bamberg
Autor Thema:  Username in die Zeichnung eintragen mit einem Makro (2790 mal gelesen)
Mc Fly
Mitglied
Masch-bautechniker


Sehen Sie sich das Profil von Mc Fly an!   Senden Sie eine Private Message an Mc Fly  Schreiben Sie einen Gästebucheintrag für Mc Fly

Beiträge: 254
Registriert: 03.11.2003

Win7 Prof SP1 X64
Intel Xeon W3670
16GB RAM
SWX 2011 SP5
** CSWP 10/07 **

erstellt am: 04. Feb. 2013 10:50    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


Ausgefullt.jpg

 
Hallo zusammen,

ich habe das Makro von Andi Beck => http://ww3.cad.de/foren/ubb/Forum2/HTML/023352.shtml#000012
für unseren Schriftkopf modifiziert, nur mit dem Problem das ich den User über das Pulldownmenü eintrage, da wir aber Weltweit Vertretungen haben, sollte man es über einen command Button erledigen, wie das bei dem AutoDate auch ganz gut funktioniert.

hier ist der Code für das AutoDate
Private Sub cmdAutoDate_Click()
    ' aktuelle sGez-Datum im datumsfeld eintragen
    txtSfGezDatum = Format(Date, "dd.mm.yy")
End Sub

hier ist der Code für den UserName
Private Sub cmdGetUserName_Click()
    ' aktuelle sGez-Datum im datumsfeld eintragen
    txtSfGezeichnetdurch = Name
End Sub

Function GetUserName() As String
  On Error Resume Next
  Dim objWSHNetwork As Object
  Set objWSHNetwork = CreateObject("WScript.Network")

  GetUserName = objWSHNetwork.UserName
    Debug.Print objWSHNetwork.ComputerName
    Debug.Print objWSHNetwork.UserDomain

  Set objWSHNetwork = Nothing
End Function

Bei Bedarf stelle ich auch das kpl. Makro incl. Rahmen und Teil zur Verfügung.


Oder kann man das auch anhand einens API Befehls direkt in das Makro einbinden, damit es den User ausliest und dann über den command Button eintragen kann.

Ich möchte es in einem Makro kombiniert haben, da ich eine .exe aus dem Makro erstelle und es den jeweiligen Personen bzw. Niederlassungen zukommen lassen und direkt einbinde, damit Sie es benutzen können.

Danke im voraus
Mc Fly


hier erscheit aber dann immer "Zeichnungskopf_ausfüllen" der Name des gesamten Makros


------------------
Ich sehe in jedem Mensch zuerst das positive, enttäuscht werde ich noch früh genug.

[Diese Nachricht wurde von Mc Fly am 04. Feb. 2013 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

StefanBerlitz
Guter-Geist-Moderator
IT Admin (CAx)



Sehen Sie sich das Profil von StefanBerlitz an!   Senden Sie eine Private Message an StefanBerlitz  Schreiben Sie einen Gästebucheintrag für StefanBerlitz

Beiträge: 8756
Registriert: 02.03.2000

SunZu sagt:
Analysiere die Vorteile, die
du aus meinem Ratschlag ziehst.
Dann gliedere deine Kräfte
entsprechend und mache dir
außergewöhnliche Taktiken zunutze.

erstellt am: 04. Feb. 2013 11:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Mc Fly 10 Unities + Antwort hilfreich

Hallo Mc Fly,

ich vermute es liegt an dem falschen Aufrufparameter

Zitat:
Original erstellt von Mc Fly:
hier ist der Code für den UserName
Private Sub cmdGetUserName_Click()
    ' aktuelle sGez-Datum im datumsfeld eintragen
    txtSfGezeichnetdurch = Name
End Sub

Function GetUserName() As String
  On Error Resume Next
  Dim objWSHNetwork As Object
  Set objWSHNetwork = CreateObject("WScript.Network")

  GetUserName = objWSHNetwork.UserName
    Debug.Print objWSHNetwork.ComputerName
    Debug.Print objWSHNetwork.UserDomain

  Set objWSHNetwork = Nothing
End Function



Trag mal oben in der Prozedur des Button den Namen des Funktionsaufrufes "GetUserName" ein, dann sollte es schon klappen.

Zur zweiten Frage: in der UserForm1_Initialize kannst du das Textfeld schon über die GetUserName füllen oder mit "cmdGetUserName_Click" ein Klicken des Knopfes simulieren.

Ciao,
Stefan

------------------
Inoffizielle deutsche SolidWorks Hilfeseite    http://solidworks.cad.de

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

nahe
Ehrenmitglied



Sehen Sie sich das Profil von nahe an!   Senden Sie eine Private Message an nahe  Schreiben Sie einen Gästebucheintrag für nahe

Beiträge: 1747
Registriert: 18.01.2001

arbeite mit:
Dell Precision 7750
i7 2,6 GHz 6 Kerne
32GB RAM
512GB SSD
NVIDIA Quadro RTX 4000
------------------------
SWX-2020 SP5.0
EPDM
----------------
Windows 10
----------------
VB.net
VB
VBA
ein wenig Swift am Mac

erstellt am: 04. Feb. 2013 11:09    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Mc Fly 10 Unities + Antwort hilfreich

Hallo

der Benutzername ist eine Windows Umgebungsvariable die Du mit "Environ" in VBA auslesen kannst

z.B.: uname = Environ("USERNAME")

------------------
Grüße
Heinz

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Mc Fly
Mitglied
Masch-bautechniker


Sehen Sie sich das Profil von Mc Fly an!   Senden Sie eine Private Message an Mc Fly  Schreiben Sie einen Gästebucheintrag für Mc Fly

Beiträge: 254
Registriert: 03.11.2003

Win7 Prof SP1 X64
Intel Xeon W3670
16GB RAM
SWX 2011 SP5
** CSWP 10/07 **

erstellt am: 04. Feb. 2013 11:45    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Stefan,

danke für deine Hilfe, das war es natürlich ich habe vor lauter Bäume den Wald nicht mehr gesehen    .

Ü's sind schon verteilt. 

------------------
Ich sehe in jedem Mensch zuerst das positive, enttäuscht werde ich noch früh genug.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Christian_W
Ehrenmitglied V.I.P. h.c.
Konstrukteur (Dipl-Ing)


Sehen Sie sich das Profil von Christian_W an!   Senden Sie eine Private Message an Christian_W  Schreiben Sie einen Gästebucheintrag für Christian_W

Beiträge: 3189
Registriert: 04.04.2001

CSWP 12/2015<P>SWX2021sp5 Win10/11
(SWX2016, SWX2012)
proAlpha6.2e00/calinkV9
(Tactonworks)
(Medusa7, NesCAD2010,
solidEdge19)

erstellt am: 28. Sep. 2016 10:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für Mc Fly 10 Unities + Antwort hilfreich

Mal wieder was altes hervorgekramt ... 


Bin dabei Makros für SWX2016 anzupassen und stolpere dabei über den usernamen.

da gibt es 2 Einzeiler, die bei mir gerade beide funktionieren und das gleiche liefern:

Code:
myBenutzer = Environ$("username")
myBenutzerNet = CreateObject("Wscript.Network").UserName

wie die längere Konstruktion mit dem Anfang

Code:
Declare Function GetUserName Lib "advapi32.dll"

die jetzt natürlich nicht mehr geht und angepasst werden muss (ptrsafe, longptr)

gibt es da Präferenzen, welche Version am schnellsten, schönsten, zukunftssichersten, stabilsten, manipulierungssichersten ... das gewünschte Ergebnis liefert?

ist es ggf. sinnvoll, statt dem Einzeiler mit CreateObject den hier auch dargestellten mehrzeiligen Konstrukt zu verwenden?

Ich neige doch dazu, den Extra-Aufruf durch einen Einzeiler zu ersetzen. 

Gruß, Christian

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz