Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Wahlweise Formeln oder Eingaben in Zellen – VBA
#11
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 
Antworten Top
#12
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
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste