Live-Forum - Die aktuellen Beiträge
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
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige