Clever-Excel-Forum

Normale Version: Excel-VBA Problem
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Guten Tag!

Ich habe eine Tabelle, bei der in Spalte C3:C14 einige Länder stehen, in Spalte D3:D14 stehen Werte und in Spalte D15 wird die Summe der Werte aus D3:D14 gebildet. Zelle C15 ist leer.

Die Werte für die Zellen D3:14 werden über folgenden VBA-Code gezogen:

Sub 1
Dim n As Integer

Dim m As Integer

Dim Country As String

Dim Sales As Double

n = 2

Do While n < 48

Country = Worksheets("Sheet1").Cells(n, 3).Value

Sales = Worksheets("Sheet1").Cells(n, 4).Value

m = 3

Do While m < 45

If Country = Cells(m, 3).Value Then

Cells(m, 4).Value = Sales

End If


m = m + 1   

    Loop

n = n + 1

Loop
End Sub


Das funktioniert auch soweit alles hervorragend. Den VBA-Code auf die Zellen D3:D14 zu beschränken ist keine Lösung, da die Zeilen gelegentlich erweitert werden und dies automatisch geschehen soll.

Mein Problem ist, das mit Abspielen des Makros immer die Summenfunktion in Zelle C15 durch eine "0" ersetzt wird. Gibt es eine Möglichkeit, festzulegen, dass wenn Cells(m,3)="" ist, den Wert in Cells (m,4) unverändert zu lassen?


Die Funktion in Zelle D15 ist =SUMME(D3:INDEX(D:D;ZEILE()-1)) falls das hilft.

Aus Datenschutzgründen kann ich leider die Mappe nicht anhängen, ich hoffe das Problem wird aber auch so klar. Für Hilfe wäre ich sehr dankbar.

Vielen Dank!

Das Thema ist übrigens auch schon hier zu finden: VBA - Excel VBA-Problem - MS-Office-Forum. Bis jetzt kam es da aber noch zu keiner Lösung, ich aktualisiere natürlich sobald sich das ändert.
Hallo,

na immerhin wird der Umfang des Codes hier etwas mehr als im MS-Office-Forum.
Danke für deine Hilfe Michael.
Hallo,

versuche die zweite Bedingung noch mit in die If - Abfrage zu integrieren:

Code:
If Country = Cells(m, 3).Value  And Cells(m, 3).Value <> "" Then

Grüße 

Norbert
Hallo Norbert, danke dir! Weißt du, wie ich meine Summenfunktion da korrekt integriere? Die Formel, die ich in der Zelle nutze, ist SUMME(D3:INDEX(D:D;ZEILE()-1)). Ich bin leider VBA-Neuling und weiß nicht, wie ich die umschreiben muss damit das über VBA korrekt funktioniert.