Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Bug13/bei Makro
#1
Hallo Zusammen

Ich benötige eure Hilfe... Und zwar habe ich für meine MAS Arbeit ein Tool entwickelt und es funktioniert auch alles auf meinem PC. Nun muss dieses Tool aber auch auf dem PC im Geschäft laufen...tut es aber nicht :(
Und zwar habe ich einen Button, welcher meine Eingabemaske aufrufen sollte. sobald ich aber diesen Button drücke, kommt der Laufzeitfehler 13. In VisualBasic wird folgende Zeile gelb hinterlegt: 

Private Sub txtVerzinsungPK_Change ()
With Worksheets ("Tool")
.Range ("B38") = CDbl (txtVerzinsungPK)
End With
End Sub

Irgendwie kann ich mir diesen Fehler nicht erklären.

Vielen Dank für eure Hilfe/Inputs.

LG Renato
Antworten Top
#2
Hallo Renato,

puh, das ist ja ne harte Nuss, die Du da zu knacken hast.
[sarcasm]Ich bin mir allerdings ziemlich sicher, dass der Fehler in Zeile 42 liegt.[/sarcasm]

Dein Laufzeitfehler 'Typen unverträglich' ist doch sehr aussagekräftig...
Gruß Jonas
Antworten Top
#3
Moin!
Und am Rande …
Das _Change-Event der Textbox ist für den Übertrag in eine Zelle denkbar ungeeignet.
Entweder Du nimmst das _Exit (vorherige Prüfung incl.)
oder (besser) Du überträgst erst vor Schließen des UserForm (vorherige Prüfung incl.).

Ansonsten (um Zeile 42 des Codes zu überprüfen  :21:) lädst Du mal die Datei hoch.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#4
Habe ich schon erwähnt, dass ich nicht wirklich der Excel Profi bin :)

Das Excel File kann ich aufgrund der sensiblen Daten nicht hochladen...hier wäre der ganze Code der Eingabemaske:

Code:
Private Sub ComboBoxBeruf_Change()
With Worksheets("Tool")
.Range("B11") = ComboBoxBeruf
End With
End Sub

Private Sub CommandButton1_Click()
'fügt die eingetragenen Werte ins File




Unload Eingabemaske
End Sub

Private Sub CommandButton2_Click()
'schliesst das Formular Eingabe Personalien

Unload Eingabemaske


End Sub








Private Sub Label2_Click()

End Sub

Private Sub txt3Säule_Change()
With Worksheets("Tool")
.Range("B73") = CDbl(txt3Säule)
End With
End Sub

Private Sub txtAnlagen_Change()
With Worksheets("Tool")
.Range("B67") = CDbl(txtAnlagen)
End With
End Sub

Private Sub txtAnzahlmonate_Change()
With Worksheets("Tool")
.Range("B19") = txtAnzahlmonate
End With
End Sub

Private Sub txtBeitragsjahre_Change()
With Worksheets("Tool")
.Range("B14") = txtBeitragsjahre
End With
End Sub

Private Sub txtBruttolohn_Change()
With Worksheets("Tool")
.Range("B17") = CDbl(txtBruttolohn)
End With
End Sub

Private Sub txtBudget_Change()
With Worksheets("Tool")
.Range("B16") = CDbl(txtBudget)
End With
End Sub

Private Sub txtGeburtsdatum_Change()
With Worksheets("Tool")
.Range("B9") = txtGeburtsdatum
End With
End Sub

Private Sub txtGeschlecht_Change()
With Worksheets("Tool")
.Range("B6") = txtGeschlecht
End With
End Sub

Private Sub txtKinder_Change()
With Worksheets("Tool")
.Range("B12") = txtKinder
End With
End Sub

Private Sub txtLiquidität_Change()
With Worksheets("Tool")
.Range("B66") = CDbl(txtLiquidität)
End With
End Sub

Private Sub txtName_Change()
With Worksheets("Tool")
.Range("B7") = txtName
End With
End Sub

Private Sub txtpa_Change()
With Worksheets("Tool")
.Range("B75") = CDbl(txtpa)
End With
End Sub

Private Sub txtPKGuthaben_Change()
With Worksheets("Tool")
.Range("B25") = CDbl(txtPKGuthaben)
End With
End Sub

Private Sub txtSparquoteAllgemein_Change()
With Worksheets("Tool")
.Range("B68") = CDbl(txtSparquoteAllgemein)
End With
End Sub

Private Sub txtSzenarioI_Change()
With Worksheets("Tool")
.Range("B39") = CDbl(txtSzenarioI)
End With
End Sub

Private Sub txtSzenarioII_Change()
With Worksheets("Tool")
.Range("C39") = CDbl(txtSzenarioII)
End With
End Sub

Private Sub txtSzenarioIII_Change()
With Worksheets("Tool")
.Range("D39") = CDbl(txtSzenarioIII)
End With
End Sub

Private Sub txtVerzinsung_Change()
With Worksheets("Tool")
.Range("B74") = CDbl(txtVerzinsung)
End With
End Sub

Private Sub txtVerzinsungPK_Change()
With Worksheets("Tool")
.Range("B38") = CDbl(txtVerzinsungPK)
End With
End Sub

Private Sub txtVerzinsungSparquote_Change()
With Worksheets("Tool")
.Range("B69") = CDbl(txtVerzinsungSparquote)
End With
End Sub

Private Sub txtVorname_Change()
With Worksheets("Tool")
.Range("B8") = txtVorname
End With
End Sub

Private Sub txtZivilstand_Change()
With Worksheets("Tool")
.Range("B13") = txtZivilstand
End With
End Sub

Private Sub UserForm_Initialize()
'Werte beim aufruf des Formulares wird automatisch eingetragen

       With Me
       .txtBeitragsjahre.Value = 44
       .txtAnzahlmonate.Value = 12
       .txtpa.Value = 6768
       .txtVerzinsungPK = 0.02
       .txtSzenarioI = 0.068
       .txtSzenarioII = 0.05
       .txtSzenarioIII = 0.04
       .txtVerzinsung = 0.005
       .txtVerzinsungSparquote = 0.01
       
       
       End With

       With Worksheets("Tool")
       Me.ComboBoxBeruf.RowSource = "S12:S56"
       End With


End Sub
Antworten Top
#5
Ich wiederhole mich:
Change ist Tinnef, weil bei jedem eingegebenen Zeichen in der TextBox die Zelle aktualisiert wird.
Wenn Du einen TEXT, der wie eine ZAHL aussieht, übergeben willst, musst Du ihn wie Du es ja auch machst, mittels CDbl() oder CInt() oder TEXT*1 oder TEXT+0 oder … in eine Zahl umwandeln.
Wenn da jetzt aber etwas in die TextBox eingegeben wird, was sich NICHT in eine Zahl umwandeln lässt (Buchstabe, Sonderzeichen, Leerzeichen, …) läuft Dein Code in besagten Fehler!

Langer Rede, kurzer Sinn:
Prüfe auf IsNumeric(TextBox.Value)

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#6
Sorry Ralf...aber verstehe z.t. nur Bahnhof...:/
wo soll ich diesen code einsetzen? zwischen jedem Prvate Sub und end Sub?

Aber das komische ist ja...das file funktioniert auf meinem PC...nur wenn ich es auf einem anderen PC anwenden möchte, funktioniert es nicht.
Antworten Top
#7
Zitat:funktioniert es nicht
"Es" funktioniert nicht, wenn Du einen Buchstaben oder ein Sonderzeichen eingibst.
Zitat:Das Excel File kann ich aufgrund der sensiblen Daten nicht hochladen
Dann lass es oder anonymisiere "empfindliche" Daten.
Ansonsten wird Dir niemand weitergehendere Tipps als meinen bisher Gegebenen schenken können.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top
#8
Lieber Ralf

Das File Funktioniert auf meinem PC Einwandfrei. Wenn ich es auf einen USB Stick kopiere oder via E-Mail sende funktioniert es nicht mehr. Nicht die Eingabe funktioniert nicht...sondern bereits beim Drücken des Buttons erfolgt der Bug13...Ich komme nicht soweit um ein Zeichen, Zahl oder Sonderzeichen einzugeben.
Antworten Top
#9
(30.05.2017, 12:05)RPP63 schrieb: Dann lass es oder anonymisiere "empfindliche" Daten.
Ansonsten wird Dir niemand weitergehendere Tipps als meinen bisher Gegebenen schenken können.
Gruß Jonas
Antworten Top
#10
Liebster *ohneName*!
Ohne Datei kann und will ich Dir nicht helfen!

Dies ist kein Affront, sondern folgerichtig.

Gruß Ralf
Gib einem Mann einen Fisch und du ernährst ihn für einen Tag. 
Lehre einen Mann zu fischen und du ernährst ihn für sein Leben. (Konfuzius)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste