Einfache Multiplikation

  • Excel

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von petaod.

    Einfache Multiplikation

    Hi Comm,

    hab heute mal ein Problem aus einer anderen Sparte. Und zwar möchte ich Werte aus den Zellen B4 - B205 mit einem Wert (bspw. dem Wert 2) multiplizieren und die Ergebnis in den Spalten F4 - F205 ausgeben.
    Das Ganze sollte in etwa so aussehen:
    F4 = B4 * 2
    F5 = B5 * 2
    F6 = B6 * 2
    ...

    Ich habe mir da mal was zusammen geschrieben, jedoch rechnet mir Excel das nicht durch. Könnt ihr mir helfen? ich seh den Wald vor lauter Bäumen nicht.

    Visual Basic-Quellcode

    1. Sub vbaTestBerechnung()
    2. 'multipliziert den selektierten bereich
    3. Dim c As Range
    4. For Each c In Tabelle1.Range("c4:c205")
    5. If (IsNumeric(c) And c.Value <> "") Then
    6. Range("g4") = 2 * c.Value
    7. End If
    8. Next c
    9. End Sub


    MfG meta (ehem. powerprogger) :thumbup:
    Du schreibst nur das letzte Ergebnis in G4

    Du musst noch eine zusätzliche Variable einführen, die
    du bei jedem Schleifendurchgang um eins erhöhst.

    Visual Basic-Quellcode

    1. Sub vbaTestBerechnung()
    2. 'multipliziert den selektierten bereich
    3. Dim c As Range
    4. dim n as integer
    5. n=1
    6. For Each c In Tabelle1.Range("c4:c205")
    7. If (IsNumeric(c) And c.Value <> "") Then
    8. Range("g" & n) = 2 * c.Value
    9. n=n+1
    10. End If
    11. Next c
    12. End Sub



    Es gibt auch eine Excel-Standardfunktion um eine kopierte Auswahl
    zu multiplizieren oder zu addieren. Über Inhalte kopieren kannst
    du unter "Vorgang" wählen, wie du die Daten mit den Zielbereich
    verknüpfen willst.

    gerhard schrieb:

    Einfacher geht es kaum.

    Doch.
    Wenn du schon alte Kamellen aufwärmst, muss ich dich korrigieren.
    Die von dir vorgeschlagene Variante liesse sich auch in einem Einzeiler programmieren:

    Visual Basic-Quellcode

    1. Range(F4:F205).FormulaR1C1 = "=RC[-4]*2"

    Aber sie widerspiegelt nicht die vom Threadersteller vorgegebene Bedingung
    If IsNumeric(c) ...

    Auch das liesse sich als Einzeiler lösen:

    Visual Basic-Quellcode

    1. Range(F4:F205).FormulaR1C1 = "=IF(ISNUMBER(RC[-4]),RC[-4]*2,"""")"


    Aber das wird den Threadersteller wohl nicht mehr interessieren. ;)
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --