Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1844to1848
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Fehlermeldung im Code

Fehlermeldung im Code
31.08.2021 11:35:01
Dennis
Hallo liebes Forum,
ich habe einen Code geschrieben der eigentlich funktionierte. Seit ein paar Tagen kommt allerdings die folgende Fehlermeldung wobei ich eure Hilfe benötige:
"Run-time error '-2147352571 (80020005)':
Could not set the Value property. Type mismatch.
Er stoppt immer an der Stelle: TextBox1.Value = td.Cells(vntRow,2)
Er findet aber auch für vntRow einen Wert z.B. 3
Ich hoffe ihr könnt mir helfen. Falls eine Datei benötigt wird, stelle ich gerne eine zur Verfügung.
Viele Grüße Dennis

Private Sub UserForm_Activate()                 'Userform mit vorhandenen Werten ausfüllen
Dim tp As Worksheet, tv As Worksheet
Dim vntRow
Set tp = Worksheets("Overview")
Set td = Worksheets("Daten")
Call UnProtectAll
Application.DisplayAlerts = False
With tp
If .Cells(8, 3).Value  "" Then
vntRow = Application.Match(.Cells(8, 3).Value, td.Columns(1), 0)
If Not IsError(vntRow) Then
TextBox1.Value = td.Cells(vntRow, 2)
TextBox2.Value = td.Cells(vntRow, 1)
TextBox3.Value = td.Cells(vntRow, 11)
TextBox4.Value = td.Cells(vntRow, 14)
TextBox5.Value = td.Cells(vntRow, 20)
TextBox6.Value = td.Cells(vntRow, 29)
TextBox7.Value = td.Cells(vntRow, 15)
TextBox8.Value = td.Cells(vntRow, 16)
TextBox9.Value = td.Cells(vntRow, 13)
TextBox10.Value = td.Cells(vntRow, 21)
TextBox11.Value = td.Cells(vntRow, 22)
TextBox12.Value = td.Cells(vntRow, 23)
TextBox13.Value = td.Cells(vntRow, 24)
TextBox14.Value = td.Cells(vntRow, 25)
TextBox15.Value = td.Cells(vntRow, 26)
TextBox16.Value = td.Cells(vntRow, 28)
TextBox17.Value = td.Cells(vntRow, 27)
TextBox18.Value = td.Cells(vntRow, 31)
If td.Cells(vntRow, 17) = "Kartonage" Then             ' Materialart wird gespeichert
t = 1
ElseIf td.Cells(vntRow, 17) = "Füllmaterial" Then
t = 2
ElseIf td.Cells(vntRow, 17) = "Sonstiges" Then
t = 3
End If
If t = 1 Then
Kartonage.Value = True
ElseIf t = 2 Then
Füllmaterial.Value = True
ElseIf t = 3 Then
Sonstiges.Value = True
End If
If td.Cells(vntRow, 32).Value = "aktiv" Then       ' Anzeige ob das Material noch aktiv ist oder nicht
Aktiv.Value = True
Else: NichtAktiv.Value = True
End If
End If
End If
End With
Call ProtectAll
End Sub

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehlermeldung im Code
31.08.2021 12:42:01
PawelPopolski
Was steht denn in Zelle (8,3)? Könnte es sein, dass sich dort ein Text eingeschlichen hat?
AW: Fehlermeldung im Code
31.08.2021 13:07:30
Jan
Ja da steht ein Text drin. "Karton XL 1180x780x1060mm"
Zelle ist als General.
Ca. 60% sind Texte der Rest sind Zahlen. Aber hatte eigentlich nichts geändert. Wie gesagt hatte auch schon funktioniert
AW: Fehlermeldung im Code
31.08.2021 13:51:36
Daniel
HI Dennis/Jan
(es wäre schön, wenn der Name gleichbleibend wäre, auch wenn du mit verschiedenen Geräten arbeitest, sollstet du dich mit selben Namen anmelden)
rundsätzlich sollte man, wenn man Zellwerte in Textboxen schreibt, hierzu die .Text-Eigenschaft der Zelle verwenden.
Zahlen und Datumswerte werden dann so übernommen, wie sie in der Zelle angezeigt werden und auch Fehlerwerte in der Zelle stellen kein Problem dar:

Textbox1.Text = Cells(x, y).Text
hat aber mit deinem Fehler nichts zu tun, die deutet eher darauf hin, dass du ein Problem mit der Textbox1 selbst hast.
hast du die Textboxen mal umbenannt und die Textbox1 gibt es nicht mehr.
Gruß Daniel
Anzeige
AW: Fehlermeldung im Code
31.08.2021 14:36:27
Dennis
Hallo Daniel,
das mit dem Namen stimmt. Die Daten von einem Kollegen waren noch gespeichert und ich dachte ich hätte sie beim Antworten alle geändert.
Die Textboxen habe ich nicht umbenannt und sie existieren alle noch. Habe ich eben noch einmal nachgeschaut.
Viele Grüße
Dennis
AW: Fehlermeldung im Code
31.08.2021 14:41:47
Dennis
Wenn ich den Code wie nachfolgend verändere geht es, aber möchte eigentlich nicht für alle Textboxen eine zusätzliche Variable und Codezeilen reinschreiben
If Not IsError(vntRow) Then
x = td.Cells(vntRow, 2)
TextBox1.Value = x
x = td.Cells(vntRow, 1)
TextBox2.Value = x
AW: Fehlermeldung im Code
31.08.2021 14:51:31
Daniel
HI
wenn das geht, hast du auch mal probiert ob die Variante mit .Text läuft:

TextBox1.Value =  td.Cells(vntRow, 2).Text
oder das hier:

TextBox1.Value =  CStr(td.Cells(vntRow, 2))
Die Fehlermeldung ist halt "komisch" und deutet eher auf einen Bug als auf einen kontrekten Fehler hin.
Gruß Daniel
Anzeige
AW: Fehlermeldung im Code
31.08.2021 15:02:31
Dennis
Na,
vielen Dank. Beide Varianten funktionieren. Also hab es jetzt mit 2 Boxen getestet. aher gehe ich davon aus, dass es mit den anderen auch geht.
Kurze Frage: CStr ist CheckString oder ? :D
Viele Grüße
Dennis
AW: Fehlermeldung im Code
31.08.2021 15:16:18
Daniel
Cstr ist eine Datentypkonvertierung wie CDbl oder CLng, nur das hier der Wert in einen Text gewandelt wird.
Aus der Zahl 123 wird der Text "123" und aus einem Fehler #Div/0 wird der Text "#Div/0"
Gruß Daniel

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige