Hi,
In meiner Tabelle ist der Blattschutz aktiviert, ausgenommen für einen bestimmten Zellbereich, den ich ausdrücklich als nicht-gesperrt eingestellt habe.
Diese Zellen bleiben nach normaler Eingabe, wie gewünscht, ungeschützt.
Erfolgt die Eingabe allerdings per copy/paste, so werden die betreffenden Zellen sowie weitere, nicht-gesperrte Zellen auf einmal geschützt.
Nach Eingaben per copy/paste kann man also im ursprünglich nicht-gesperrten Zell-Areal keine Eingaben mehr tätigen.
Hintergrund:
Der copy/paste-Inhalt erfolgt von Internetseiten, z.B. Artikelnummern von
www.conrad.de.
Die Tabelle besitzt ein Makro, welches eine eMail verschickt, wenn eine formelbehaftete Zelle einen Wert überschreitet.
Code in der Tabelle:
Private Sub Worksheet_Calculate()
Dim FormulaRange As Range
Dim NotSentMsg As String
Dim MyMsg As String
Dim SentMsg As String
Dim MyLimit As Double
NotSentMsg = "Not Sent"
SentMsg = "Sent"
'Above the MyLimit value it will run the macro
MyLimit = 450
'Set the range with the Formula that you want to check
Set FormulaRange = Me.Range("F41")
On Error GoTo EndMacro:
For Each FormulaCell In FormulaRange.Cells
With FormulaCell
If IsNumeric(.Value) = False Then
MyMsg = "Not numeric"
Else
If .Value > MyLimit Then
MyMsg = SentMsg
If .Offset(5, 0).Value = NotSentMsg Then
Call Mail_with_outlook1
End If
Else
MyMsg = NotSentMsg
End If
End If
Application.EnableEvents = False
.Offset(5, 0).Value = MyMsg
Application.EnableEvents = True
End With
Next FormulaCell
ExitMacro:
Exit Sub
EndMacro:
Application.EnableEvents = True
MsgBox "Some Error occurred." _
& vbLf & Err.Number _
& vbLf & Err.Description
End Sub
Code im Modul:
Sub Mail_with_outlook1()
Dim OutApp As Object
Dim OutMail As Object
Dim strto As String, strcc As String, strbcc As String
Dim strsub As String, strbody As String
Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)
strto = "xxx@xx.xx"
strcc = ""
strbcc = ""
strsub = "bla_bla"
strbody = ""
With OutMail
.To = strto
.CC = strcc
.BCC = strbcc
.Subject = strsub
.Body = strbody
.Send
End With
Set OutMail = Nothing
Set OutApp = Nothing
End Sub
Natürlich möchte ich gerne, das entsperrte Zellen entsperrt bleiben.
Weiß jemand Rat?
Vielen Dank im Voraus & Gruß!