Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Strings und Integer

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
Autor Thema:  Strings und Integer (3356 mal gelesen)
MichaelTreiber
Mitglied
Technischer Produktdesigner


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

Beiträge: 63
Registriert: 26.01.2011

Win XP/7 (64 Bit)
Catia V5R18

erstellt am: 31. Jan. 2011 13:21    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 zusammen,
der Neue hat mal wieder eine Frage 

da ich ja relativ neu im Bereich VBA bin, habe ich mich im Netz mal schlau gemacht, wie der Befehl für die Umwandlung von einem String in einen Integer aussieht, aber erstmal sollte ich euch generell mein Problem erklären:

Ich versuche über VBA eine UserForm zu erstellen in der ich 3 Textboxes habe, die für die Höhe,Breite,Länge eines Würfels stehen. Sprich wenn ich auf den Button meiner Form klicke soll das Programm auf die eingetippten Werte der Textboxes zurückgreifen und diese als Werte übernehmen.

Wenn ich das richtig verstanden habe ist die jeweilige Caption jedoch ein String, und ich befürchte, dass ich einen Integer Wert brauche.

Hier mein Code:

Code:
Dim Zahl As Integer
Dim Text As String

Text = tbHoehe.Caption
Zahl = CInt(Text)

length1.Value = Zahl


So habe ich den Code im Internet gefunden (halt nun mit meinen Variablen eingefügt), jedoch meckert er bei der Zeile "Zahl = CInt(Text)

Kann mir jemand vielleicht helfen?
Danke im Vorraus

------------------
Grüße aus dem schönen Düsseldorf
Michael

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

Christian.O
Mitglied
Konstrukteur


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

Beiträge: 1212
Registriert: 17.07.2009

erstellt am: 31. Jan. 2011 13:33    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 MichaelTreiber 10 Unities + Antwort hilfreich

Servus,

warum tbHoehe.Caption? Caption steht doch für die Überschrift deiner Userform. Sprich der Fensternamen deiner Userform. Wenn du 3 Textboxen hast dann sollte das tbHoehe.Text heißen. Dann solltest du auch keine Fehlermeldung mehr erhalten.

------------------
Mit freundlichen Grüßen aus Tirol
Christian Obholzer

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 31. Jan. 2011 13:40    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 MichaelTreiber 10 Unities + Antwort hilfreich

 
Zitat:
Original erstellt von MichaelTreiber:
Hier mein Code:

Code:
Dim Zahl As Integer
Dim Text As String

Text = tbHoehe.Caption
Zahl = CInt(Text)

length1.Value = Zahl



Wieso .Caption? Das ist die Überschrift des Textfeldes und diese dürfte wohl aus Buchstaben bestehen, die du nicht einfach umwandeln kannst. Ich würde dir auch empfehlen, bei Eingabe eine Prüfung einzubauen, die sicherstellt, dass lediglich Zahlen eingeben werden können.

Ich gehe davon aus, dass es wohl eher so aussehen sollte...

Code:
Dim Zahl As Integer
Dim Text As String

Text = tbHoehe.text
Zahl = CInt(Text)

length1.Value = Zahl


Edit: Christian war schneller 

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

   

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

MichaelTreiber
Mitglied
Technischer Produktdesigner


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

Beiträge: 63
Registriert: 26.01.2011

Win XP/7 (64 Bit)
Catia V5R18

erstellt am: 31. Jan. 2011 13:48    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

Ah stimmt.

Danke vielmals für die schnellen Antworten. 

------------------
Grüße aus dem schönen Düsseldorf
Michael

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

MichaelTreiber
Mitglied
Technischer Produktdesigner


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

Beiträge: 63
Registriert: 26.01.2011

Win XP/7 (64 Bit)
Catia V5R18

erstellt am: 31. Jan. 2011 14:13    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 nochmal,

ich habe nun den Befehl Caption in Text umgewandelt, jedoch meckert das Programm immernoch bei der selben Zeile, in der ich meiner "Text" Variable den Wert meiner Textbox zuweisen möchte.

Vielleicht liegt mein Problem jedoch auch wo anders. Ich versuch euch einfach mal ein paar mehr Infos zu geben:

Ich starte mein Programm über ein Modul mit dem Namen "Main" welches meine Userform aufruft. In der Userform aktiviere ich dann über einen Click auf meinen Button ein weiteres Modul über "Call Masse.CATMain" und dann folgt folgende Code-Reihe im aufgerufenen Modul:

Code:
Sub CATMain()

Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument

Dim part1 As Part
Set part1 = partDocument1.Part

Dim parameters1 As Parameters
Set parameters1 = part1.Parameters

Dim length1 As Length
Set length1 = parameters1.Item("Hoehe")

Dim Zahl As Integer
Dim Text As String

Wort = tbHoehe.Text
Zahl = CInt(Text)

length1.Value = Zahl


Dazu muss ich sagen, dass wir das ganze über Makro aufzeichnen erstellt haben und alles funktioniert hat, als in der letzten Zeile anstatt "Zahl" ein Zahlenwert (z.B. "130#") stand und die 4 Zeilen darüber noch nicht vorhanden waren. Also hat er vorher die Höhe auf 130mm definiert. Ich wollte lediglich diese Zahl durch das Zurückgreifen auf eine Textbox ersetzen, damit man beliebige Größen über die Userform angeben kann.

