Microsoft Excel

Herbers Excel/VBA-Archiv

Formel wenn Bedingung erfüllt

Betrifft: Formel wenn Bedingung erfüllt von: Orgensek Ske
Geschrieben am: 14.08.2014 12:21:34

Hallo zusammen,

leider bin ich mit meinem Latein am Ende und bitte Euch um eine Eurer genialen Excell-Gehirnzellen.

Anbei ein Ausschnitt meiner Tabelle.

Ziel ist es; den durchschnittlichen Lagerbestand zu berechnen (R4).
Dafür berechne ich D4+E2-E3 und kopiere die Formel nach rechts. Jetzt soll Excell diese Formel in jeder vierten Zeile anwenden (eine Vereinfachung für mich, weil ich dachte es geht mit der Formel: wenn rest zeile, jedoch ein Trugschluss: excell überschreibt die Zeilen die dazwischen liegen)

Ich möchte gern, dass Excell diese einfache Formel immer dann anwendet, wenn in Zelle D eine Zahl größer/ gleich 0 auftaucht...wie stelle ich das an?

Für jede Hilfe bin ich Euch sehr dankbar.

Viele Grüße
Orgensek

https://www.herber.de/bbs/user/92098.xlsx

  

Betrifft: AW: Formel wenn Bedingung erfüllt von: Klaus M.vdT.
Geschrieben am: 14.08.2014 12:48:18

Hallo Orgensek,
Vielleicht so?

Sub FormelWennBestandGefuellt()
Dim r As Range
Const FormelSpalte As Long = 18  'Formel in Spalte 18 = R
Const BestandSpalte As Long = 4  'Bestand in Zeile 4
Const firstRow As Long = 2 'ab Zeile 2
Dim lastRow As Long

With ActiveSheet
    lastRow = .Cells(.Rows.Count, BestandSpalte).End(xlUp).Row
    For Each r In .Range(.Cells(firstRow, BestandSpalte), .Cells(lastRow, BestandSpalte))
        If r.Value <> "" Then
            .Cells(r.Row, FormelSpalte).FormulaR1C1 = "=RC[-14]+R[-2]C[-13]-R[-1]C[-13]"
        End If
    Next r
End With
End Sub
Auf das "mod 4" habe ich verzichtet, stattdessen prüfe ich ob Spalte D leer ist oder nicht um die Formel zu schreiben.
Ohne VBA sehe ich keine Chance. Eine Formel kann sich ja nicht selber löschen wenn sie nicht gebraucht wird. Und eine =WENN(xxx;"",Formel) Lösung kommt bestimmt nicht in Frage, denn da währst du selber drauf gekommen :-)

Grüße,
Klaus M.vdT.


  

Betrifft: AW: Formel wenn Bedingung erfüllt von: Orgensek Ske
Geschrieben am: 14.08.2014 13:15:03

Vielen Dank für deine schnelle Antwort...

sehr, sehr geil - große Freude erlebt, beim Makro ausführen :-)DANKE

Problem: mit Ausführung des Makros füllt er jetzt Spalte 18 (R) aus- diese Berechnung kommt aber zum Schluss.

Excell soll die programmierte Formelberechnung D4+E3-E4 in E4-P4 berechnen, dann in Q4 die Summe daraus bilden (das sind die Monatsendbestände) und dann in R4 rechnen: D4+Q4/13 ... und das alles, wie du es schon geschrieben hast, wenn D nicht leer ist...

Was muss ich anders machen????

danke, danke, danke


  

Betrifft: AW: Formel wenn Bedingung erfüllt von: Klaus M.vdT.
Geschrieben am: 14.08.2014 13:28:46

Hallo Orgensek,
das Makro macht genau was du im ersten Beitrag abgefordert hast :-)
Im Endeffekt musst du deine Formelbedarfe einfach alle in die Schleife schreiben

With ActiveSheet
lastRow = .Cells(.Rows.Count, BestandSpalte).End(xlUp).Row
For Each r In .Range(.Cells(firstRow, BestandSpalte), .Cells(lastRow, BestandSpalte))

HIER wird für jede Spalte geprüft und eventuell etwas getan
Next r
End With
End Sub


Zum Beispiel Schreibe ich ja eine Formel in Spalte R, wenn Spalte D leer ist:
If r.Value <> "" Then
.Cells(r.Row, FormelSpalte).FormulaR1C1 = "=RC[-14]+R[-2]C[-13]-R[-1]C[-13]"
End If

Da kannst du jetzt Bedingungen und Formeln dazu schreiben.
das könnte so aussehen:
if .cells(r.row, 2).value = "AB/ Monatsendbestände" then
.Cells(r.row, 16).FormulaR1C1 = "=DeineFormel"
end if
das schreib dann eine Formel in SPalte P, wenn die Zeile "AB/Monatsendbestände" erreicht sind.

So bastelst du dir das zusammen, musst vielleicht etwas mit den Reihenfolgen spielen. Tipp: Die Formeln im R1C1 Format bekommst du am einfachsten, wenn du sie einmal direkt in Excel eingibst, den Makrorekorder anwirfst, die Zelle anwählst, F2, Enter, Rekorder aus. Jetzt kopierst du dir die R1C1-Version der Formel direkt aus dem aufgezeichneten Makro.

Grüße und viel Spaß beim basteln,
Klaus M.vdT.


  

Betrifft: AW: Formel wenn Bedingung erfüllt von: Orgensek Ske
Geschrieben am: 14.08.2014 13:37:54

Klaus - vielen Dank..

ich bin dann mal basteln :-)

VG
Orgensek


  

Betrifft: AW: Formel wenn Bedingung erfüllt von: Christian
Geschrieben am: 14.08.2014 13:24:35

Hallo Denise,

Excel gut??

Deine Formel in F4: WENN(REST(ZEILE(E2:Q16);4)=0;E2:Q16;E4+F2-F3) ist Nonsens.
Die Werte in den Zeilen (mit Artikelnummern in Spalte B) bei Spalte E bis P werden händisch eingegeben?
Kopiere E4 bis P4, in Q4 und R4 gibts Du Deine benötigte Formeln ein,danach markierst Du E2 bis R5 und ziehst das Ganze soweit nach unten wie Du es brauchst.


MfG Christian


  

Betrifft: AW: Formel wenn Bedingung erfüllt von: Orgensek Ske
Geschrieben am: 14.08.2014 13:36:38

Hallo Christian,

die Daten habe ich via Converter aus einem PPS System ins Excel importiert und nicht händisch eingetragen.

Zu deinem Vorschlag: das funktioniert ja eben nicht, weil Excell ja dann alle Zeilen überschreibt und nicht nur die, die in D4 einen Wert haben bzw. in jede vierte Zeile.

Oder stehe ich jetzt völlig auf dem Schlauch?!

VG und Danke für deine Hilfe
Orgensek


 

Beiträge aus den Excel-Beispielen zum Thema "Formel wenn Bedingung erfüllt"