Severus schrieb am 06.11.2010 12:09:39:
Marcel schrieb am 06.11.2010 11:46:12:
Severus schrieb am 06.11.2010 03:56:52:
Marcel schrieb am 06.11.2010 00:59:46:
Severus schrieb am 06.11.2010 00:43:45:
Marcel schrieb am 05.11.2010 23:42:35:
Hallo liebe VBA Gemeinde,
ich habe folgendes Problem und brauche dringend eure Hilfe.
ich würde gerne das VBA mir unter diese Schleife automatisch die Summe der angegebenen Werte ausrechnet, aber irgend wie klappt das bei mir nicht.
Dim SUMME as Double
Summe = 0#
'Range("D11").Select
ActiveSheet.Range("D65536").End(xlUp).Select
i = 0
Do
i = i + 1
Loop Until ActiveCell.Offset(0, i) = ""
ActiveCell.Offset(0, i).Value = Application.WorksheetFunction.VLookup([B11], Sheets("Leistungen").[A2:B60], 2, False) * Faktor
SUMME = SUMME + ActiveCell.Offset(0, i).Value
ActiveCell.Offset(1, i).Value = Application.WorksheetFunction.VLookup([B12], Sheets("Leistungen").[A2:B60], 2, False) * Faktor1
SUMME = SUMME + ActiveCell.Offset(1, i).Value
ActiveCell.Offset(2, i).Value = Application.WorksheetFunction.VLookup([B13], Sheets("Leistungen").[A2:B60], 2, False) * Faktor2
SUMME = SUMME + ActiveCell.Offset(2, i).Value
ActiveCell.Offset(3, i).Value = Application.WorksheetFunction.VLookup([B14], Sheets("Leistungen").[A2:B60], 2, False) * Faktor3
SUMME = SUMME + ActiveCell.Offset(3, i).Value
ActiveCell.Offset(4, i).Value = Application.WorksheetFunction.VLookup([B15], Sheets("Leistungen").[A2:B60], 2, False) * Faktor4
SUMME = SUMME + ActiveCell.Offset(4, i).Value
ActiveCell.Offset(5, i).Value = Application.WorksheetFunction.VLookup([B16], Sheets("Leistungen").[A2:B60], 2, False) * Faktor5
SUMME = SUMME + ActiveCell.Offset(5, i).Value
ActiveCell.Offset(6, i).Value = Application.WorksheetFunction.VLookup([B17], Sheets("Leistungen").[A2:B60], 2, False) * Faktor6
SUMME = SUMME + ActiveCell.Offset(6, i).Value
ActiveCell.Offset(7, i).Value = Application.WorksheetFunction.VLookup([B18], Sheets("Leistungen").[A2:B60], 2, False) * Faktor7
SUMME = SUMME + ActiveCell.Offset(7, i).Value
ActiveCell.Offset(8, i).Value = Application.WorksheetFunction.VLookup([B19], Sheets("Leistungen").[A2:B60], 2, False) * Faktor8
SUMME = SUMME + ActiveCell.Offset(8, i).Value
ActiveCell.Offset(9, i).Value = Application.WorksheetFunction.VLookup([B20], Sheets("Leistungen").[A2:B60], 2, False) * Faktor9
SUMME = SUMME + ActiveCell.Offset(9, i).Value
ActiveCell.Offset(9, i + 1).Value = SUMME
Hallo Severus,
vielen Dank für die schnelle Antwort, es funktioniert super!!
Ist es vielleicht auch möglich, dass die Summe nicht unter die Werte geschrieben wird sondern rechts neben den letzten Wert?
Ich habe jetzt noch ein Problem, wenn ich die Schleife ein zweites mal ausführe, wird der Wert rechts neben alle Werte geschrieben und nicht drunter.
Hat da vielleicht auch noch jemand Abhilfe?
vielen Dank im voraus.
LG
Marcel
Severus
Hallo Severus,
vielen Dank erstmal für deine Bemühungen!
Mit den Befehlen funktioniert es zwar, dass die Summe rechts neben dem letzten Wert ausgegeben wird, allerdings wird jetzt der allererste Wert nichtmehr im Feld E11 ausgegeben sondern im Feld E20.
Bei wiederholtem ausführen werden die Werte auch wieder rechts ausgegeben und nicht unter den anderen Werten.
Hilft es vielleicht, wenn ich die Kompletten Befehle hier hochlade?
vielen Dank im voraus.
LG
Marcel
Yepp! Wär sicher gut. So rät man nur herum!
Severus
Hallo Severus,
hier ist der gesamte Code:
Private Sub CommandButton1_Click()
Range("A11") = Date
ActiveWorkbook.Worksheets("Kundendaten").Select
Range("A11").Select
i = 0
Do
i = 1 + i
Loop Until ActiveCell.Offset(0, i) = ""
ActiveCell.Offset(0, i).Value = Leistungstabelle
ActiveCell.Offset(1, i).Value = Leistungstabelle1
ActiveCell.Offset(2, i).Value = Leistungstabelle2
ActiveCell.Offset(3, i).Value = Leistungstabelle3
ActiveCell.Offset(4, i).Value = Leistungstabelle4
ActiveCell.Offset(5, i).Value = Leistungstabelle5
ActiveCell.Offset(6, i).Value = Leistungstabelle6
ActiveCell.Offset(7, i).Value = Leistungstabelle7
ActiveCell.Offset(8, i).Value = Leistungstabelle8
ActiveCell.Offset(9, i).Value = Leistungstabelle9
Range("B11").Select
i = 0
Do
i = i + 1
Loop Until ActiveCell.Offset(0, i) = ""
ActiveCell.Offset(0, i).Value = Faktor
ActiveCell.Offset(1, i).Value = Faktor1
ActiveCell.Offset(2, i).Value = Faktor2
ActiveCell.Offset(3, i).Value = Faktor3
ActiveCell.Offset(4, i).Value = Faktor4
ActiveCell.Offset(5, i).Value = Faktor5
ActiveCell.Offset(6, i).Value = Faktor6
ActiveCell.Offset(7, i).Value = Faktor7
ActiveCell.Offset(8, i).Value = Faktor8
ActiveCell.Offset(9, i).Value = Faktor9
Range("C11").Select
i = 0
Do
i = i + 1
Loop Until ActiveCell.Offset(0, i) = ""
If Leistungstabelle = "" Then ActiveCell.Offset(0, i).Value = "" Else ActiveCell.Offset(0, i).Value = Application.WorksheetFunction.VLookup([B11], Sheets("Leistungen").[A2:B60], 2, False)
If Leistungstabelle1 = "" Then ActiveCell.Offset(1, i).Value = "" Else ActiveCell.Offset(1, i).Value = Application.WorksheetFunction.VLookup([B12], Sheets("Leistungen").[A2:B60], 2, False)
If Leistungstabelle2 = "" Then ActiveCell.Offset(2, i).Value = "" Else ActiveCell.Offset(2, i).Value = Application.WorksheetFunction.VLookup([B13], Sheets("Leistungen").[A2:B60], 2, False)
If Leistungstabelle3 = "" Then ActiveCell.Offset(3, i).Value = "" Else ActiveCell.Offset(3, i).Value = Application.WorksheetFunction.VLookup([B14], Sheets("Leistungen").[A2:B60], 2, False)
If Leistungstabelle4 = "" Then ActiveCell.Offset(4, i).Value = "" Else ActiveCell.Offset(4, i).Value = Application.WorksheetFunction.VLookup([B15], Sheets("Leistungen").[A2:B60], 2, False)
If Leistungstabelle5 = "" Then ActiveCell.Offset(5, i).Value = "" Else ActiveCell.Offset(5, i).Value = Application.WorksheetFunction.VLookup([B16], Sheets("Leistungen").[A2:B60], 2, False)
If Leistungstabelle6 = "" Then ActiveCell.Offset(6, i).Value = "" Else ActiveCell.Offset(6, i).Value = Application.WorksheetFunction.VLookup([B17], Sheets("Leistungen").[A2:B60], 2, False)
If Leistungstabelle7 = "" Then ActiveCell.Offset(7, i).Value = "" Else ActiveCell.Offset(7, i).Value = Application.WorksheetFunction.VLookup([B18], Sheets("Leistungen").[A2:B60], 2, False)
If Leistungstabelle8 = "" Then ActiveCell.Offset(8, i).Value = "" Else ActiveCell.Offset(8, i).Value = Application.WorksheetFunction.VLookup([B19], Sheets("Leistungen").[A2:B60], 2, False)
If Leistungstabelle9 = "" Then ActiveCell.Offset(9, i).Value = "" Else ActiveCell.Offset(9, i).Value = Application.WorksheetFunction.VLookup([B20], Sheets("Leistungen").[A2:B60], 2, False)
Dim SUMME As Double
SUMME = 0#
Range("D11").Select
ActiveSheet.Range("D65536").End(xlUp).Select
i = 0
Do
i = i + 1
Loop Until ActiveCell.Offset(0, i) = ""
If Leistungstabelle = "" Then ActiveCell.Offset(0, i).Value = "" Else ActiveCell.Offset(0, i).Value = Application.WorksheetFunction.VLookup([B11], Sheets("Leistungen").[A2:B60], 2, False) * Faktor
SUMME = SUMME + ActiveCell.Offset(0, i).Value
If Leistungstabelle1 = "" Then ActiveCell.Offset(1, i).Value = "" Else ActiveCell.Offset(1, i).Value = Application.WorksheetFunction.VLookup([B12], Sheets("Leistungen").[A2:B60], 2, False) * Faktor1
SUMME = SUMME + ActiveCell.Offset(1, i).Value
If Leistungstabelle2 = "" Then ActiveCell.Offset(2, i).Value = "" Else ActiveCell.Offset(2, i).Value = Application.WorksheetFunction.VLookup([B13], Sheets("Leistungen").[A2:B60], 2, False) * Faktor2
SUMME = SUMME + ActiveCell.Offset(2, i).Value
If Leistungstabelle3 = "" Then ActiveCell.Offset(3, i).Value = "" Else ActiveCell.Offset(3, i).Value = Application.WorksheetFunction.VLookup([B14], Sheets("Leistungen").[A2:B60], 2, False) * Faktor3
SUMME = SUMME + ActiveCell.Offset(3, i).Value
If Leistungstabelle4 = "" Then ActiveCell.Offset(4, i).Value = "" Else ActiveCell.Offset(4, i).Value = Application.WorksheetFunction.VLookup([B15], Sheets("Leistungen").[A2:B60], 2, False) * Faktor4
SUMME = SUMME + ActiveCell.Offset(4, i).Value
If Leistungstabelle5 = "" Then ActiveCell.Offset(5, i).Value = "" Else ActiveCell.Offset(5, i).Value = Application.WorksheetFunction.VLookup([B16], Sheets("Leistungen").[A2:B60], 2, False) * Faktor5
SUMME = SUMME + ActiveCell.Offset(5, i).Value
If Leistungstabelle6 = "" Then ActiveCell.Offset(6, i).Value = "" Else ActiveCell.Offset(6, i).Value = Application.WorksheetFunction.VLookup([B17], Sheets("Leistungen").[A2:B60], 2, False) * Faktor6
SUMME = SUMME + ActiveCell.Offset(6, i).Value
If Leistungstabelle7 = "" Then ActiveCell.Offset(7, i).Value = "" Else ActiveCell.Offset(7, i).Value = Application.WorksheetFunction.VLookup([B18], Sheets("Leistungen").[A2:B60], 2, False) * Faktor7
SUMME = SUMME + ActiveCell.Offset(7, i).Value
If Leistungstabelle8 = "" Then ActiveCell.Offset(8, i).Value = "" Else ActiveCell.Offset(8, i).Value = Application.WorksheetFunction.VLookup([B19], Sheets("Leistungen").[A2:B60], 2, False) * Faktor8
SUMME = SUMME + ActiveCell.Offset(8, i).Value
If Leistungstabelle9 = "" Then ActiveCell.Offset(9, i).Value = "" Else ActiveCell.Offset(9, i).Value = Application.WorksheetFunction.VLookup([B20], Sheets("Leistungen").[A2:B60], 2, False) * Faktor9
SUMME = SUMME + ActiveCell.Offset(9, i).Value
ActiveCell.Offset(9, i + 1).Value = SUMME
End Sub |