Clever-Excel-Forum

Normale Version: Zellen Sperren - VBA geht nicht mehr??
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Schönen Guten Morgen,

Office 2016  bzw. 2010

eine neue Frage ist aufgetreten.

Zunächst - durch eingabe einer Artikelnummer sollen passende Informationen und ein Bild angezeigt werden.
Das Funktioniert. Vielen Dank.

Nun dachte ich mir, damit nich jedermann daran herum Arbeiten kann, sperre ich die meisten Zellen.
Zellen Ausgewählt - "Formatieren" - " Schutz" - Haken bei Sperren gesetzt -  Reiter "Überprüfen" - Blattschutz mit Kennwort gesetzt.

Das hat auch gut Funktioniert. Zellen sind gesperrt.

Nicht Gesperrt, die eingabe der Artikelnummer und den ganzen bereich, in dem das Bild gezeigt werden soll.

Leider wird dann kein Bild mehr gezeigt. Sobald nur eine Zelle Gesperrt wurde. Egal wo auf dem Blatt. Nur noch #WERT!
Blattschutz aufgehoben, geht es wieder.

Da alle Zellen nicht gesperrt wurden die mit dem Bild zeigen zu tun haben, wird es wohl eine art "Globales"  Problem sein. Sobald ein Blattschutz Aktiv ist, wirkt sich dieser auf den VBA Code aus.  Richtig?

Wie kann man den Code für die Funktion Bild Zeigen aus der Sperre ausnehmen?  Dies soll ja weiterhin Funktionieren. 

Hoffe es ist klar geworden was ich meine. Beispiel Datei hätte ich da. 
Es müsste nur der Pfad für die Bilder angepasst werden, wenn das jemand ausprobieren möchte.

Der Sperrcode ist: 123

Danke.
https://excel.tips.net/T002833_Using_Mac...books.html

Du hast eine UDF, die in einem geschützten Blatt ein geschütztes Objekt verändern bzw. hinzufügen will. Das geht nicht, ggf. beim Schützen den Haken bei "Objekte bearbeiten" setzen, das könnte hier reichen.
Außerdem, die Funktion fügt immer weitere Bilder hinzu, ohne das vorhergehende zu löschen, ist das so beabsichitgt?
(02.08.2017, 12:03)Storax schrieb: [ -> ]https://excel.tips.net/T002833_Using_Mac...books.html

Du hast eine UDF, die in einem geschützten Blatt ein geschütztes Objekt verändern bzw. hinzufügen will. Das geht nicht, ggf. beim Schützen den Haken bei "Objekte bearbeiten" setzen, das könnte hier reichen.
Außerdem, die Funktion fügt immer weitere Bilder hinzu, ohne das vorhergehende zu löschen, ist das so beabsichitgt?

Hallo,

nein es wäre besser das vorherige Bild würde gelöscht. Habe das aber nicht hin bekommen. Bzw. keine Lösung gefunden.


Danke diesen Haken werd ich mal suchen und das ausprobieren.
* Ja das mit dem Haken Funktioniert, danke. Da sieht man wieder das ich wenig Ahnung habe.
Den Haken findest Du in der Liste "Blatt schützen". Und die wird angezeigt, wenn Du im Ribbon "Überprüfen" auf "Blatt schützen" klickst.

Das andere Problem

Code:
Public Function ZeigeBild(ByVal strBildname As String, Bildhöhe As Long) As String
Const MY_BILD_NAME = "Temp-Bildname"

Dim strDatei As String
Dim Bildbreite As Double
Dim Bildhoehe As Double
Dim meinBild

strZielzelle = Application.Caller.Address


strDatei = "Dein Verzeichnis" & strBildname & ".jpg"

If Dir(strDatei) <> "" Then
 Set meinBild = LoadPicture(strDatei)
 Bildbreite = meinBild.Width
 Bildhoehe = meinBild.Height
 
 Dim sh As Shape
 Del_myShape MY_BILD_NAME
 Set sh = ActiveSheet.Shapes.AddPicture(strDatei, msoFalse, msoTrue, Range(strZielzelle).Left, Range(strZielzelle).Top, Bildhöhe * 28.35 * Bildbreite / Bildhoehe, Bildhöhe * 28.35)
 sh.Name = MY_BILD_NAME
 ZeigeBild = "Bild"
Else
 ZeigeBild = "Bild nicht vorhanden"
End If

End Function



Sub Del_myShape(shName As String)
   Dim sh As Shape
   On Error Resume Next
   Set sh = ActiveSheet.Shapes(shName)
   sh.Delete
End Sub