Form mit Doc datei verlinken & Addition Code

wenn das label visible dann sagt mir die summe gar nichts an, sprich der wert ändert sich nicht. wenn aber das label invisible ist dann kommt der fehler

laufzeitfehler '13' typen unverträglich
 
wenn das label visible dann sagt mir die summe gar nichts an, sprich der wert ändert sich nicht. wenn aber das label invisible ist dann kommt der fehler

laufzeitfehler '13' typen unverträglich

Standard-Eigenschaft des "Label"-Steuerelements ist Caption, mit Datentyp String

Laufzeitfehler 13 - Typen unverträglich ist meistens ein Hinweis, dass versucht wird Äpfel mit Birnen zu addieren!
 
Das komische ist ja, dass er nur den Fehler macht, wenn ich keine Labels auswähle.
Jedoch wenn ich ein Label auswähle und dies visible wird addiert er es nicht bzw nimmt den Wert nicht in meine Summe bzw Label52 über.
 
Das komische ist ja, dass er nur den Fehler macht, wenn ich keine Labels auswähle.
Jedoch wenn ich ein Label auswähle und dies visible wird addiert er es nicht bzw nimmt den Wert nicht in meine Summe bzw Label52 über.

Kannst du mal den Code der Prozedur hier hineinstellen, und markieren, wo der Fehler auftritt? Um ehrlich zu sein, kann ich mir gerade nicht vorstellen, was du eigentlich erreichen willst!
 
Der Fehler tritt schon beim ersten Label auf.

If Label1.Visible Then summe = summe + Label1

VB markiert was ich in gelb markiert habe,
Ich muss ein Programm für meine Arbeit schreiben, was uns Preise ausgibt. Ich habe zwei Combobpxen. Je nachdem was ich aus diesen Combos auswähle, ändert sich der Preis bzw Wert von den einzelnen labels. Die labels habe ich mit checkboxen verlinkt, sprich jedes label hat seinen eigenen checkbox. Wenn ich jetzt label1 und label2 visible mache, soll Label52 diese zwei addieren. mit meinem herkömmlichen code, hat VB auch die anderen labels addiert, die invisible waren.
Die auf der Arbeit denken, nur weil ich Maschinenbau studiert habe könnte ich auch Programme schreiben, eine Ausrede um Geld einzusparen.
Ok, vielen Dank für deine Mühe zu Helfen.
Werde mich morgen wieder melden, hier ist es Nachtime.

Gruss aus dem Winter Australiens
 
Der Fehler tritt schon beim ersten Label auf.

If Label1.Visible Then summe = summe + Label1

VB markiert was ich in gelb markiert habe,
Ich muss ein Programm für meine Arbeit schreiben, was uns Preise ausgibt. Ich habe zwei Combobpxen. Je nachdem was ich aus diesen Combos auswähle, ändert sich der Preis bzw Wert von den einzelnen labels. Die labels habe ich mit checkboxen verlinkt, sprich jedes label hat seinen eigenen checkbox. Wenn ich jetzt label1 und label2 visible mache, soll Label52 diese zwei addieren. mit meinem herkömmlichen code, hat VB auch die anderen labels addiert, die invisible waren.
Die auf der Arbeit denken, nur weil ich Maschinenbau studiert habe könnte ich auch Programme schreiben, eine Ausrede um Geld einzusparen.
Ok, vielen Dank für deine Mühe zu Helfen.
Werde mich morgen wieder melden, hier ist es Nachtime.

Gruss aus dem Winter Australiens

1) Aus deinem Kommentar leite ich ab, dass du 52 (!!) Labels auf deiner Form hast! Warum erstellst du nicht einfach ein Control-Array? Ist IMHO viel einfacher dann, die Dinger abzufahren.

For i=1 to AnzahlLabels

if Label(i).Visible then Summe=Summe + Val(Label(i).Caption)

next

2) Da dich das Programm bereits in der ersten Zeile anmeckert (mit Fehler 13 - Type Mismatch), stimmen die Datentypen nicht überein. Da du addieren willst, gehe ich davon aus, dass in den ganzen Labels Zahlen stehen sollen. Es wäre eine Überlegung wert, bei Programmstart alle Labels mit gültigen Zahlenwerten zu initialisieren. Achtung: Solltest du bei irgendeinem Label einen String drinstehen haben, wird dich Val(Label) (siehe Punkt 1) auch anmeckern.

Eventuell eine Plausibilitätsabfrage einbauen:

For i=1 to AnzahlLabels

if Label(i).Visible then
If IsNumeric(Label(i).Caption) Then Summe=Summe + Val(Label(i).Caption)
End if

next
 
Ok, jetzt erhalte ich keine Fehler Meldung mehr, jedoch erscheint keine Zahl in meiner Label52 box. Noch einen anderen Tip?

Tja, damit hast du meine Vermutung bestätigt: Du hast mit 99% Wahrscheinlichkeit Strings (=Text) in deinen Labels stehen, und die kann man nun mal nicht wie ZAHLEN (!!) addieren.
Vor allem nachdem ich deinen anderen Thread gefunden habe!

Private Sub Label52_Click()

'Rechen Code fuer Einkaufskosten

summe = Val(Label62) + Val(Label2) + Val(Label3) + Val(Label4) '*Rest weggeschnippelt*

Label62.Caption = CStr(Label62) 'Gearbox
Label2.Caption = CStr(Label2) 'Basic Design
Label3.Caption = CStr(Label3) 'Basic Fabrication
Label4.Caption = CStr(Label4) 'Basic Torquw Arm
*Rest weggeschnippelt*

Du hast Strings in den Labels stehen! Kein Wunder, dass dein Programm dauernd wegen Type Mismatch meckert.
 

Neue Beiträge

Zurück