Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Quersumme per VBA

Quersumme per VBA
05.01.2023 16:48:12
Jockel
Hallo,
ich habe in einer Spalte werte stehen die immer 20 stellig sind.
Ich will nun per VBA die Spalte C durchlaufen und immer bei den Stellen 1-5, 6-10, 11-15 und 16-20 die Quersumme bilden und diese dann zu einer Zahl zusammenzusetzen.
Also, zB so:
Das Sternchen soll hier nur beispielhaft als optischer Trenner dienen
21985478523654785412 = 21985*47852*36547*85412 = 25*26*25*20 also Endergebnis 25262520
Gehr sowas ?
Danke mal
Jockel
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Quersumme per VBA
05.01.2023 17:22:00
UweD
Hallo
so?

Sub Quer()
Dim LR As Long, z As Long
Dim i As Integer, j As Integer
Dim QSt As Integer, QSg As String
LR = Cells(Rows.Count, "C").End(xlUp).Row 'letzte Zeile der Spalte
For z = 1 To LR
For i = 0 To 3
For j = 1 To 5
QSt = QSt + Mid(Cells(z, 3), (i * 5) + j, 1)
Next j
QSg = QSg & QSt
QSt = 0
Next i
Cells(z, 4) = QSg
QSg = ""
Next z
End Sub
LG UweD
Anzeige
AW: Quersumme per VBA
05.01.2023 19:03:18
jockel
Hallo Uwe,
perfekt, danke dir
Jockel
Prima. Danke für die Rückmeldung. owT
06.01.2023 08:26:14
UweD
;
Anzeige
Anzeige

Infobox / Tutorial

Quersumme in Excel per VBA berechnen


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle eine neue Arbeitsmappe oder öffne eine bestehende.

  2. Drücke ALT + F11, um den Visual Basic for Applications (VBA) Editor zu öffnen.

  3. Füge ein neues Modul hinzu:

    • Klicke im Projektfenster mit der rechten Maustaste auf VBAProject (DeineDatei).
    • Wähle Einfügen > Modul.
  4. Kopiere den folgenden VBA-Code in das Modul:

    Sub Quer()
       Dim LR As Long, z As Long
       Dim i As Integer, j As Integer
       Dim QSt As Integer, QSg As String
       LR = Cells(Rows.Count, "C").End(xlUp).Row 'letzte Zeile der Spalte
       For z = 1 To LR
           For i = 0 To 3
               For j = 1 To 5
                   QSt = QSt + Mid(Cells(z, 3), (i * 5) + j, 1)
               Next j
               QSg = QSg & QSt
               QSt = 0
           Next i
           Cells(z, 4) = QSg
           QSg = ""
       Next z
    End Sub
  5. Schließe den VBA-Editor und gehe zurück zu Excel.

  6. Führe das Makro aus:

    • Drücke ALT + F8, wähle Quer und klicke auf Ausführen.

Dieser Code geht die Werte in der Spalte C durch, bildet die Quersumme in Gruppen von fünf Ziffern und gibt das Ergebnis in Spalte D aus.


Häufige Fehler und Lösungen

  • Fehler: "Komponente nicht gefunden"
    Lösung: Stelle sicher, dass du das richtige Arbeitsblatt aktiv hast, bevor du das Makro ausführst.

  • Fehler: "Typ nicht definiert"
    Lösung: Überprüfe, ob alle Variablen korrekt deklariert sind und keine Tippfehler im Code vorhanden sind.

  • Fehler: Quersumme wird nicht berechnet
    Lösung: Stelle sicher, dass die Werte in Spalte C genau 20-stellig sind.


Alternative Methoden

Falls du kein VBA verwenden möchtest, kannst du die Quersumme auch mit einer Excel-Formel berechnen. Hier ein Beispiel, wie du die Quersumme von 12, 16 oder 20 mit einer Kombination von Funktionen erstellen kannst:

=SUMPRODUCT(MID(A1, {1,6,11,16}, 5)*1)

Diese Formel summiert die Werte in den angegebenen Positionen und kann leicht angepasst werden, um die Quersumme für andere Stellen zu berechnen.


Praktische Beispiele

  • Beispiel 1:
    Wenn du die Quersumme von 21985478523654785412 berechnen möchtest, wird das Ergebnis 25262520 sein, da:

    • Quersumme von 21985 = 25
    • Quersumme von 47852 = 26
    • Quersumme von 36547 = 25
    • Quersumme von 85412 = 20
  • Beispiel 2:
    Um die Quersumme von 12345678901234567890 zu bilden, kannst du die oben genannten Schritte im VBA-Code oder in einer Formel durchführen.


Tipps für Profis

  • Verwende benutzerdefinierte Funktionen: Wenn du oft Quersummen berechnen musst, kannst du eine benutzerdefinierte Funktion in VBA erstellen, die die Quersumme für beliebige Längen und Positionen berechnet.

  • Optimierung des Codes: Reduziere die Anzahl der Schleifen, um die Effizienz zu steigern, insbesondere bei großen Datenmengen.

  • Dokumentation: Kommentiere deinen Code gut, damit du später leichter nachvollziehen kannst, was jeder Teil macht.


FAQ: Häufige Fragen

1. Wie kann ich die Quersumme für andere Zahlenlängen berechnen?
Du kannst die Positionen in der VBA-Schleife oder in der Excel-Formel anpassen, um Quersummen für unterschiedliche Längen zu erstellen.

2. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren. Achte darauf, dass die Makros aktiviert sind.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige