Live-Forum - Die aktuellen Beiträge
Datum
Titel
18.04.2024 18:04:29
18.04.2024 16:33:24
Anzeige
Archiv - Navigation
1692to1696
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

Zahl mit Punkt und Komma

Zahl mit Punkt und Komma
31.05.2019 12:08:01
Dietmar
Hallo an alle,
ich benötige mal wieder euere Hilfe.
Mit diesem Makro

Private Sub EINTRAG_SPEICHERN()
Dim lZeile As Long, i As Integer
If ListBox1.ListIndex = -1 Then Exit Sub
lZeile = ListBox1.List(ListBox1.ListIndex, 0)
For i = 2 To iCONST_ANZAHL_EINGABEFELDER
ActiveWorkbook.ActiveSheet.Cells(lZeile, i) = Me.Controls("TextBox" & i)
ActiveWorkbook.ActiveSheet.Cells(lZeile, 1) = CDate(Me.TextBox1)
Next i
ListBox1.List(ListBox1.ListIndex, 1) = TextBox1
ListBox1.List(ListBox1.ListIndex, 2) = TextBox2
ListBox1.List(ListBox1.ListIndex, 3) = TextBox3
ListBox1.List(ListBox1.ListIndex, 4) = TextBox4
ListBox1.List(ListBox1.ListIndex, 5) = TextBox5
ListBox1.List(ListBox1.ListIndex, 6) = TextBox6
ListBox1.List(ListBox1.ListIndex, 7) = TextBox7
ListBox1.List(ListBox1.ListIndex, 8) = TextBox8
End Sub

erfolgen Eingaben über eine Userform in eine Tabelle.
Über Textbox6 werden Beträge eingegeben die leider nicht in der von mir gewünschten Form wiedergegeben werden ( z.B. 50000 soll in 50.000,00 )
Kann mir jemand helfen ?
Vielen Dank und Gruß
Dietmar

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zahl mit Punkt und Komma
31.05.2019 12:13:41
Günther
Moin Dietmar,
WO sollen denn die Werte in der genannten Form wiedergegeben werden? (Listbox oder Tabelle?)
Gruß
Günther
AW: Zahl mit Punkt und Komma
31.05.2019 12:18:54
Dietmar
Hi Günther,
in der Tabelle
Gruß
Dietmar
muss natürlich so...
31.05.2019 12:35:09
Werner
Hallo Dietmar,
so
For i = 2 To iCONST_ANZAHL_EINGABEFELDER
heißen. Hab das beim Kopieren versehentlich ausgelassen.
Gruß Werner
AW: muss natürlich so...
31.05.2019 13:38:34
Dietmar
Hallo Werner,
habe ich angepasst, es erscheint jedoch 50000,0 nicht 50.000,00
Gruß
Dietmar
AW: Zahl mit Punkt und Komma
31.05.2019 12:33:13
Werner
Hallo Dietmar,
 = 2 To iCONST_ANZAHL_EINGABEFELDER
If i = 6 Then
ActiveWorkbook.ActiveSheet.Cells(lZeile, i) = CDbl(Me.Controls("Textbox" & i))
Else
ActiveWorkbook.ActiveSheet.Cells(lZeile, i) = Me.Controls("TextBox" & i)
ActiveWorkbook.ActiveSheet.Cells(lZeile, 1) = CDate(Me.TextBox1)
End If
Next i
Gruß Werner
Anzeige
AW: Zahl mit Punkt und Komma
31.05.2019 12:40:46
Dietmar
Hallo Werner,
funktioniert leider nicht.
Der Abschnitt "ActiveWorkbook.ActiveSheet.Cells(lZeile, 1) = CDate(Me.TextBox1)" wird vom Debugger gelb markiert
Gruß
Dietmar
AW: Zahl mit Punkt und Komma
31.05.2019 12:46:38
Werner
Hallo Dietmar,
deine Antwort bringt jetzt erst mal gar nichts.
Welche Fehlermeldung denn?
Am besten mal deine Datei hier hochladen.
Gruß Werner
AW: Zahl mit Punkt und Komma
31.05.2019 12:40:39
Daniel
Hi
ich gehe mal davon aus, dass du die Werte in der Textbox im Deutschen Zahlenformat eingibst.
damit das beim Übertragen korrekt übernommen wird, musst du das VBA mitteilen, sonst geht es beim Übertragen der Werte von amerikanischen Formaten aus.
die Darstellung der Zahl in der Zelle (Anzahl NK-Stellen, 1000-Punkt) machst du dann in der Exceltabelle direkt über das Zahlenformat der Zelle, das kannst du ja einmalig für jede Spalte passend vergeben.
ansonsten ist deine Verwendung von Schleifen etwas seltsam.
zum einen nimmst du eine Aktion, die sich innerhalb der schleife nicht ändert, in der Schleife vor, das ist aber eine unnötige Wiederholung der Aktion.
Alles was sich über die Schleife nicht ändert, sollte man besser einmalig außerhalb der Schleife durchführen.
und dann programmierst du eine Aktion aus, die man aber sehr gut in einer Schleife durchführen könnte.
Daher so:
  Private Sub EINTRAG_SPEICHERN()
