Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
876to880
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
876to880
876to880
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Transfer Userform-Tabelle und zurück

Transfer Userform-Tabelle und zurück
18.06.2007 14:40:00
Thomas
Hallo Excel-Freunde,
ich bin gerade mal wieder am Verzweifeln und brauche dringend Hilfe. Ich habe ein Programm in Arbeit, bei dem Daten in eine Userform eingegeben werden. Datumswerte, einfache Zahlen, Beträge, Texte, auch Optionen, Comboboxen und Checkboxen. Beträge und Datumswerte werden sofort nach dem Eintragen entsprechend schon für die Anzeige formatiert. Zum Berechnen und auch zum Speichern werden die Daten jeweils in Tabellenblätter übertragen. Meist läuft das völlig problemlos. Mir ist klar, dass in Userformen nur Text steht. Aber plötzlich spinnt Excel und macht aus Zahlen Datumswerte oder aus Datumswerten Zahlen. Aber nicht durchgängig, sondern nur bei einzelnen Textfeldern. Beim Zurücklesen die Userform wird dann der tatsächliche Zelleninhalt verwendet und damit steht totaler Mist in der Anzeige. Das Schreiben in die Tabelle erfolgt nach dem Muster:
Dim tb As Object
For Each tb In fmStart.Controls
If TypeName(tb) = "TextBox" Then
Cells(DZeile, 1).Value = "Text"
Cells(DZeile, 2).Value = tb.Name
Cells(DZeile, 3).Value = tb.Text
......
Nach dem ersten Auftreten des Problems habe ich versucht, beim Schreiben in die Zelle zunächst über isDate(...) die Datumswerte gezielt zu formatieren. Das schien zunächst zu funktionieren. Plötzlich wurden aber auch aus Zahlen Datumswerte. Nun habe ich mit IsNumeric(...) und der Unterscheidung, ob die "numerischen Zeichenketten" ein Komma enthalten (=Beträge) oder keins (=einfache Zahlen), weitere Formatierungshilfen zu geben. Der Code ist sicher etwas umständlich (ich habe mich stückweise herangetastet), aber leider funktioniert er sowieso nicht zuverlässig.
'Formatierungsprobleme bei Speicherung von Zahlen und Datum
If IsDate(tb.Text) = True Then 'Datumsformat
Cells(DZeile, 3).Value = Format(Cells(DZeile, 3), "dd.mm.yyyy")
Else
If IsNumeric(tb.Text) = True Then 'Zahlenformat
Dim i As Integer
Dim Komma As Boolean
Komma = False
For i = 1 To Len(tb.Text)
If Mid(tb.Text, i, 1) Like "," Then Komma = True
Next i
If Komma = True Then
'MsgBox "Zahl mit Komma! " & tb.Text
Cells(DZeile, 3).Value = Format(Cells(DZeile, 3), "#,##0.00")
Else
'MsgBox "Zahl ohne Komma! " & tb.Text
Cells(DZeile, 3).Value = Format(Cells(DZeile, 3), "000")
End If
End If
End If
Wie löst man nun dieses Problem? Wie kann man Excel zur Vernunft bringen?
Vielen Dank im Voraus.
Thomas

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Transfer Userform-Tabelle und zurück
18.06.2007 14:59:19
Peter
Hallo Thoma,
wenn du in einem UserForm(ular) aus TextBoxes Werte holen willst, musst du davon ausgehen, dass du immer Text geliefert bekommst - weil TextBoxes.
Du kannst aber abfragen If IsDate(TextBox1.value) Then
Range("A1").value = CDate(TextBox1).Value)
End If
oder
If TextBox1.Value "" Then
If IsNumeric(TextBox1.value) Then
Range("B1").value = CDbl(TextBox1.Value)
End If
End If
Du kannst auch in CInt konvertieren, wenn es ganze Zahlen sein sollen.
Vielleicht hilft dir das weiter.
Gruß Peter

AW: Transfer Userform-Tabelle und zurück
18.06.2007 15:30:55
Thomas
Hallo Peter,
da blicke ich nicht mehr ganz durch. Ich habe versucht, das Format in der Zelle zu bestimmen. Stattdessen den Text aus der Userform z.B. mit CDate zu wandeln, ist wohl Deine Überlegung. Aber wenn IsDate mit true antwortet, ist es doch auch ein Datum? Analog ist das wohl mit IsNumeric und dann die Wandlung per cDbl.
Aber versuchen werde ich es trotzdem. Ich habe ja keine bessere Idee...
Gruß
Thomas

Anzeige
AW: Transfer Userform-Tabelle und zurück
18.06.2007 15:53:00
Thomas
Hallo Peter,
ich habe meinen Code um die Formatierungsbefehle ergänzt - die Effekte sind leider gleich Null.
Ich könnte verzweifeln...
Gruß
Thomas

AW: Transfer Userform-Tabelle und zurück
19.06.2007 13:02:00
Thomas
Hallo Peter,
leider bringt die Beispielmappe keine neuen Erkenntnisse. Eigentlich nur, dass zusätzlich der TRIM-Befehl verwendet wird. Besonders rätselhaft ist mir, warum Excel nicht einheitlich reagiert. Die meisten Texte werden problemlos gespeichert und zurückgelesen. Und bei einigen wenigen werden aus Zahlen Datumswerte und umgekehrt.
Trotzdem vielen Dank für Deine Mühe.
Thomas

Anzeige
AW: Transfer Userform-Tabelle und zurück
19.06.2007 14:35:01
Peter
Hallo Thomas,
dann solltest du deine Mappe einmal ins Forum stellen, damit man gezielter nach den geschilderten Problemen suchen kann.
Gruß Peter

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige