VBA-Code - macht nicht das was er soll geschlossen 

Status
Für weitere Antworten geschlossen.

Messiah

Registered +
Registriert
Dez. 2007
Beiträge
31
Hallo Zusammen,

Ich hab da ein kleines Problem mit dem VBA Code den ich "gebastelt" hab.
Ich bin nicht so ein VBA Crack und hab mir die Cods durch den Makrorecorder erstellt.
Soweit funktioniert der Code auch, nur wenn ich in Feld "D43" "Ja" auswähle kann ich in Feld "D44" eine Zahl schreiben - so soll es auch sein - wenn man nun aber woanders in Dokument klickt, verschwindet diese Zahl wieder....

Hier hab ich mal den Code...
Option Explicit

Private Sub WorkSheet_Change(ByVal Target As Range)

If Range("D43").Value <> "Nein" Then

ActiveSheet.Unprotect
Range("D44").Select
Selection.Interior.ColorIndex = 15
Selection.Locked = False
Selection.FormulaHidden = False
ActiveCell.FormulaR1C1 = ""
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

Else

ActiveSheet.Unprotect
Range("D44").Select
Selection.Interior.ColorIndex = 2
Selection.Locked = True
Selection.FormulaHidden = False
ActiveCell.FormulaR1C1 = "=RC[-2]*R[-32]C[-2]"
Range("D44").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

End If


End Sub

Hab ihr da eine Idee wo der Fehler liegt....

Der Code soll folgendes machen:
Wenn Feld D43="Nein" dann soll das Feld D44 weiß und gesperrt werden und die Formel =B44*B12 eingetragen werden. Wenn in dem Feld D43="Ja" steht soll das feld grau und entsperrt werden und man muss eine Zahl eintragen können-die Formel sollte dann nicht in dem Feld stehen....

So ich hoffe ich konnte euch mein Problem erleutern und ihr könnt mir dabei helfen.
Sollte was unklar sein einfach fragen...

Gruß, Messiah
 
Hi!

Lösche das

Code:
ActiveCell.FormulaR1C1 = ""

raus, und schon funktionierts!

Du kannst auch zB den etwas kürzeren Code :) verwenden:

Private Sub WorkSheet_Change(ByVal Target As Range)

If Range("d43").Value = "Nein" Then
ActiveSheet.Unprotect
Range("d44").Interior.Color = vbWhite
Range("d44").Locked = True
Range("d44").FormulaHidden = False
Range("d44").FormulaR1C1 = "=RC[-2]*R[-32]C[-2]"
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
Else
ActiveSheet.Unprotect
Range("d44").Interior.ColorIndex = 15
Range("d44").Locked = False
Range("d44").FormulaHidden = True
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
End If
End Sub
 
jaaaaaaaaaaa funktioniert...
sehr schön danke für die schnelle antwort

Du weißt gar nicht wie froh ich bin, das endlich gelöst zu haben...:drum:

LG, Messiah
 
Toll,

was meinst du wie froh ich wäre, wenn die Member in der Freude auch das Präfix auf erledigt umstellen würden ?

Riesenfroh. Einzig passiert es zu selten.

------------------------ GESCHLOSSEN ---------------------
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben Unten