Dim lZeile As Long, i As Integer
If ListBox1.ListIndex = -1 Then Exit Sub
lZeile = ListBox1.List(ListBox1.ListIndex, 0)
For i = 2 To iCONST_ANZAHL_EINGABEFELDER
ActiveWorkbook.ActiveSheet.Cells(lZeile, i).FormulaLocal = Me.Controls("TextBox" & i)
Next i
ActiveWorkbook.ActiveSheet.Cells(lZeile, 1) = CDate(Me.TextBox1)
for i = 1 to 8
ListBox1.List(ListBox1.ListIndex, i) = Me.Controls("TextBox" & i)
next
End Sub
Gruß Daniel
Anzeige
AW: Zahl mit Punkt und Komma
31.05.2019 13:53:43
Daniel
naja, ein Danke Schön und der Versuch, die Inhalte der bereits gegebenen Vorschläge zumzustetzen wären besser.
Gruß Daniel
AW: Zahl mit Punkt und Komma
31.05.2019 14:05:19
Dietmar
Hallo Daniel,
deinen Kommentar verstehe ich nicht.
Ich habe immer geantwortet und versucht so genau wie möglich mein Problem zu schildern.
Alle Vorschläge sind von mir benutzt worden, da diese jedoch keine Lösung ergaben hänge ich noch "in der Luft".
Natürlich bedanke ich mich bei allen die mir bisher Lösungsvorschläge gegeben haben. Das wäre jedoch noch gekommen. Ich hoffe ja immer dass die Lösung noch kommt.
Gruß
Dietmar
Anzeige
Lösung ist doch von mir gekommen.
31.05.2019 14:12:00
mir
Deine Beispieldatei enthält immer noch deinen alten Code und noch nicht meinen Lösungsvorschlag, den ich dir bereits gegeben hatte (schon vor der Beispieldatei)
also ändert sich auch nichts an meiner Antwort.
Gruß Daniel
AW: Lösung ist doch von mir gekommen.
31.05.2019 14:20:41
mir
Hallo Daniel,
sorry, natürlich habe ich deinen Vorschlag getestet, leider ohne Erfolg.
Darum habe ich die alte Beispielsdatei eingesetzt um das zu zeigen was ich habe.
Sorry, ich hätte vielleicht explezies deinen Namen angeben sollen, habe ich jedoch unterlassen da auch
andere sich an dem Problem beteiligt haben.
Wenn ich mich damit falsch verhalten habe, so tut es mir leid.
Gruß
Dietmar
Anzeige
AW: Zahl mit Punkt und Komma
31.05.2019 14:15:01
Werner
Hallo Dietmar,
hier der geänderte Code, auch mit dem angepassten Teil von Daniel.
Das Schreiben des Datums in die Spalte A hat in der Schleife nichts zu suchen.
Spalte F mußt du im Zahlenformat mit 2 Nachkommastellen und Tausendertrennzeichen formatieren.
Private Sub EINTRAG_SPEICHERN()
Dim lZeile As Long, i As Integer
'Wenn kein Datensatz in der ListBox markiert wurde, wird die Routine beendet
If ListBox1.ListIndex = -1 Then Exit Sub
'Zum Speichern benötigen wir die Zeilennummer des ausgewählten Datensatzes
lZeile = ListBox1.List(ListBox1.ListIndex, 0)
If Me.TextBox1  "" Then
If IsDate(Me.TextBox1) Then
ActiveWorkbook.ActiveSheet.Cells(lZeile, 1) = CDate(Me.TextBox1)
End If
Else
ActiveWorkbook.ActiveSheet.Cells(lZeile, 1) = ""
End If
For i = 2 To iCONST_ANZAHL_EINGABEFELDER
If i = 6 Then
ActiveWorkbook.ActiveSheet.Cells(lZeile, i) = CDbl(Me.Controls("TextBox" & i))
Else
ActiveWorkbook.ActiveSheet.Cells(lZeile, i) = Me.Controls("TextBox" & i)
End If
Next i
'Der Benutzer könnte die angezeigten Werte in der Liste geändert haben,
'daher aktualisieren wir den ausgewählten Eintrag entsprechend.
For i = 1 To 8
ListBox1.List(ListBox1.ListIndex, i) = Me.Controls("TextBox" & i)
Next
End Sub
Gruß Werner
Anzeige
AW: Zahl mit Punkt und Komma
31.05.2019 14:34:07
Dietmar
Hallo Werner,
ich habe deinen Code einkopiert, jedoch wird der Betrag so gezeigt ( 50000,0 ), ich hätte jedoch gerne
in 50.000,00
Gruß
Dietmar
AW: Zahl mit Punkt und Komma
31.05.2019 14:43:48
Werner
Hallo Dietmar,
das habe ich dir doch geschrieben.
Spalte F markieren - Rechtsklick in Spalte F - Zellen formatieren - Zahl - Dezimalstellen 2 - Haken bei Tausendertrennzeichen verwenden setzen
Gruß Werner
AW: Zahl mit Punkt und Komma
31.05.2019 14:43:22
Dietmar
Hallo an Günter, Daniel und Werner,
es funktioniert perfekt, vielen Dank ( Daniel sorry nochmals ).
Ich wusste nicht dass danach noch jede Zellen per Excel formatiert werden muss ( naja ).
Nochmals vielen Dank
Gruß
Dietmar
Anzeige
AW: Zahl mit Punkt und Komma
31.05.2019 15:28:08
Werner
Hallo Dietmar,
du brauchst doch nicht jede Zelle einzeln zu formatieren.
Du solltest schon alle Beiträge und vor allem auch ganz lesen.
Gruß Werner

311 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige