Thema Datum  Von Nutzer Rating
Antwort
Rot Aufteilen ohne Rest
08.02.2025 10:27:32 Jens
NotSolved
08.02.2025 12:09:05 ralf_b
NotSolved
08.02.2025 13:14:14 Gast44414
NotSolved
08.02.2025 14:04:11 Jens
NotSolved
08.02.2025 15:09:10 Jens
Solved
08.02.2025 22:31:00 Gast35362
NotSolved
09.02.2025 00:50:53 Jens
NotSolved

Ansicht des Beitrags:
Von:
Jens
Datum:
08.02.2025 10:27:32
Views:
83
Rating: Antwort:
  Ja
Thema:
Aufteilen ohne Rest

Guten Morgen zusammen,

ich suche nach einer finalen Lösung um das Aufteilen ohne Rest per VBA zu realisieren.

Datengrundlage:
In meiner Excel Tabelle werden in der Spalte P Euro-Werte mit 2 Nachkommastellen angezeigt, die durch Formeln errechnet werden und im Falle von errechneten Teilsummen mehr als 2 Nachkommastellen haben können.
Im nachfolgend genannten Beispiel ist die erste Zahl der Gesamtwert von dem aus in der nachfolgenden Berechnung grundsätzlich auszugehen ist. Auch hat dieser IMMER KEINE "krummen" Nachkommastellen.


Excel zeigt also aufgrund der Euro-Währungsformatierung an:
PS: Der erste Wert gibt immer die Gesamtsumme und die darunter stehenden Werte die einzelnen Teilsummen.

2.380,00 €
981,53 €
104,23 €
1.294,23 €

… jedoch stehen folgende Werte in den Zellen:
2.380,000000000000000000000000 €
981,532846715328000000000000 €
104,233576642336000000000000 €
1.294,233576642340000000000000 €


Herausforderung:
Die angezeigten Zahlen müssen nach einem Ausdruck als PDF weiter verarbeitet werden.
Und genau hier ergibt sich mein Problem, da die Summe der 3 Teilsummen NICHT IMMER die Gesamtsumme ergibt.

Aufgabe:
Ausschließlich für den Druck des PDF-Dokumentes soll die Differenz aus Gesamtsumme MINUS Summer aller Teilsummen gebildet und auf die letzte Teilsumme addiert werden.

Stand der Dinge.
Soweit hab ich den dafür benötigten VBA-Code bereits erfolgreich umsetzen können, hadere aber an der Problematik, dass ich es nicht hinbekomme den VBA-Code für die Berechnung der Differenz so zu gestalten, dass für die Berechnung NUR die tatsächlich angezeigten Teilsummen verwendet werden, da sich NUR SO die Differenz ergibt, die sich ansonsten durch die Verwendung mit allen Nachkommastellen nicht ermitteln lässt.


Hier mal die beiden betreffenden Code-Zeilen zur Ermittlung der summeTeilsummen sowie der Differenz:

summeTeilsummen = Int(WorksheetFunction.Sum(newRng.Columns(2).Resize(newRng.Rows.Count - 1, 1).Offset(1, 0)) * 100) / 100
differenz = Int(newRng.Cells(1, 2).Value * 100) / 100 - summeTeilsummen

' Differenz auf den letzten Teilbetrag addieren, gerundet auf 2 Nachkommastellen
lastCell.Value = WorksheetFunction.Round(lastCell.Value + differenz, 2)


Einen Haken gibt es zudem auch noch, denn während aufgrund der jeweiligen Nachkommastellen im oben gezeigten Beispiel KEINE Aufrundung der 2. Nachkommastelle der angezeigten Teilsummen erfolgt, ist dies beim nachfolgend gezeigten Beispiel der Fall.
Ein einfaches "abschneiden" des Strings nach der 2. Nachkommastelle löst mein Problem somit auch nicht.
Daher eben mein Anliegen, ob es nicht möglich ist mit den tatsächlich angezeigten Teilsummen, die Differenz zu errechnen.


12.184,00 €
5.673,74 €
5.873,78 €
636,48 €


12.184,00000000000000000000000 €
5.673,74328358209000000000000 €
5.873,77910447761000000000000 €
636,47761194029900000000000 €


DANKE für Deine Antwort im Voraus.

Jens


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Aufteilen ohne Rest
08.02.2025 10:27:32 Jens
NotSolved
08.02.2025 12:09:05 ralf_b
NotSolved
08.02.2025 13:14:14 Gast44414
NotSolved
08.02.2025 14:04:11 Jens
NotSolved
08.02.2025 15:09:10 Jens
Solved
08.02.2025 22:31:00 Gast35362
NotSolved
09.02.2025 00:50:53 Jens
NotSolved