Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema TextBox
BildScreenshot zu TextBox TextBox-Seite mit Beispielarbeitsmappe aufrufen

#### Fehler in Zelle

Betrifft: #### Fehler in Zelle von: Eggi
Geschrieben am: 11.08.2008 23:38:50

Hallo Zusammen

Auf Eure hilfe wäre ich sehr angewiesen um dieses Problem zu beseitigen.

Aus einer UF in mehren Textboxen werden Zahlen in eine Tabelle geschrieben. Bis dahin alles i.O.
Die Zahlen werden auch in die Tabelle geschrieben. Leider sind diese Zahlen ja Text. Um damit weiterrechnen zu können, habe ich diese Zahlen in der Tabelle immer mit 1 multipliziert und es funktioniert auch. Leider liegt das Problem wenn in der Textbox keine Zahl geschrieben wird und in der Tabelle auch nichts geschrieben ist. Die verbundene Zelle sollte daher min. eine 0 bringen. Bringt aber stehts die Zeichen ####.

Gibt es eine Lösung mit allenfalls Istfehler ?

Bsp. Zelle B5 ist gespiesen durch Textbox. Zelle B6 wird mit +B5 übertragen. In Zelle B6 sollte mind. eine 0 stehen wenn in Zelle B5 nichts steht durch die Eingabe aus der UF Textbox. Gebe ich nichts ein aus den Tabelleblatt wird eine 0 auch geschrieben. Gleicher Effekt erziele ich auch durch die Leertaste.

Hoffe, dass mir jemand von Euch dabei helfen kann.

herzliche grüsse

Eggi (Egidio)

  

Betrifft: kannst Du ein Beispiel hochladen ? von: Matthias L
Geschrieben am: 11.08.2008 23:50:06

Hallo

Evtl. ist auch nur die Zelle zur Anzeige zu schmal.
Was passiert denn , wenn Du den Zellverbund löst. Ich find verbundene Zellen zum k....

Beispiel wäre schon besser.

Gruß Matthias


  

Betrifft: AW: kannst Du ein Beispiel hochladen ? von: Eggi
Geschrieben am: 12.08.2008 01:37:40

Hallo Matthias

Habe die Datei stark verkürzt. In der UF bzw. in den Textboxen werden Zahlen eingegeben.
Diese Zahlen werden ins Tabellenblatt übertragen und anschliessend weiter verarbeitet. Es handelt sich um eine Lizenzierung. Sollte jemand keine Zahlen eingeben, ist auch auf dem Tabellenblatt jeweils nichts übertragen. Trotzdem sollte bei den verbundenen Zellen mind. eine 0 stehen zum Weiterrechnen, bzw. mit VBA Code überprüfen ob die Zahlen übereinstimmen. Es wird eine Quersummen geprüft.

Leider entsteht einen Wert ### oder #Wert? falls nichts von der Textbox geschrieben wird.
Das bringt mir dann einen Debugg-Fehler. Habe versucht, es mit wenn dann aber es klappt nicht, da die Zahlen von der Textbox ja keine Zahlen sind.


https://www.herber.de/bbs/user/54529.xls

Schau sie Dir mal an.


herzliche grüsse

Eggi (Egidio)


  

Betrifft: AW: kannst Du ein Beispiel hochladen ? von: Reinhard
Geschrieben am: 12.08.2008 06:26:45

Hi Egidio,

Private Sub TextBox6_Change()
Sheets("Code").Cells(29, 2) = CInt(TextBox6)
End Sub



Gruß
Reinhard


  

Betrifft: AW: kannst Du ein Beispiel hochladen ? von: Hajo_Zi
Geschrieben am: 12.08.2008 06:30:33

Hallo Reinhartd,

das führt zu einem Fehler bei Ler.

Hallo Eggi,

Du hattest doch schon den Code mit Prüfung der Textbox auf Leer.
GrußformelHomepage


  

Betrifft: AW: kannst Du ein Beispiel hochladen ? von: Reinhard
Geschrieben am: 12.08.2008 06:49:44

Moin Hajo,

