Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1652to1656
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
VBA Funktuion Summe auffüllen erweitern
25.10.2018 10:17:55
Jarek
Hallo zusammen,
ich verfolgende schon länger Einträge hier im forum und konnte schon sehr oft mir mit den gefundenen Infos weiterhelfen, aber jetzt stehe ich vor einem Problem, welches mich in den Wahnsinn treibt. Ich hoffe, dass mir jemand helfen kann.
Ich habe bei mir in der Firma einige Excel Makros von meinem Vorgänger übernommen und versuche stellenweise Fehler auszubessern, bzw. zu optimieren.
Mein Problem gestaltet sich wie folgt:
In einer Userform wird eine Summe in eine Textbox eingetragen. diese Summe ist immer in den tausender Bereichen, manchmal aber auch im Millionenbereich.
Damit die Eingabe flotter geht, habe ich in dem code eine Funktion die angesprungen wird um die Summe in der Textbox mit 1.000 zu multiplizieren.
Der Code sieht so aus:

Function SummeAuffüllen(ByVal AbZeichen As Integer, ByVal Summe) As Variant
If IsNumeric(Summe) Then
If Len(Summe) = AbZeichen Then
Summe = Summe * 1000
SummeAuffüllen = Format(CDbl(Summe), "#,###,###")
End If
SummeAuffüllen = Format(CDbl(Summe), "#,###,###")
Else
SummeAuffüllen = ""
End If
End Function

Der Aufruf zur Funktion gestaltet sich dann so:

Private Sub txtSumme_Change()
txtSumme.Value = SummeAuffüllen(3, txtSumme.Value)
End Sub

Das "Problem" das ich an dieser Stelle habe ist, dass der Cursor in der Textbox dann ans ende springt. Will man jetzt eine Zahl im Millionenbereich eingeben wird die Eingabe hinten fortgesetzt.
Sprich aus 1.234.000 wird 1.230.004, weil nach der dritten Zahl die Multiplikation vorgenommen wird.
Mein erster Versuch das zu beheben war die Ergänzung im Aufruf der Funktion --> Private Sub _
txtSumme_Change() um diesen Code-Schnipsel:

If Len(Me!txtSumme) > 5 Then
Me!txtSumme.SelStart = Len(Me!txtSumme) - 3
End If

das bewirkt jedoch, dass ich nach jeder Eingabe auf die Tausenderstelle springe, selbst wenn ich dcoh etwas im Einstelligen Bereich eingeben will
Kann dieser schnipsel irgendwie in die Funktion SummeAuffüllen eingabaut werden, so dass nur wen die Funktion ausgeführt wird, der Cursor einmalig um 3 Stellen nach links verschoben wird? Hintergrund ist, dass die Funktion für mehrere TextBoxen verwendet wird.
Vielen Dank vorab!

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Funktuion Summe auffüllen erweitern
25.10.2018 10:26:17
Daniel
Hi
nicht im Change-Event, sondern im Exit- oder AfterUpdate-Event.
dann wird die Umwandlung erst ausgeführt, wenn die Eingabe fertig ist.
Gruß Daniel
AW: VBA Funktuion Summe auffüllen erweitern
25.10.2018 11:01:19
Jarek
Danke für den Hinweis!
Das ist natürlich auch eine mögliche Lösung, aber dann sieht der Mitarbeiter nicht sofort, dass die Auffülung vorgenommen wird.
Dann wird der unwissende Mitarbeiter die volle Summe selbständig eingeben.
Anzeige

145 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige