Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA-Script und Zahlen größer 0 finden

Forumthread: VBA-Script und Zahlen größer 0 finden

VBA-Script und Zahlen größer 0 finden
27.01.2004 18:12:45
Wolfgang
Hallo,
ich habe folgende Excel-Tabelle:
A___B
1___xxxxx
____xxxxx
____xxxxx
____xxxxx
20__xxxxx
____xxxxx
5___xxxxx
____xxxxx
12__xxxxx
____xxxxx
Nun möchte ich die Zahlen die in Spalte B stehen in Gruppen addieren. Die Gruppe fängt immer in der Reihe an, in der in Spalte A eine Zahl >0 steht und hört auf in der Reihe vor der nächsten Zahl >0 in Spalte A.
Die erste Gruppe besteht also aus 4 Zahlen die addiert werden sollen, die 2. Gruppe aus 2 Zahlen usw.
Die Summen sollen dann untereinander an einer beliebigen Stelle angezeigt werden.
Kann mir jemand helfen?
Vielen Dank.
Wolfgang
Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA-Script und Zahlen größer 0 finden
27.01.2004 18:17:08
Fabian
Hallo,
da ich gleich heimfahre (Feierabend ich komme ;-) hier nur ein allgemeiner Tipp, wie Du zur Lösung Deines Problems kommen kannst:
1. Starte eine Excel-Datei
2. Klicke auf "Makro-aufnehmen"
3. Führe Deine gewünschten Aktionen von Hand aus (sei sparsam mit den Klicks...)
4. Stope die Makro aufnahme
5. Wechsele in den VBA-Editor (VBA-Code anzeigen im Entwurfsmodus)
6. Betrachte dort den Code des Makros (z.b. in MODUL1), hier findest Du alle Befehle mit deren Hilfe Du Dein Problem automatisieren kannst.
Viele Grüsse
Fabian
PS Google ist Dein Freund, das Archiv auch...
Anzeige
AW: VBA-Script und Zahlen größer 0 finden
27.01.2004 18:20:21
Wolfgang
Danke für die Antwort.
Hilft mir leider nicht. Wie finde ich denn mit VBA die nächste Zelle mit einem Wert >0?
AW: VBA-Script und Zahlen größer 0 finden
27.01.2004 19:12:49
Ramses
Hallo
Wie definierst du das genau ?
"...Die Summen sollen dann untereinander an einer beliebigen Stelle angezeigt werden. .."
Die Beliebige Stelle könnte nach deiner Definition auch in Spalte IV 64000 sein.
Gruss Rainer
Anzeige
AW: VBA-Script und Zahlen größer 0 finden
27.01.2004 20:13:54
Wolfgang
Ich möchte in einer anderen Tabelle die Summen der verschiedenen Gruppen addieren.
Momentan weiss ich halt nicht, wie ich Anfang und Ende einer Gruppe finden soll.
AW: VBA-Script und Zahlen größer 0 finden
27.01.2004 21:07:59
Ramses
Hallo
die einfachste Variante wäre, wenn es möglich ist, die Leerzellen mit den entsprechenden Werten aufzufüllen.
Wenn dem nicht so ist, dann geht es mit VBA nur mit zwei Schleifen.
Wenn ich aber nicht weiss wo ich das ganze hinschreiben soll, fange ich gar nicht erst an. Das ufert sonst wieder aus ins unendliche.
Deshalb hier ein abschliessender Ansatz, den du sicher ausbauen kannst:


Option Explicit
Sub Create_SubSum()
Dim As Long, n As Long
Dim ctrl1 As Double, tmpValue As Double
Dim wks1 As Worksheet, wks2 As Worksheet
Set wks1 = Worksheets("Tabelle1")
Set wks2 = Worksheets("Tabelle2")
'Zahlen beginnen in Zelle1
ctrl1 = wks1.Cells(1, 1)
tmpValue = wks1.Cells(1, 2)
For i = 1 To wks1.Cells(65536, 1).End(xlUp).Row
    If wks1.Cells(i, 1) = ctrl1 Then
        'Teilsummen bilden
        tmpValue = tmpValue + wks1.Cells(i, 2)
    Else
        'Hier sollen die Ergebnisse hingeschrieben werden
        wks2.Cells(xx, xx) = tmpValue
        'Variablen zurücksetzen....
        tmpValue = 0
        '.... und neu definieren
        ctrl1 = wks1.Cells(i + 1, 1)
    End If
Next i
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5

Gruss Rainer
Anzeige
Korrektur
27.01.2004 21:34:59
Ramses
Hallo
da habe ich einen kleinen Überlegensfehler gemacht
Anstelle von
If wks1.Cells(i, 1) = ctrl1 Then
muss es heissen
If IsNumeric(wks1.Cells(i, 1)) and wks1.Cells(i,1) <> ctrl1 Then
Gruss Rainer
;
Anzeige

Infobox / Tutorial

VBA-Script zur Addition von Zahlen in Excel


Schritt-für-Schritt-Anleitung

Um ein VBA-Script zu erstellen, das die in Spalte B stehenden Zahlen in Gruppen addiert, befolge diese Schritte:

  1. Excel-Datei öffnen: Starte eine neue oder bestehende Excel-Datei.

  2. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Modul hinzufügen: Klicke auf Einfügen > Modul, um ein neues Modul zu erstellen.

  4. Code einfügen: Kopiere den folgenden Code in das Modul:

    Option Explicit
    
    Sub Create_SubSum()
       Dim i As Long, n As Long
       Dim ctrl1 As Double, tmpValue As Double
       Dim wks1 As Worksheet, wks2 As Worksheet
    
       Set wks1 = Worksheets("Tabelle1")
       Set wks2 = Worksheets("Tabelle2")
    
       ctrl1 = wks1.Cells(1, 1)
       tmpValue = wks1.Cells(1, 2)
    
       For i = 1 To wks1.Cells(65536, 1).End(xlUp).Row
           If IsNumeric(wks1.Cells(i, 1)) And wks1.Cells(i, 1) <> ctrl1 Then
               tmpValue = tmpValue + wks1.Cells(i, 2)
           Else
               wks2.Cells(n + 1, 1) = tmpValue
               tmpValue = 0
               ctrl1 = wks1.Cells(i + 1, 1)
               n = n + 1
           End If
       Next i
    End Sub
  5. Makro ausführen: Schließe den VBA-Editor und führe das Makro über Entwicklertools > Makros aus.


Häufige Fehler und Lösungen

  • Fehler: "Typen sind nicht kompatibel"

    • Lösung: Stelle sicher, dass die Zellen in Spalte A numerisch sind. Verwende IsNumeric, um sicherzustellen, dass nur Zahlen verarbeitet werden.
  • Fehler: "Objektvariable nicht gesetzt"

    • Lösung: Überprüfe, ob die Arbeitsblätter "Tabelle1" und "Tabelle2" existieren. Du kannst die Namen in den Set-Anweisungen anpassen.

Alternative Methoden

Wenn Du keine VBA-Lösungen verwenden möchtest, kannst Du auch Formeln in Excel nutzen:

  1. SUMMEWENN: Verwende die SUMMEWENN-Funktion, um die Werte in Spalte B zu summieren, wenn die zugehörige Zelle in Spalte A größer als 0 ist. Beispiel:

    =SUMMEWENN(A:A, ">0", B:B)
  2. Power Query: Nutze Power Query, um Deine Daten zu transformieren und die Summen zu berechnen. Dies kann eine benutzerfreundliche alternative Methode sein.


Praktische Beispiele

Angenommen, Deine Excel-Tabelle sieht folgendermaßen aus:

A B
xxxxx
xxxxx
20 xxxxx
xxxxx
5 xxxxx
12 xxxxx

Nach Ausführung des VBA-Scripts werden die Summen der Gruppen in "Tabelle2" angezeigt. Die erste Gruppe (20 in A) addiert die nächsten 4 Werte in B, die zweite Gruppe (5 in A) addiert die nächsten 2 Werte usw.


Tipps für Profis

  • Code optimieren: Du kannst den Code anpassen, um mehr Flexibilität zu erreichen, z.B. durch Parameter für die Arbeitsblattnamen.
  • Debugging: Nutze Debug.Print, um Werte in der Immediate Window zu überprüfen und Fehler einfacher zu finden.
  • Dokumentation: Kommentiere Deinen Code, um die Lesbarkeit und Wartbarkeit zu verbessern.

FAQ: Häufige Fragen

1. Wie kann ich das Makro anpassen, um mehr Gruppen zu addieren? Um mehr Gruppen zu addieren, kannst Du die Schleifen anpassen oder weitere Bedingungen hinzufügen, um die Gruppierungslogik zu ändern.

2. Funktioniert dieses VBA-Script in Excel 2016 und späteren Versionen? Ja, das Script ist mit Excel 2016 sowie späteren Versionen kompatibel. Achte jedoch darauf, dass die Einstellungen für Makros in Deinem Excel aktiviert sind.

3. Was mache ich, wenn ich keine VBA-Erfahrung habe? Falls Du keine Erfahrung mit VBA hast, empfehle ich, zunächst einfache Tutorials zu VBA zu folgen, um die Grundlagen zu erlernen. Alternativ kannst Du auch Formeln oder Power Query verwenden, um ähnliche Ergebnisse zu erzielen.

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