Mein Vermutung ist, dass ich doch kein Integer sondern eine "Length" Einheit brauche, aber wie gesagt bin ich neu und ich probiere seit ein paar Stunden rum und komme zu keinem Ergebnis.

Vielleicht hat nun jemand meinen Fehler gefunden.
Vielen Dank im Vorraus

------------------
Grüße aus dem schönen Düsseldorf
Michael

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 31. Jan. 2011 14:19    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 MichaelTreiber 10 Unities + Antwort hilfreich

Zitat:
Original erstellt von MichaelTreiber:
Code:
Sub CATMain()

Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument

Dim part1 As Part
Set part1 = partDocument1.Part

Dim parameters1 As Parameters
Set parameters1 = part1.Parameters

Dim length1 As Length
Set length1 = parameters1.Item("Hoehe")

Dim Zahl As Integer
Dim Text As String

Wort = tbHoehe.Text '<--- ?????
Zahl = CInt(Text)

length1.Value = Zahl



versuch es mal so...

Code:
Sub CATMain()

Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument

Dim part1 As Part
Set part1 = partDocument1.Part

Dim parameters1 As Parameters
Set parameters1 = part1.Parameters

Dim length1 As Length
Set length1 = parameters1.Item("Hoehe")

Dim Zahl As Integer
Dim Text As String

Text = tbHoehe.Text
Zahl = CLng(Text) ' wandelt den Datentyp in das Format Long um

length1.Value = Zahl


Wenn du mit Nachkommastellen arbeitest, dann kannst du nicht Integer nehmen, da diese lediglich Ganzzahlig ist.

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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

MichaelTreiber
Mitglied
Technischer Produktdesigner


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

Beiträge: 63
Registriert: 26.01.2011

Win XP/7 (64 Bit)
Catia V5R18

erstellt am: 31. Jan. 2011 14:28    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

Das mit dem Wort anstatt Text war ein Versehen, hatte zwischendurch was anderes ausprobiert. Sollte natürlich der gleiche Name sein.

Habe deine Variante nun auch ausprobiert, jedoch meckert er schon wieder bei der Zeile wo ich meiner String Variable den Wert zuweise. 

Ich komme ja nichtmal zu Length.value , da er den Wert nicht akzeptiert. Vielleicht übersehe ich einfach ein klitzekleines Detail...

------------------
Grüße aus dem schönen Düsseldorf
Michael

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 31. Jan. 2011 14:33    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 MichaelTreiber 10 Unities + Antwort hilfreich

sorry, ich habe etwas wichtiges aber entscheidendes vergessen...
Code:
Sub CATMain()

Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument

Dim part1 As Part
Set part1 = partDocument1.Part

Dim parameters1 As Parameters
Set parameters1 = part1.Parameters

Dim length1 As Length
Set length1 = parameters1.Item("Hoehe")

Dim Zahl As Long
Dim Text As String

Text = tbHoehe.Text
Zahl = CLng(Text) ' wandelt den Datentyp in das Format Long um

length1.Value = Zahl


Übrigens wäre es sehr hilfreich, wenn du einen Screenshot des Fehlers oder den genauen Inhalt mit posten würdest.

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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

MichaelTreiber
Mitglied
Technischer Produktdesigner


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

Beiträge: 63
Registriert: 26.01.2011

Win XP/7 (64 Bit)
Catia V5R18

erstellt am: 31. Jan. 2011 14:46    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


eins.JPG


zwei.JPG

 
Funktioniert wieder nicht. 

Habe nun 2 Bilder hinzugefügt:
Das erste zeigt zum einen mein Userface wo ich die Zahlen eingebe, und zum anderen den Fehler den er anzeigt wenn ich auf den Button klicke.
Das zweite Bild zeigt dann die Zeile an , wo der Fehler liegen soll, wenn ich auf Debug klicke.

------------------
Grüße aus dem schönen Düsseldorf
Michael

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 31. Jan. 2011 14:53    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 MichaelTreiber 10 Unities + Antwort hilfreich

Das Objekt ist garnicht initialisiert bzw. bewegst du dich nicht in diesem Container. TBHoehe muss vorhanden sein. Damit kann CATMain () aber nicht richtig sein. Wenn, dann müsstest du dich ja in dem Click_Ereigniss von "Würfel erstellen" befinden.

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)  -  Was ist die Systeminfo?  -  Wie man Fragen richtig stellt.  -  Unities

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

MichaelTreiber
Mitglied
Technischer Produktdesigner


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

Beiträge: 63
Registriert: 26.01.2011

Win XP/7 (64 Bit)
Catia V5R18

erstellt am: 31. Jan. 2011 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

Stimmt, das ergibt Sinn. 

Also müsste ich quasi den gesamten Code nicht über ein Modul aufrufen sondern einfach den gesamten Code (ohne Sub CATMain) in btWuerfel.Click packen? Seh ich das richtig?

------------------
Grüße aus dem schönen Düsseldorf
Michael

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

MichaelTreiber
Mitglied
Technischer Produktdesigner


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

Beiträge: 63
Registriert: 26.01.2011

Win XP/7 (64 Bit)
Catia V5R18

erstellt am: 31. Jan. 2011 15:08    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

Habs hinbekommen.

Danke für deine Geduld. 

Schwere Geburt

------------------
Grüße aus dem schönen Düsseldorf
Michael

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)2023 CAD.de | Impressum | Datenschutz