Betrifft: Laufzeitfehler aufgrund #DIV/0 bzw #WERT
von: Gegga
Geschrieben am: 27.01.2010 13:17:13
Hallo zusammen
Bekomme beim einlesen von Werten aus einem Excelsheet in eine UF folgenden Laufzeitfehler.
-214735271 (8002005)
Eigenschaft Value konnte nicht gesetzt werden. Typenkonflikt
Habe durch F8 drücken geschaut wo er aussteigt. Dies geschieht immer an Zellen in denen der Wert enteder #DIV/0 oder #WERT enthalten ist.
Sorge ich dafür das dies verschwindet, kommt dieser Laufzeitfehler nicht.
Ist es möglich per VBA diesen Fehler zu umgehen? Aufgrund der Grösse und des Umfangs der Liste wäre es sehr Zeitraubend in jedes berechnungsfeld =WENN(ISTFEHLER... einzubauen da mit festen Zellbezügen gearbeitet wird und deshalb "Formel Anklicken, nach unten ziehen" nicht funktioniert.
Wer kann mir da auf die schnelle und unkompliziert helfen?
Vielen Dank!!!
Gruss Gegga
Betrifft: If Not IsError(Cells(lngZeile, lngSpalte)) Then
von: NoNet
Geschrieben am: 27.01.2010 13:22:17
Hall Gegga,
verwende z.B. anstatt diese Version :
Msgbox Cells(lngZeile,lngSpalte)
die fehlerüberpüfte Version :
If Not IsError(Cells(lngZeile, lngSpalte)) Then
Msgbox Cells(lngZeile,lngSpalte)
End If
Gruß, NoNet
Betrifft: AW: If Not IsError(Cells(lngZeile, lngSpalte)) Then
von: Hajo_Zi
Geschrieben am: 27.01.2010 13:28:09
Hallo NoNet,
warum markierst Du den Beitrag als offen?
Du hast doch eine Lösung vorgeschlagen, lasse doch den Fragesteller die Frage als offen kennzeichnen.
Man kann in diesem Forum offnen Beiträge nur rausnehmen durch einen neuen Beitrag, früher ging das einfacher.
Betrifft: AW: If Not IsError(Cells(lngZeile, lngSpalte)) Then
von: Gegga
Geschrieben am: 27.01.2010 13:34:18
Wennich dich also richtig verstanden habe (ich füge mal den kompletten Initialize Vorgang ein:
Private Sub UserForm_Initialize() Dim lngCurRow&, I& Dim wks As Worksheet Set wks = Sheets("Startsheet") lngCurRow = wks.Range("A7:A" & Rows.Count).SpecialCells(12).Row With UF_SAETZE_BEARBEITEN .TB_TEILEFAMILIE = wks.Cells(lngCurRow, 2) .TB_PPSNUMMER = wks.Cells(lngCurRow, 3) .TB_TEILENUMMER_KUNDE = wks.Cells(lngCurRow, 4) .TB_BEZEICHNUNG = wks.Cells(lngCurRow, 5) .CBO_KUNDE = wks.Cells(lngCurRow, 6) .CBO_BRANCHE = wks.Cells(lngCurRow, 7) .TB_ARTIKELCODE = wks.Cells(lngCurRow, 8) .TB_JAHRESTEILER = wks.Cells(lngCurRow, 9) .TB_ANZAHL_RESTMONATE = wks.Cells(lngCurRow, 10) .TB_ANZAHL_FERTIGUNGSLOSE = wks.Cells(lngCurRow, 11) .TB_PLANUNGSGRUNDLAGE = wks.Cells(lngCurRow, 12) .TB_MIN = wks.Cells(lngCurRow, 13) .TB_MAX = wks.Cells(lngCurRow, 14) .TB_EINGABEDATUM_STÜCKZAHLEN = wks.Cells(lngCurRow, 15).Text .TB_SICHERHEIT = wks.Cells(lngCurRow, 16) .TB_INTERN_GEPLANTE_MENGE = wks.Cells(lngCurRow, 17) .TB_AUFTEILUNGSFAKTOR_MASCHINE = wks.Cells(lngCurRow, 18) .TB_AUFTEILUNG = wks.Cells(lngCurRow, 20) .TB_LOSGRÖSSE = wks.Cells(lngCurRow, 21) .TB_1_MACHINE = wks.Cells(lngCurRow, 22) .TB_1_TE = wks.Cells(lngCurRow, 23) .TB_1_TR_ATR = wks.Cells(lngCurRow, 24) .TB_1_H_LOS = wks.Cells(lngCurRow, 25) .TB_1_H_MONAT = wks.Cells(lngCurRow, 26) .TB_2_MACHINE = wks.Cells(lngCurRow, 27) .TB_2_TE = wks.Cells(lngCurRow, 28) .TB_2_TR_ATR = wks.Cells(lngCurRow, 29) .TB_2_H_LOS = wks.Cells(lngCurRow, 30) .TB_2_H_MONAT = wks.Cells(lngCurRow, 31) .TB_3_MACHINE = wks.Cells(lngCurRow, 32) .TB_3_TE = wks.Cells(lngCurRow, 33) .TB_3_TR_ATR = wks.Cells(lngCurRow, 34) .TB_3_H_LOS = wks.Cells(lngCurRow, 35) .TB_3_H_MONAT = wks.Cells(lngCurRow, 36) .TB_ZUSATZPROZESSE_ARBEITSPLATZ = wks.Cells(lngCurRow, 37) .TB_ZUSATZPROZESSE_TE = wks.Cells(lngCurRow, 38) .TB_ZUSATZPROZESSE_TR_ATR = wks.Cells(lngCurRow, 39) .TB_ZUSATZPROZESSE_H_LOS = wks.Cells(lngCurRow, 40) .TB_ZUSATZPROZESSE_H_MONAT = wks.Cells(lngCurRow, 41) .TB_GESAMT_H_MONAT = wks.Cells(lngCurRow, 43) .TB_MONAT01 = wks.Cells(lngCurRow, 47) .TB_PREIS01 = wks.Cells(lngCurRow, 48) .TB_SUMME01 = wks.Cells(lngCurRow, 49) .TB_MONAT02 = wks.Cells(lngCurRow, 50) .TB_PREIS02 = wks.Cells(lngCurRow, 51) .TB_SUMME02 = wks.Cells(lngCurRow, 52) .TB_MONAT03 = wks.Cells(lngCurRow, 53) .TB_PREIS03 = wks.Cells(lngCurRow, 54) .TB_SUMME03 = wks.Cells(lngCurRow, 55) .TB_MONAT04 = wks.Cells(lngCurRow, 56) .TB_PREIS04 = wks.Cells(lngCurRow, 57) .TB_SUMME04 = wks.Cells(lngCurRow, 58) .TB_MONAT05 = wks.Cells(lngCurRow, 59) .TB_PREIS05 = wks.Cells(lngCurRow, 60) .TB_SUMME05 = wks.Cells(lngCurRow, 61) .TB_MONAT06 = wks.Cells(lngCurRow, 62) .TB_PREIS06 = wks.Cells(lngCurRow, 63) .TB_SUMME06 = wks.Cells(lngCurRow, 64) .TB_MONAT07 = wks.Cells(lngCurRow, 65) .TB_PREIS07 = wks.Cells(lngCurRow, 66) .TB_SUMME07 = wks.Cells(lngCurRow, 67) .TB_MONAT08 = wks.Cells(lngCurRow, 68) .TB_PREIS08 = wks.Cells(lngCurRow, 69) .TB_SUMME08 = wks.Cells(lngCurRow, 70) .TB_MONAT09 = wks.Cells(lngCurRow, 71) .TB_PREIS09 = wks.Cells(lngCurRow, 72) .TB_SUMME09 = wks.Cells(lngCurRow, 73) .TB_MONAT10 = wks.Cells(lngCurRow, 74) .TB_PREIS10 = wks.Cells(lngCurRow, 75) .TB_SUMME10 = wks.Cells(lngCurRow, 76) .TB_MONAT11 = wks.Cells(lngCurRow, 77) .TB_PREIS11 = wks.Cells(lngCurRow, 78) .TB_SUMME11 = wks.Cells(lngCurRow, 79) .TB_MONAT12 = wks.Cells(lngCurRow, 80) .TB_PREIS12 = wks.Cells(lngCurRow, 81) .TB_SUMME12 = wks.Cells(lngCurRow, 82) .TB_ROHMATERIALPREIS = wks.Cells(lngCurRow, 84) .TB_ROHMATERIALPREIS_DATUM = wks.Cells(lngCurRow, 85) .TB_ROHMATERIALEINSATZ = wks.Cells(lngCurRow, 86) .TB_AFTG_AG_01 = wks.Cells(lngCurRow, 87) .TB_AFTG_AG_01_DATUM = wks.Cells(lngCurRow, 88) .TB_AFTG_AG_1_EINSATZ = wks.Cells(lngCurRow, 89) .TB_AFTG_AG_02 = wks.Cells(lngCurRow, 90) .TB_AFTG_AG_02_DATUM = wks.Cells(lngCurRow, 91) .TB_AFTG_AG_2_EINSATZ = wks.Cells(lngCurRow, 92) .TB_AFTG_AG_03 = wks.Cells(lngCurRow, 93) .TB_AFTG_AG_03_DATUM = wks.Cells(lngCurRow, 94) .TB_AFTG_AG_3_EINSATZ = wks.Cells(lngCurRow, 94) .TB_VERKAUFSPREIS = wks.Cells(lngCurRow, 96) .TB_VERKAUSPREIS_DATUM = wks.Cells(lngCurRow, 97) .TB_UMSATZ = wks.Cells(lngCurRow, 98) TB_LOSGRÖSSE.Text = Format(TB_LOSGRÖSSE.Text, "#0") TB_1_H_LOS.Text = Format(TB_1_H_LOS.Text, "#,##0.00 ") TB_2_H_LOS.Text = Format(TB_2_H_LOS.Text, "#,##0.00 ") TB_3_H_LOS.Text = Format(TB_3_H_LOS.Text, "#,##0.00 ") TB_ZUSATZPROZESSE_H_LOS.Text = Format(TB_ZUSATZPROZESSE_H_LOS.Text, "#,##0.00 ") TB_1_H_MONAT.Text = Format(TB_1_H_MONAT.Text, "#,##0.00 ") TB_2_H_MONAT.Text = Format(TB_2_H_MONAT.Text, "#,##0.00 ") TB_3_H_MONAT.Text = Format(TB_3_H_MONAT.Text, "#,##0.00 ") TB_ZUSATZPROZESSE_H_MONAT.Text = Format(TB_ZUSATZPROZESSE_H_MONAT.Text, "#,##0.00 ") _ TB_GESAMT_H_MONAT.Text = Format(TB_GESAMT_H_MONAT.Text, "#,##0.00 ") TB_PREIS01.Text = Format(TB_PREIS01.Text, "#,##0.00 €") TB_SUMME01.Text = Format(TB_SUMME01.Text, "#,##0.00 €") TB_PREIS02.Text = Format(TB_PREIS02.Text, "#,##0.00 €") TB_SUMME02.Text = Format(TB_SUMME02.Text, "#,##0.00 €") TB_PREIS03.Text = Format(TB_PREIS03.Text, "#,##0.00 €") TB_SUMME03.Text = Format(TB_SUMME03.Text, "#,##0.00 €") TB_PREIS04.Text = Format(TB_PREIS04.Text, "#,##0.00 €") TB_SUMME04.Text = Format(TB_SUMME04.Text, "#,##0.00 €") TB_PREIS05.Text = Format(TB_PREIS05.Text, "#,##0.00 €") TB_SUMME05.Text = Format(TB_SUMME05.Text, "#,##0.00 €") TB_PREIS06.Text = Format(TB_PREIS06.Text, "#,##0.00 €") TB_SUMME06.Text = Format(TB_SUMME06.Text, "#,##0.00 €") TB_PREIS07.Text = Format(TB_PREIS07.Text, "#,##0.00 €") TB_SUMME07.Text = Format(TB_SUMME07.Text, "#,##0.00 €") TB_PREIS08.Text = Format(TB_PREIS08.Text, "#,##0.00 €") TB_SUMME08.Text = Format(TB_SUMME08.Text, "#,##0.00 €") TB_PREIS09.Text = Format(TB_PREIS09.Text, "#,##0.00 €") TB_SUMME09.Text = Format(TB_SUMME09.Text, "#,##0.00 €") TB_PREIS10.Text = Format(TB_PREIS10.Text, "#,##0.00 €") TB_SUMME10.Text = Format(TB_SUMME10.Text, "#,##0.00 €") TB_PREIS11.Text = Format(TB_PREIS11.Text, "#,##0.00 €") TB_SUMME11.Text = Format(TB_SUMME11.Text, "#,##0.00 €") TB_PREIS12.Text = Format(TB_PREIS12.Text, "#,##0.00 €") TB_SUMME12.Text = Format(TB_SUMME12.Text, "#,##0.00 €") TB_ROHMATERIALPREIS.Text = Format(TB_ROHMATERIALPREIS.Text, "#,##0.00 €") TB_ROHMATERIALEINSATZ.Text = Format(TB_ROHMATERIALEINSATZ.Text, "#,##0.00 €") TB_AFTG_AG_01.Text = Format(TB_AFTG_AG_01.Text, "#,##0.00 €") TB_AFTG_AG_1_EINSATZ.Text = Format(TB_AFTG_AG_1_EINSATZ.Text, "#,##0.00 €") TB_AFTG_AG_02.Text = Format(TB_AFTG_AG_01.Text, "#,##0.00 €") TB_AFTG_AG_2_EINSATZ.Text = Format(TB_AFTG_AG_2_EINSATZ.Text, "#,##0.00 €") TB_AFTG_AG_03.Text = Format(TB_AFTG_AG_01.Text, "#,##0.00 €") TB_AFTG_AG_3_EINSATZ.Text = Format(TB_AFTG_AG_3_EINSATZ.Text, "#,##0.00 €") TB_VERKAUFSPREIS.Text = Format(TB_VERKAUFSPREIS.Text, "#,##0.00 €") TB_UMSATZ.Text = Format(TB_UMSATZ.Text, "#,##0.00 €") End With If wks.Cells(lngCurRow, 45) = "X" Then UF_SAETZE_BEARBEITEN.OP_WZ_EINGES_JA.Value = True If wks.Cells(lngCurRow, 46) = "X" Then UF_SAETZE_BEARBEITEN.OP_WZ_MASCH_JA.Value = True If wks.Cells(lngCurRow, 1) = "X" Then UF_SAETZE_BEARBEITEN.OB_AKTIV.Value = True End If End If End If End Sub
Betrifft: Dann lieber : On Error Resume Next
von: NoNet
Geschrieben am: 27.01.2010 13:44:49
Hallo Gegga,
bei dieser Anzahl an Textfeldern empfehle ich Dir den Einsatz von "On Error...." :
On Error Resume Next 'Fehler ignorieren
With UF_SAETZE_BEARBEITEN
'...
End With
On Error goto 0 'Fehlerbehandlung wieder aktivieren
Gruß, NoNet