Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1444to1448
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
Inhaltsverzeichnis

VBA Code pro Zeile, Addieren pro Zeile

VBA Code pro Zeile, Addieren pro Zeile
25.08.2015 15:46:10
Lepke
Hallo!
Ich benötige eure Hilfe :) ... Die Suchfunktion und das Allheilmittel Google habe ich bereits bemüht, konnte mir aus den Ergebnissen aber keinen Reim machen. Bitte seht mir nach, dass ich ein "Anfänger" bin.
Gern möchte ich folgendes tun:
In meiner Excel-Tabelle habe ich viele Zeilen mit diversem Inhalt. Steht eine bestimmte Zeichenfolge in einer Zelle, so soll der Wert der Zelle rechts daneben aufaddiert werden. Es kann dabei sein, dass sich die gesuchte Zeichenfolge mehrfach pro Zeile finden lässt. Hier sollen dann alle rechts neben der entsprechenden Zelle befindlichen Zellen aufaddiert und am Ende der Zeile als Summe ausgegeben werden. Ebenfalls soll ein Counter mitzählen, wie oft die Zeichenfolge pro Zeile zu finden war und dies ebenfalls am Ende der Zeile ausgeben. Dies soll dann Zeile für Zeile geschehen...
Es gelingt mir einfach nicht, meinen Code jeweils Zeile für Zeile auszuführen. Was ich bisher habe ist:
Sub Backspace()
On Error GoTo Fehler
Dim rngFound As Range
Dim strErste As String
Dim i As Double
i = 0
Set rngFound = Range("A1:AB100").Find(What:="0x08", LookIn:=xlValues, LookAt:=xlWhole)
If Not rngFound Is Nothing Then
strErste = rngFound.Address
i = Cells(rngFound.Row, rngFound.Column + 1).Value
Do
Set rngFound = Range("A1:AB100").FindNext(rngFound)
If Not strErste = rngFound.Address Then
i = i + Cells(rngFound.Row, rngFound.Column + 1).Value
End If
Loop While Not strErste = rngFound.Address
Cells(rngFound.Row, 30).Value = i
Else
MsgBox "Keine > 0x08 
Hier wird mir dann natürlich nur die Gesamtsumme aller gewünschten Zellen ausgegeben, aber nicht pro Zeile, wie ich es brauche.
Ist wirklich schwierig zu erklären, was man will...
Ein kurzes Beispiel:
Auszug aus meiner Tabelle:
A B C D E F G H
1 s 321 k 100 0x08 200 m 123
2 h 122 0x08 150 b 220 0x08 80
3 0x08 180 t 120 0x08 250 q 113
4 t 10 o 110 g 50 u 170
5 0x08 190 w 110 0x08 255 0x08 113
es soll entstehen:
Spalte I = Immer pro Zeile alle Werte rechts neben Zellen mit Inhalt = 0x08
Spalte J = Wie häufig kam der Wert 0x08 pro Zeile vor
A B C D E F G H I J
1 s 321 k 100 0x08 200 m 123 ---> 200 1
2 h 122 0x08 150 b 220 0x08 80 ---> 230 2
3 0x08 180 t 120 0x08 250 q 113 ---> 430 2
4 t 10 o 110 g 50 u 170 --->
5 0x08 190 w 110 0x08 255 0x08 113 ---> 558 3
Könnt ihr mir helfen? Danke :)

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Code pro Zeile, Addieren pro Zeile
25.08.2015 15:52:48
Matthias
Hallo Lepke,
du hast in deiner Schleife vergessen dein i irgendwohin zu schreiben. Du zählst es hoch, aber das wars auch. Erst nach der Schleife tust du dies, was deinem besagten Gesamtergebnis entspricht.
lg Matthias

AW: VBA Code pro Zeile, Addieren pro Zeile
25.08.2015 16:00:16
Matthias
Und nochmal ich,
dein Problem besteht darin, dass du einige Teile nicht in deiner Schleife hast, die eigentlich dort rein müssten. Außerdem musst du unterscheiden wenn sich die Zeile von einem Fund zum nächsten ändert. Dann muss dein i wieder 0 gesetzt und deine Werte rechts davon summiert und beides ausgegeben werden.
Zum tatsächlichen Code lass ich mir noch was einfallen, das war erstmal nur das Prinzip.
lg Matthias

Anzeige
AW: VBA Code pro Zeile, Addieren pro Zeile
25.08.2015 16:02:19
Matthias
Oder,
du machst es wie Rudi vorschlägt, das wär das einfachste :)
lg Matthias

AW: VBA Code pro Zeile, Addieren pro Zeile
25.08.2015 16:38:59
Lepke
Hallo Matthias. Danke für Deine Antwort! Ich möchte es gern mittels VBA realisieren. Ich habe Rudi diesbezüglich geantwortet.
Ja, mein Problem ist, dass ich nicht weiß, wie es mir gelingt, meinen Code so anzupassen, dass er die Anforderung erfüllt. Also das ganze Zeilenweise abarbeitet. Ich hab auch schon so einige Dinge versucht, aber ohne Erfolg (und für einen erfahrenen Anwender sicher auch ohne Verstand...). Wenn Du mir etwas unter die Arme oder auf die Sprünge helfen könntest, wäre das wirklich sehr, sehr toll!!

Anzeige
wozu VBA?
25.08.2015 15:54:04
Rudi
Hallo,
ABCDEFGHIJK
1s321k1000x08200m123 2001
2h1220x08150b2200x0880 2302
30x08180t1200x08250q113 4302
4t10o110g50u170 00
50x08190w1100x082550x08113 5583

ZelleFormel
J1{=SUMME(WENN(A1:G1="0x08";B1:H1;0))}
K1=ZÄHLENWENN(A1:H1;"0x08")
Achtung, Matrixformel!
Die geschweiften Klammern{} nicht eingeben,
sondern die Zelle mit
Shift + Strg + Enter
verlassen statt Enter alleine.

Gruß
Rudi

Anzeige
AW: wozu VBA?
25.08.2015 16:10:06
Rudi
Hallo,
Summewenn() reicht auch.
=SUMMEWENN(A1:G1;"0x08";B1:H1)
Gruß
Rudi

AW: wozu VBA?
25.08.2015 16:35:30
Lepke
Hallo Rudi, danke für Deine Antwort(en). Ich bin nicht sicher, ob mir die Formeln am Ende reichen werden. Ich wollte das per VBA lösen, weil ich hoffe, dadurch flexibler zu sein. Abhängig von noch nicht abschätzbaren Anforderungen könnte es sein, dass auch unter gewissen Bedingungen die linke Zelle neben dem Suchwort mitzurechnen ist, außer, wenn das Suchwort direkt nacheinander vorkommt (also bspw. in Spalte E und G das Suchwort, dann nicht zusätzlich die linke Zelle kopieren...). Naja, also das wird vielleicht noch komplexer und da stoße ich dann vielleicht an die Grenzen der Formeln :(

Anzeige
AW: trollolol
25.08.2015 18:22:56
Matthias
So hier der Code,
Sub Backspace,
Application.ScreenUpdating = False
Application.Calculation = xlManual
Dim x As Long
For x = 2 to Cells(Rows.Count,1).End(xlUp).Row
Range("I" & x).FormulaLocal = "=SUMMEWENN(A" & x & ":G" & x & ";""0x08"";B" & x & ":H" & x & ")
Range("J" & x).FormulaLocal = "=ZÄHLENWENN(A" & x & ":H" & x & ";""0x08"")"
Next x
Application.ScreenUpdating = True
Application.Calculation = xlAutmatic
End Sub
Ungetestet.
@Rudi, hab grad kein Excel auf diesem Mistrechner, muss deine SummeWenn auch in ein Array?
Viel Spaß damit,
lg Matthias

Anzeige
nein, muss nicht owT
25.08.2015 18:29:37
Rudi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige