Microsoft Office Forum [ www.Office-Fragen.de ] >> READONLY <<
Microsoft Office 2003-2019 => Excel => Thema gestartet von: klasperstanze am Juli 26, 2013, 10:25:59 Vormittag
-
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 (http://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ß!
-
Hi,
hast du den Blattschutz so eingestellt, dass auch gesperrte Zellen ausgewählt (und damit kopiert) werden dürfen? Das müsstest du ändern, denn bei Copy & Paste werden auch die Zellformate mit übertragen.
Bis später,
Karin
-
Hi Karin,
Beim Blattschützen sind ausschließlich angehakt: "Gesperrte zellen markieren" und "Nicht-gesperrte Zellen markieren".
Sollte ich das für nicht-gesperrte Zellen ändern?
Ich versuchs mal.
Danke / Gruß!
-
Hi nochmal,
"gesperrte zellen nicht markieren" bringt keine Lösung.
Nach copy/paste und save ist beim Neuöffnen ebendiese Zelle wieder gesperrt.
-
Hi,
benutze das Change-Ereignis des Tabellenblattes um die Zellen wieder zu entsperren.
Bis später,
Karin
-
Hi Karin,
Danke für die Antwort. Versteh ich auch prinzipiell. Mit meinem Wissen krieg ich den Code dazu aber nicht hin. Vielleicht könntest du noch schreiben, wie der Code dann in etwa aussähe?
Wäre super.
Danke / Gruß!