Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1068to1072
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

Leere Zellen beim Rechnen überspringen

Leere Zellen beim Rechnen überspringen
27.04.2009 14:27:54
Mandy
Hi,
ich habe folgenden Code (von hier) um sowas wie eine Summery zu programmieren. Also, der Code schaut im Blatt "Daten" in der Spalte AC nach der Kategorie, fasst die doppleten oder mehrfach vorkommenden zusammen und addiert dementsprechend die Preise (AA) zu einem Gesamtpreis pro Kategorie.
Soweit so gut. Das Problem:
Wenn es mal vorkommt, das in der Spalte AA in einer Zelle kein Betrag drin ist (also leer) kommt es zur Fehlermeldung. Frage, wie überspringe ich beim addieren, die leeren Zellen ?
Danke
Mandy
Dim liBlatt As Integer, lboNotOK As Boolean
For liBlatt = 1 To ThisWorkbook.Sheets.Count
If LCase(Sheets(liBlatt).Name) = "Daten" Then
lboNotOK = False
Exit For
Else
lboNotOK = True
End If
Next
If lboNotOK = True Then Exit Sub
Dim arr
Dim MyDicAA
Dim MyDicBB
Dim L As Long
arr = Sheets("Daten").Range("AA10:AC2222")
Set MyDicAA = CreateObject("Scripting.Dictionary")
Set MyDicBB = CreateObject("Scripting.Dictionary")
For L = 1 To UBound(arr)
MyDicAA(arr(L, 3)) = MyDicAA(arr(L, 3)) + arr(L, 1)
MyDicBB(arr(L, 3)) = MyDicBB(arr(L, 3)) + arr(L, 1)
Next
With Sheets("Summery")
.Range("A8").Resize(MyDicAA.Count) = WorksheetFunction.Transpose(MyDicAA.keys)
.Range("C8").Resize(MyDicAA.Count) = WorksheetFunction.Transpose(MyDicAA.items)
End With

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

Betreff
Datum
Anwender
Anzeige
Die paar Codezeilen machen noch keinen Sommer
27.04.2009 14:47:54
Besserwisser
Summery... Das heißt Zusammenfassung. Du schreibst doch sonst auch in Deutsch, warum gehts bei diesem Wort nicht?
ot
27.04.2009 14:48:34
sry,
Keiner eine Idee :-) Danke owT
27.04.2009 23:08:46
Mandy
AW: Leere Zellen beim Rechnen überspringen
27.04.2009 23:15:04
dan
Hallo,
versuch es so:
For L = 1 To UBound(arr)
If (arr(L, 3) "" And arr(L, 1) "" And IsNumeric(arr(L, 1))) Then
MyDicAA(arr(L, 3)) = MyDicAA(arr(L, 3)) + arr(L, 1)
MyDicBB(arr(L, 3)) = MyDicBB(arr(L, 3)) + arr(L, 1)
End If
Next
Funzt es jetzt? Gruss dan, cz.
AW: Leere Zellen beim Rechnen überspringen
27.04.2009 23:36:55
dan
Also komplett wuerde es so assehen:
Dim liBlatt As Integer, lboNotOK As Boolean
For liBlatt = 1 To ThisWorkbook.Sheets.Count
If LCase(Sheets(liBlatt).Name) = "Daten" Then
lboNotOK = False
Exit For
Else
lboNotOK = True
End If
Next
If lboNotOK = True Then Exit Sub
Dim arr
Dim MyDicAA
Dim MyDicBB
Dim L As Long
arr = Sheets("Daten").Range("AA10:AC2222")
Set MyDicAA = CreateObject("Scripting.Dictionary")
Set MyDicBB = CreateObject("Scripting.Dictionary")
For L = 1 To UBound(arr)
If (arr(L, 3) "" And arr(L, 1) "" And IsNumeric(arr(L, 1))) Then
MyDicAA(arr(L, 3)) = MyDicAA(arr(L, 3)) + arr(L, 1)
MyDicBB(arr(L, 3)) = MyDicBB(arr(L, 3)) + arr(L, 1)
End If
Next
With Sheets("Summery")
If (UBound(MyDicAA.keys) &gt 0) Then
.Range("A8").Resize(MyDicAA.Count) = WorksheetFunction.Transpose(MyDicAA.keys)
.Range("C8").Resize(MyDicAA.Count) = WorksheetFunction.Transpose(MyDicAA.items)
End If
End With
Anzeige
Danke, Fehler kommt nicht mehr .-) owT
28.04.2009 13:25:15
Mandy

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige