Clever-Excel-Forum

Normale Version: Wahlweise Formeln oder Eingaben in Zellen – VBA
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Danke an alle für eure Mühe. Und vielen Dank silex1 für deine Formellösung.

Das mit den zusätzlichen Hilfsspalten ist eine Möglichkeit.
Bitte nicht falsch verstehen, ich finde das total super wie ihr helft, aber es könnte bei meiner Originaldatei mit 12 Tabellenblättern ( und ggf. kommen noch mehr hinzu) etwas kompliziert/unübersichtlich werden

Beim googeln habe ich folgenden VBA-Code gefunden, der einen ähnlichen Ansatz verfolgt wie den den ich in meiner Ausgangsfrage gefragt habe. 
Leider bezieht sich das auf eine Zelle links davon und bezieht sich auf eine feste Formel ( so wie ich das Laienhaft verstanden habe  Angel)

Gibt es da eine Möglichkeit den an meine Bedürfnisse anzupassen (bettel bettel). Für mich als VBA-Laien absolut zu hoch.

Hier der gefundene VBA-Code:
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim Zelle As Range
Dim a As Variant
Dim Zeilenzahl As Long
Zeilenzahl = WorksheetFunction.Max(ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row, _
ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row)

For Each Zelle In ActiveSheet.Range(„B2:B“ & Zeilenzahl)
a = Zelle.Offset(0, -1).Value
If a = „“ Or IsNumeric(a) = False Then
Zelle.Value = „“
Else
If Zelle.Value = „“ Then Zelle.Formula = „=RC[-1]*0.05“
End If

Next Zelle
End Sub


Bitte bitte nicht böse sein.
Danke 
Hallöchen,

nur mal etwas Theorie. Links daneben hast Du ja verstanden, dann ist ohne links daneben doch kein Problem?

a = Zelle.Offset(0, -1).Value

a = Zelle.Value

Die Stelle mit der festen Formel hast Du auch gefunden.

Zelle.Formula = „=RC[-1]*0.05“

In der vorherigen Formel wurde ein Wert übernommen. Mit dieser Formel wird eine Formel gesetzt. Wenn Due eine Formel herausholen willst, dann geht das ähnlich wie mit der ersten Formel. Du könntest dazu eventuell eine andere Variable nehmen. Die Formel holst Du gleich am Anfang des Makros in die Variable. Damit die Formel auch später noch zur Verfügung steht, solltest Du sie in eine globale Variable übernehmen, also außerhalb des SelectionSheet... definieren.

Public b as Sting

...Sub Worksheet:SelectionChange ...

b = Zelle.Formula

Deine Eingabe kannst Du in einem

... Sub WorksheetChange ...

auswerten. Wenn Dir die Eingabe nicht passt, tust Du dann die betroffene zelle mit b füllen

Zelle.Formula = b

Passe aber auf, dass Du nur die gewünschten Zellen mit b füllst, nicht dass Du die Formel später auf dem ganzen Blatt hast Smile
Seiten: 1 2