Makro macht nicht was es soll

12/04/2010 - 17:21 von Harri Märki | Report spam
Hallo zusammen

Ich habe folgendes Makro.

Sub NL_Selektion()
'
' Test_Freigabe Makro
'

ActiveSheet.Unprotect

'Auswahl Niederlassung
Dim NL

'NL = Range("J40") zeigt die Niderlassung im Ort an
NL = ("J40")

If NL = Text1 Then _
Range("M7").Select
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With Selection.Font
.Name = "Verdana"
.Size = 10
End With
Range("M7").Select
Range("M7").Value = "Text im Feld M7"
Selection.Locked = True
Selection.FormulaHidden = False
Range("D5").Select
If NL = Text2 Then
Range("M7").Select
Selection.Locked = False
Selection.FormulaHidden = False
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorDark1
.TintAndShade = -0.149998474074526
.PatternTintAndShade = 0
End With
With Selection.Font
.Name = "Verdana"
.Size = 10
End With
'Selection.Locked = True
'Selection.FormulaHidden = False
Range("D5").Select
End If

ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True

End Sub

Ich habe ein Dropdownmenue, das den Wert in J40 àndert.

Was ich erreichen will ist, dass wenn in Feld J40 "Text1" steht, soll die
Zelle M7 mit dem Text "Text im Feld M7" gefüllt und die Zelle zur Bearbeitung
gesperrt sein. Dann wird Zelle D5 angewàhlt (erstes Feld, das im Formular
bearbeitet werden soll).

Steht in J40 "Text2" drinn, so soll die Zelle M7 grau hinterlegt werden und
zur Bearbeitung frei gegeben werden. Dann wird wieder Zelle D5 angewàhlt
(erstes Feld, das im Formular bearbeitet werden soll).

Mein Makro schreibt zwar den "Text im Feld M7" korrekt rein, jedoch ist die
Zelle immer gesperrt und D5 ist nicht mehr grau hinterlegt sondern wird
weiss.

Ich hatte die beiden Makroteile der Zellformatierung aufgezeichnet. Trotzdem
funktioniert es nicht wunschgemàss. Wo habe ich den Fehler im Makro? Versuche
dies schon seit Tagen zu lösen. Bisher leider ohne Erfolg. Würded ihr mir
bitte dabei helfen?

Gruss Harri
 

Lesen sie die antworten

#1 Claus Busch
12/04/2010 - 17:49 | Warnen spam
Hallo Harri,

probiers mal so:
Sub NL_Selektion()
'
' Test_Freigabe Makro
'

ActiveSheet.Unprotect

'Auswahl Niederlassung
Dim NL As String

'NL = Range("J40") zeigt die Niderlassung im Ort an
NL = Range("J40").Text

If NL = "Text1" Then
With Range("M7")
With .Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With .Font
.Name = "Verdana"
.Size = 10
End With
.Value = "Text im Feld M7"
.Locked = True
.FormulaHidden = False
End With
Range("D5").Select
ElseIf NL = "Text2" Then
With Range("M7")
.Value = ""
.Locked = False
.FormulaHidden = False
With .Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorDark1
.TintAndShade = -0.149998474074526
.PatternTintAndShade = 0
End With
With .Font
.Name = "Verdana"
.Size = 10
End With
End With
'Selection.Locked = True
'Selection.FormulaHidden = False
Range("D5").Select
End If

ActiveSheet.Protect DrawingObjects:=True, Contents:=True,
Scenarios:=True

End Sub


Mit freundlichen Grüssen
Claus Busch
Win XP PRof SP2 / Vista Ultimate SP2
Office 2003 SP2 /2007 Ultimate SP2

Ähnliche fragen