Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
804to808
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
804to808
804to808
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA Lösung bitte gesucht

VBA Lösung bitte gesucht
04.10.2006 14:05:46
Josef
Hallo!
Ich habe eine Menge Zahlen in der Spalte F ab F2 stehen, welche auch mehrmals immer wieder vorkommen. In der Spalte G ab G2 stehen ebenfalls gleiche Werte wenn die Werte in der Spalte F ident sind.
Dann habe ich in der Spalte H Zahlen stehen, welche in Abhängigkeit der Spalte F und G zusammengezählt werden sollen.
Beispiel:
F2= 1098342;G2=2058340;H2= 1
F3= 1098342;G3=2058340;H3= 1
wäre Summe 2
Wie würde hier bitte eine VBA Lösung lauten?
Danke
Josef

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Lösung bitte gesucht
04.10.2006 14:30:57
Josef
Hallo!
Wenn ich das unten stehende Makro ausführe und in der Spalte H würden 6 Einser stehen, dann würde die richtige Summe 6 herauskommen. Wenn jedoch statt dem letzten Einser eine 2 stehen würde, dann erhalte ich als Summe wieder 6 und nicht wie es sein sollte eine 7.
Wo könnte ich hier bitte den Fehler haben?

Sub Summieren()
Dim z, sp As Integer
Dim ws1 As Worksheet
Set ws1 = Worksheets("Tabelle1")
anz = ws1.Cells(65536, 1).End(xlUp).Row
suplus = 0
suminus = 0
For z = 2 To anz
sp = 2
If ws1.Cells(z, 8) = ws1.Cells(z + 1, 8) Then
If ws1.Cells(z, 8) > 0 Then
suplus = ws1.Cells(z, 8) + suplus
'Else
'suminus = Abs(ws1.Cells(z, 8)) + suminus
End If
End If
If ws1.Cells(z, 6) <> ws1.Cells(z + 1, 6) And ws1.Cells(z, 6) <> "" Then
If ws1.Cells(z, 8) > 0 Then
suplus = ws1.Cells(z, 8) + suplus
'Else
'suminus = Abs(ws1.Cells(z, 8)) + suminus
End If
'ws1.Cells(z + 1, 12) = suplus '/ 2 - suminus
ws1.Cells(z, 12) = suplus '/ 2 - suminus
suplus = 0
'suminus = 0
End If
Next
End Sub

Danke
Josef
Anzeige
AW: VBA Lösung bitte gesucht
04.10.2006 14:53:49
Jan3
Hi Josef,
Die Anzahl der Schleifendurchläufe und damit auch die Festlegung, welche Zellen addiert werden sollen, richtet sich nach der Anzahl der Zelle in der Spalte A und nicht H:
Siehe VBA-Code-Ausschnitt:
...
anz = ws1.Cells(65536, 1).End(xlUp).Row
...
Wenn in der Spalte A weniger Zeilen als in der Spalte H ausgefüllt sind, könntest Du
durch Änderung des Codes die Zeilen mit einschließen:
...
anz = ws1.Cells(65536, 8).End(xlUp).Row
...
Inwieweit dadurch aber bestimmte Bedingungen nicht erfüllt werden, kann ich ohne Beispieldatei nicht beurteilen.
Jan
Anzeige
Lösung ohne VBA
04.10.2006 15:30:31
AndrRo
Hallo Josef,
mit einer Pivot-Tabelle kannst du es auch aufsummieren lassen (ohne VBA)!
Warum 6 und nicht 7 rauskommt, liegt an der Zeile
If ws1.Cells(z, 8) = ws1.Cells(z + 1, 8) Then
ws1.Cells(z, 8) ist 1 und ws1.Cells(z + 1, 8) ist 2, daher keine Summierung.
gruss
Andreas
AW: Lösung ohne VBA
04.10.2006 15:51:07
EtoPHG
Hallo Josef,
Würde denn eine reine Formellösung und eine bedingte Formatierung nicht auch zum Erhofften führen ?
Siehe: https://www.herber.de/bbs/user/37173.xls
Gruss Hansueli
Anzeige
AW: Lösung ohne VBA
05.10.2006 06:27:44
Josef
Hallo Hansueli!
Danke für Deinen Lösungsvorschlag.
Es würde klappen, wenn ich all diejenigen Zeilen mittels VBA nach kopieren und Werte einfügen danach löschen könnte, wo die Schrift auf Grund der bedingten Formatierung auf weiß gestellt ist.
Die Frage wäre ja noch immer, wie es mittels VBA zu bewerkstelligen wäre.
Josef

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige