PDA

Vollständige Version anzeigen : Werte aus verschiedenen Zellen addieren


Rüfi
23.09.2016, 10:36
Hallo Zusammen

Ich habe folgendes Problem.
Ich habe eine Tabelle mit zwei Spalten. In der ersten steht eine Materialnummer und in der zweiten eine Menge.
Dann hab ich eine Userform mit zwei Textfeldern im einten Feld möchte ich die Materialnummer eingeben und im zweiten Feld sollte dan die Summe aller Mengen Zellen mit der gleichen Material Nummer angezeigt werden.

Ist bin mir sicher das sollte gehen, stehe nur etwas auf dem schlauch....

Ich habe im Anhang meine Beispiel Datei mir vielen Werten drin...

Danke schonmal für eure Rückmeldungen
Marc

mathieu_91
23.09.2016, 10:46
Hallo,

schau dich mal bei der FindNext Funktion um.

Du musst in der ersten Spalte den Wert aus der TextBox suchen und zwar nicht nur einmal, sondern so lange wie vorhanden.
Werte addieren ist dann relativ simpel:


Addition=Addition+cells(i,2).value


i musst du mit der FindNext Funktion ausfindig machen.

Ich verwende gerne dieses simple Beispiel und baue es für mich um:

Sub Test()
Sample Sheets("Sheet1").Range("B1"), Sheets("Sheet1").Range("A1:A4")
End Sub

Sub Sample(FirstRange As Range, ListRange As Range)
Dim aCell As Range, bCell As Range, oRange As Range

Set oRange = ListRange.Find(what:=FirstRange.Value, LookIn:=xlValues, _
lookat:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)

ExitLoop = False

If Not oRange Is Nothing Then
Set bCell = oRange: Set aCell = oRange

Do
Set oRange = ListRange.FindNext(After:=oRange)

If Not oRange Is Nothing Then
If oRange.Address = bCell.Address Then Exit Do
Set aCell = Union(aCell, oRange)
Else
Exit Do
End If
Loop
MsgBox aCell.Address
Else
MsgBox "Not Found"
End If
End Sub



(http://www.siddharthrout.com/2011/07/14/find-and-findnext-in-excel-vba/)

Grüße

Mathieu

Rüfi
23.09.2016, 12:00
Hi Mathieu

Danke für die schnelle Antwort.
Habe gerade von einem Kollegen auch noch eine Antwort bekommen, die sehr gut funktioniert ohne der FindNext funktion.

Sub anzeigen()

Dim myB As Integer
Dim myA As String
Dim Counter As Integer

Counter = 1
myA = UserFormAusgabe.TextBox1.Value


For Counter = 1 To ActiveSheet.UsedRange.Rows.Count
If ActiveSheet.Range("A" & Counter) = myA Then
myB = myB + ActiveSheet.Range("B" & Counter)
End If
Next

UserFormAusgabe.TextBox2 = myB

End Sub