hast Recht, hatte nur flüchtig gefprüft. Ich hatte in der Tabelle manuell eine Zelle gelöscht dann die UF gestartet, dann kommt kein Fehler, der kommt erst wenn man eine Zahl in die TB eingibt un diese dann löscht, das hatte ich nicht getestet.

Moin Eggi,

Private Sub TextBox6_Change()
Sheets("Code").Cells(29, 2) = Pruef(6)
End Sub



Private Sub TextBox7_Change()
Sheets("Code").Cells(29, 3) = Pruef(7)
End Sub



...


Function Pruef(ByVal Wert As String) As Integer
'ggfs noch Reaktion einbauen wenn Eingabe keine Zahl oder Zahl mit Dezimalstellen
If IsNumeric(Wert) Then Pruef = Wert
End Function



Gruß
Reinhhard


  

Betrifft: AW: kannst Du ein Beispiel hochladen ? von: Matthias L
Geschrieben am: 12.08.2008 07:41:14

Hallo

Für die erste Textbox:

If TextBox6.Value <> "" Then Sheets("Code").Cells(29, 2) = CInt(TextBox6) Else: Sheets("Code").Cells(29, 2) = 0

und so machst Du es für die anderen Boxen auch

Code in UserForm

Private Sub userform_initialize()
 TextBox6.Value = Sheets("Code").Cells(29, 2)
 TextBox7.Value = Sheets("Code").Cells(29, 3)
 TextBox8.Value = Sheets("Code").Cells(29, 4)
 TextBox9.Value = Sheets("Code").Cells(29, 5)
 TextBox10.Value = Sheets("Code").Cells(29, 6)
 TextBox11.Value = Sheets("Code").Cells(29, 7)
 TextBox12.Value = Sheets("Code").Cells(29, 8)
 TextBox13.Value = Sheets("Code").Cells(29, 9)
End Sub


Private Sub TextBox6_Change()
If TextBox6.Value <> "" Then Sheets("Code").Cells(29, 2) = CInt(TextBox6) Else: Sheets("Code"). _
Cells(29, 2) = 0
End Sub


Private Sub TextBox7_Change()
If TextBox7.Value <> "" Then Sheets("Code").Cells(29, 3) = CInt(TextBox7) Else: Sheets("Code"). _
Cells(29, 3) = 0
End Sub


Private Sub TextBox8_Change()
If TextBox8.Value <> "" Then Sheets("Code").Cells(29, 4) = CInt(TextBox8) Else: Sheets("Code"). _
Cells(29, 4) = 0
End Sub


Private Sub TextBox9_Change()
If TextBox9.Value <> "" Then Sheets("Code").Cells(29, 5) = CInt(TextBox9) Else: Sheets("Code"). _
Cells(29, 5) = 0
End Sub


Private Sub TextBox10_Change()
If TextBox10.Value <> "" Then Sheets("Code").Cells(29, 6) = CInt(TextBox10) Else: Sheets("Code") _
.Cells(29, 6) = 0
End Sub


Private Sub TextBox11_Change()
If TextBox11.Value <> "" Then Sheets("Code").Cells(29, 7) = CInt(TextBox11) Else: Sheets("Code") _
.Cells(29, 7) = 0
End Sub


Private Sub TextBox12_Change()
If TextBox12.Value <> "" Then Sheets("Code").Cells(29, 8) = CInt(TextBox12) Else: Sheets("Code") _
.Cells(29, 8) = 0
End Sub


Private Sub TextBox13_Change()
If TextBox13.Value <> "" Then Sheets("Code").Cells(29, 9) = CInt(TextBox13) Else: Sheets("Code") _
.Cells(29, 9) = 0
End Sub



Hab ich Dich richtig verstanden ?

Gruß Matthias


  

Betrifft: kleine Korrektur zum letzten Beitrag von: Matthias L
Geschrieben am: 12.08.2008 07:48:56

Hallo

kleiner Korrektur

Private Sub TextBox6_Change()
If TextBox6.Value <> "" And IsNumeric(TextBox6.Value) Then Sheets("Code").Cells(29, 2) =  _
CInt(TextBox6) Else: Sheets("Code").Cells(29, 2) = 0
End Sub


