Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Zellen Sperren - VBA geht nicht mehr??
#1
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.


Angehängte Dateien
.xlsm   Beispiel-2.xlsm (Größe: 24,35 KB / Downloads: 3)
Antworten Top
#2
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?
Antworten Top
#3
(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.
Antworten Top
#4
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
[-] Folgende(r) 1 Nutzer sagt Danke an Storax für diesen Beitrag:
  • slowinvest
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste