Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  Konstruktionstabelle mit UserForm in VBA steuern.

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
  
SolidCAM Professor Videos | Tipps & Tricks (SolidCAM)
Autor Thema:  Konstruktionstabelle mit UserForm in VBA steuern. (3375 mal gelesen)
Scoopa
Mitglied
MB Techniker


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

Beiträge: 232
Registriert: 26.04.2006

Celsius Workstation / WIN XP / AIP 2008 SP2

erstellt am: 27. Okt. 2009 23:54    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

ich habe mir eine userform1 gebaut mit der ich die eingefügten werte von skizzenmassen in der Tabelle1 ändern. dies funktioniert aktuell nur wenn ich das programm im editor teste.
macht man es so, dass man die kontruktionstabelle ändern möchte, dann kommt zwar die userform1 wo man die werte angeben kann. aber beim schliessen werden danach die neu eingegebenen werte nicht in die tabelle1 eingetragen.

wo könnte da der fehler liegen? hat vielleicht jemand einen tip?
schon mal vielen dank für jede antwort!

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

MWN
Mitglied
Dipl.-Ing.


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

Beiträge: 492
Registriert: 14.02.2007

erstellt am: 28. Okt. 2009 07:16    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 Scoopa 10 Unities + Antwort hilfreich

Guten Morgen Scoopa,

es wäre doch schön, wenn du mal deine Tastatur reparieren könntest, denn wie mir scheint, funktioniert dort die Großschreibtaste nicht!    Schade, es würde nämlich erheblich zum Verständnis deines Anliegens beitragen.
Zum Anderen wäre es auch noch schön, wenn du uns den Codeschnipsel, um den es sich dreht, posten könntest, damit wir uns hier nicht alles aus den Fingern saugen müssen!
Mit ein Paar mehr Info's sind bestimmt eine Menge an Leuten gewillt, dir zu helfen!
Grüße

Tobias

------------------
Besucht mich doch mal in meiner Tischlerei

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

Scoopa
Mitglied
MB Techniker


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

Beiträge: 232
Registriert: 26.04.2006

Celsius Workstation / WIN XP / AIP 2008 SP2

erstellt am: 28. Okt. 2009 09: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

So hier mal ein Codebeispiel wie ich es aktuell im Einsatz habe.
Problem ist, dass die Eingaben nicht in die Exceltabelle übertragen werden. Warum ist das so? Was habe ich vergessen?


Private Sub Workbook_Open()
UserForm1.Show

End Sub

Private Sub CommandButton1_Click()
'Länge übertragen in Skizzen
DieseArbeitsmappe.Worksheets("Tabelle1").Range("B3").Value = TextBox1.Text
'Breite übertragen in Skizze
DieseArbeitsmappe.Worksheets("Tabelle1").Range("C3").Value = TextBox2.Text
'Dicke übertragen in Feature
DieseArbeitsmappe.Worksheets("Tabelle1").Range("D3").Value = TextBox3.Text

DieseArbeitsmappe.Worksheets("Tabelle1").Activate

End Sub

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

Scoopa
Mitglied
MB Techniker


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

Beiträge: 232
Registriert: 26.04.2006

Celsius Workstation / WIN XP / AIP 2008 SP2

erstellt am: 28. Okt. 2009 19:29    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

Sind noch mehr Informationen notwendig oder ist noch etwas unklar?

Freu mich über jede Hilfe.

Schon mal Vielen Dank im voraus!

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

MWN
Mitglied
Dipl.-Ing.


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

Beiträge: 492
Registriert: 14.02.2007

erstellt am: 29. Okt. 2009 07:38    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 Scoopa 10 Unities + Antwort hilfreich


TEST_KT.SLDPRT.zip

 
Guten Morgen Scoopa,

also wenn ich dich richtig verstehe, hast du eine Konstruktionstabelle (natürlich auf Excel - Basis), die wiederum über eine UserForm mit Textboxen verfügt, die Werte in diese Tabelle einträgt. Richtig?
Wenn ich das Ganze bei mir auf die Schnelle mit einem Button probiere, hinter dem folgender Code steht, so funktioniert es!

Code:
Private Sub CommandButton1_Click()
ThisWorkbook.Worksheets("Tabelle1").Range("B3").Value = "Test"
End Sub


Die Alternative zu "ThisWorkbook" wäre glaub ich "AcitveWorkbook", musst du allerdings mal probieren! Bei mir funktioniert es so: die UserForm wird mit dem Workbook_Open() - Event angezeigt, man macht die Eintragungen in die Boxen und dann Lässt man das Ganze in die Tabelle eintragen. Hat zwar den Nachteil, dass sich erst die UserForm darstellt und erste wenn diese geschlossen wird, dann sich die Excel-Tabelle zeigt, ist aber denke ich ausreichend!
Hab dir die Kopie der Konstruktionstabelle mal mit angehangen!
HTH und Grüße

Tobias

------------------
Besucht mich doch mal in meiner Tischlerei

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

MWN
Mitglied
Dipl.-Ing.


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

Beiträge: 492
Registriert: 14.02.2007

erstellt am: 29. Okt. 2009 07:47    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 Scoopa 10 Unities + Antwort hilfreich


VarMan.jpg

 
Hey Scoopa,

mir ist noch was eingefallen, also ein Nachtrag zu meinem vorherigen Post.
Wir nutzen für solche Fälle (Steuerung unserer Bauteile über eine Tabelle, in der alle Werte und Namen angezeigt werden) folgende Lösung - Nein, ich bekomme kein Geld dafür! Wenn du also mehr dazu erfahren willst, schick mir eine PM!
Grüße

Tobias

------------------
Besucht mich doch mal in meiner Tischlerei

[Diese Nachricht wurde von MWN am 29. Okt. 2009 editiert.]

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

Scoopa
Mitglied
MB Techniker


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

Beiträge: 232
Registriert: 26.04.2006

Celsius Workstation / WIN XP / AIP 2008 SP2

erstellt am: 29. Okt. 2009 09:39    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

Guten Morgen Tobias

besten Danke für Deine Antwort. Wenn ich das Makro nur im Excel ausführe dann funktioniert es problemlos.
Wenn man es allerdings in SolidWorks eingibt für ein Bauteil, dann haut es leider nicht mehr hin.
Ich konnte folgendes beobachten. Wenn ich neue Werte eintrage und danach die UserForm1 schliesse wird doch anschliessend die Exceltabelle geöffnet.
Nun sehe ich zuerst ganz kurz eine Tabelle mit den neu eingetragenen Werten. Danach werden die Werte aber gleich wieder mit den bereits vorhandenen überschrieben. Leider verstehe ich das nicht.    Irgendwas wird anscheinend nach dem Schliessen der UserForm1 bzw öffnen der Tabelle standardmässig geladen. Nur was ist es und wie kann man es abstellen?

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

MWN
Mitglied
Dipl.-Ing.


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

Beiträge: 492
Registriert: 14.02.2007

erstellt am: 29. Okt. 2009 13:16    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 Scoopa 10 Unities + Antwort hilfreich

Hey Scoopa,

wie mir scheint, hast du beim erstellen der Konstruktionstabelle im Abschnitt "Bearbeitungssteuerung" den Punkt "Modelländerungen zur Aktualisierung der Tabelle erlauben" ausgewählt! Wahrscheinlich musst du dort den Punkt "Modelländerungen, durch die die Tabelle aktualisiert werden würde, verhindern" auswählen! Ich kann mir das nur so erklären, dass dein Modell die Excel - Tabelle dann sofort überschreibt.
Klicke einmal mit der RMT im Konfigurationsmanager auf die Tabelle->Feature Bearbeiten und dann den unteren Punkt in der "Bearbeitungssteuerung" auswählen.
Vielleicht funktioniert es dann!
Grüße

Tobias

------------------
Besucht mich doch mal in meiner Tischlerei

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

Scoopa
Mitglied
MB Techniker


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

Beiträge: 232
Registriert: 26.04.2006

Celsius Workstation / WIN XP / AIP 2008 SP2

erstellt am: 29. Okt. 2009 14:38    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

Besten Danke für die Hilfe. Daran hat es gelegen!

Weisst Du vielleicht noch, warum man für das Verwenden der UserForm1 das Excel nebenbei geöffnet haben muss? Geht das nicht ohne?

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

MWN
Mitglied
Dipl.-Ing.


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

Beiträge: 492
Registriert: 14.02.2007

erstellt am: 29. Okt. 2009 15:04    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 Scoopa 10 Unities + Antwort hilfreich

Die UserForm wird doch über den VBA - Code im Excel, bzw. in der Excel - Tabelle erzeugt/ausgeführt! Du kannst doch nicht so einfach das VBA (= Visual Basic for Applications) ohne Application (in dem Fall Excel) laufen lassen! VBA ist eine, eigentlich mal, für MS Office entwickelte Scriptsprache!
Du kannst dir mittels vb.net eine eigene Zusatzanwendung erstellen, wo du auf die im Hintergrund liegende Konstruktionstabelle (Excel an sich ist zwar geladen, aber die Application ist unsichtbar) zurückgreifst. vb.net versteht sich einigermaßen gut mit Excel und der Rest ist nur Prgrammieraufwand!
Versuch dein Glück, guck dir die API - Beispiele von SolidWorks an, um herauszufinden, ob eine Konstruktionstabelle existiert, etc. und lad dir noch das SwVBAddin von der SolidWorks - Homepage, damit du mal den Einstieg hinbekommst.
Weiterführen kann ich dir auch noch die Seite von Daniel mysldworks.de empfehlen, mit sehr nützlichen Snipets!
Grüße

Tobias

------------------
Besucht mich doch mal in meiner Tischlerei

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