Private Sub TextBox7_Change()
If TextBox7.Value <> "" And IsNumeric(TextBox7.Value) Then Sheets("Code").Cells(29, 3) = CInt( _
TextBox7) Else: Sheets("Code").Cells(29, 3) = 0
End Sub


Private Sub TextBox8_Change()
If TextBox8.Value <> "" And IsNumeric(TextBox8.Value) Then Sheets("Code").Cells(29, 4) = CInt( _
TextBox8) Else: Sheets("Code").Cells(29, 4) = 0
End Sub


Private Sub TextBox9_Change()
If TextBox9.Value <> "" And IsNumeric(TextBox9.Value) Then Sheets("Code").Cells(29, 5) = CInt( _
TextBox9) Else: Sheets("Code").Cells(29, 5) = 0
End Sub


Private Sub TextBox10_Change()
If TextBox10.Value <> "" And IsNumeric(TextBox10.Value) Then Sheets("Code").Cells(29, 6) = CInt( _
TextBox10) Else: Sheets("Code").Cells(29, 6) = 0
End Sub


Private Sub TextBox11_Change()
If TextBox11.Value <> "" And IsNumeric(TextBox11.Value) Then Sheets("Code").Cells(29, 7) = CInt( _
TextBox11) Else: Sheets("Code").Cells(29, 7) = 0
End Sub


Private Sub TextBox12_Change()
If TextBox12.Value <> "" And IsNumeric(TextBox12.Value) Then Sheets("Code").Cells(29, 8) = CInt( _
TextBox12) Else: Sheets("Code").Cells(29, 8) = 0
End Sub


Private Sub TextBox13_Change()
If TextBox13.Value <> "" And IsNumeric(TextBox13.Value) Then Sheets("Code").Cells(29, 9) = CInt( _
TextBox13) Else: Sheets("Code").Cells(29, 9) = 0
End Sub



Gruß Matthias


  

Betrifft: AW: kleine Korrektur zum letzten Beitrag von: Eggi
Geschrieben am: 12.08.2008 10:31:34

Hallo Matthias, Hallo Reinhard

Mit dem Code von Matthias funktioniert es perfekt und auch der von Dir Reinhard.

Habe noch eine kleine Frage:

Im oberen Teil der UF ist auch noch eine Textbox für den Namen (Ist in der hochgelanden Datei leider nicht enthalten) Dort wird nur Text eingegeben. Habe Euren Code auch dort anwenden wollen aber ohne Erfolg.

Bringt mir wohl kein Debugg-Fehler aber der Text wird nicht in die Tabelle geschrieben.

Kann ich anstatt Isnumeric; istext nehmen?

Falls nichts in die Textbox geschrieben wird kann auch dort eine 0 stehen.

herzliche grüsse

Eggi (Egidio)


  

Betrifft: probier doch: Not IsNumeric von: Matthias L
Geschrieben am: 12.08.2008 11:19:06

Hallo

schau Dir auch den Beitrag von Daniel an, ob das so für Dich in Frage kommt.

Gruß Matthias


  

Betrifft: AW: Lösung per Formel von: Daniel
Geschrieben am: 12.08.2008 10:52:55

Hi
anstatt dich in VBA zu verkünsteln, kannst du auch die Umwandlung der Texte in eine Zahl mit dieser Formel machen:

=("0"&B27)*1

dann wird auch bei Leeren Feldern in der Textbox eine 0 berechnet.

Gruß, Daniel


  

Betrifft: gefällt mir jedenfalls auch besser :o) oT von: Matthias L
Geschrieben am: 12.08.2008 11:21:39




  

Betrifft: AW: gefällt mir jedenfalls auch besser :o) oT von: Eggi
Geschrieben am: 12.08.2008 12:08:56

Hallo Zusammen

Kannte diese Formel überhaupt nicht. Aber sie nützt und läuft ohne Fehler.

Nochmals vielen Dank an Euch alle.

herzliche Grüsse

Eggi (Egidio)


 

Beiträge aus den Excel-Beispielen zum Thema "#### Fehler in Zelle"