Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
11.02.2015, 16:43
(Dieser Beitrag wurde zuletzt bearbeitet: 11.02.2015, 16:46 von WillWissen.)
Hi Andreas,
so:
Code:
Sub DialogZeigen()
ActiveSheet.Unprotect
Application.Dialogs(xlDialogInsertPicture).Show
Selection.ShapeRange.Width = 85.0393700787
ActiveSheet.Protect
End Sub
Falls du mit einem Passwort schützt, dann so:
Code:
Sub DialogZeigen()
ActiveSheet.Unprotect Password:="xxxxxx"
Application.Dialogs(xlDialogInsertPicture).Show
Selection.ShapeRange.Width = 85.0393700787
ActiveSheet.Unprotect Password:="xxxxxx"
End Sub
Anstelle der "x" trägst du dein PW ein.
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 10.04.2014
Version(en): 2016 + 365
Hi,
(11.02.2015, 16:30)rosl77 schrieb: Ach, wieso kann ich denn hier jetzt keinen Screenshot einfügen!
sollst Du ja auch gar nicht, das bringt eh nix. Wenn Du uns Deine Tabelle zeigen willst, dann benutze einen der beiden Links, siehe die als
Wichtige Themen markierten Forums-Beiträge!
Beitrag 1
>>>>>>>>>>>>>>> Arbeitsmappen im Forum zur Verfügung stellen Beitrag 2
>>>>>>>>>>>>>>> Tabellenausschnitte im Forum einstellen
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo Andreas,
hier würde ein Hinweis auf den Fehler 1004 - Der Befehl kann nicht auf ein geschütztes Blatt angewendet werden ... reichen, da braucht es, wie Ralf schreibt, kein Bild.
Wenn Du mal eins einfügen willst - dazu braucht es eine Voraussetzung und zwei Schritte.
Voraussetzung:
Den großen Antworten-Button benutzen.
Schritte:
1. Datei anfügen /(unter dem Eingabefeld, erst Datei auswählen und dann Anhang anfügen)
2. Anhang in Beitrag einfügen
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)
Registriert seit: 11.02.2015
Version(en): Office 2013
Hallo Leute,
vielen Dank erstmal für eure Hilfe!
Günther:
Code:
Sub DialogZeigen()
ActiveSheet.Unprotect Password:="xxxxxx"
Application.Dialogs(xlDialogInsertPicture).Show
Selection.ShapeRange.Width = 85.0393700787
ActiveSheet.Unprotect Password:="xxxxxx"
End Sub
In der letzten Zeile habe ich "Unprotect" gegen "Protect" ausgetauscht, denn mit deinem Code war dann das ganze Arbeitsblatt ungeschützt.
Jetzt passt das alles - nur ein Problem bleibt. Das eingefügte Bild wird jetzt in der Tabelle plaziert, aber nicht an der Stelle wo der Button sitzt. Und durch den Blattschutz kann auch nichts mehr verschoben werden.
Also wie bekomme ich jetzt die Position hin?
Danke
Andreas
Registriert seit: 10.04.2014
Version(en): 2016 + 365
12.02.2015, 11:53
(Dieser Beitrag wurde zuletzt bearbeitet: 12.02.2015, 11:54 von Rabe.)
Hi,
(12.02.2015, 09:49)rosl77 schrieb: Application.Dialogs(xlDialogInsertPicture).Show
Jetzt passt das alles - nur ein Problem bleibt. Das eingefügte Bild wird jetzt in der Tabelle plaziert, aber nicht an der Stelle wo der Button sitzt. Und durch den Blattschutz kann auch nichts mehr verschoben werden.
dann mußt Du eine Zeile zwischen die Unprotect-Zeile und die oben zitierte einfügen mit:
Range("C5").Select
dann wird es in diese Zelle eingefügt (davon ausgehend, daß der Button in Zelle C5 ist).
Registriert seit: 11.02.2015
Version(en): Office 2013
Super, das funktioniert jetzt bestens!
O.k. - jetzt hab ich das Bild an der richtigen Stelle in der richtigen Größe und das Blatt ist weiterhin geschützt.
Einziges Problem - das Bild ist nicht anwählbar und der Menübutton "Rückgängig" ist nicht wählbar.
Wenn jetzt also der Benutzer irrtümlicherweise ein falsches Foto gewählt hat, dann bekommt er es nicht mehr raus.
Kann man das Blatt zwar schützen aber das Bild nicht?
Registriert seit: 10.04.2014
Version(en): Microsoft 365, mtl. Kanal
Hi Andreas,
Zitat:In der letzten Zeile habe ich "Unprotect" gegen "Protect" ausgetauscht, denn mit deinem Code war dann das ganze Arbeitsblatt ungeschützt.
das war wohl ein Überbleibsel durch Copy & Paste. ;)
Gruß Günter
Jeder Fehler erscheint unglaublich dumm, wenn andere ihn begehen.
angebl. von Georg Christoph Lichtenberg (1742-1799)
Registriert seit: 10.04.2014
Version(en): 2016 + 365
12.02.2015, 17:16
(Dieser Beitrag wurde zuletzt bearbeitet: 12.02.2015, 17:16 von Rabe.)
(12.02.2015, 13:29)rosl77 schrieb: Kann man das Blatt zwar schützen aber das Bild nicht?
und wenn Du in der Bilder-Zelle in "Zellen formatieren..." im Reiter "Schutz" den Haken bei "geschützt" entfernst?
Registriert seit: 10.04.2014
Version(en): 97-2019 (32) + 365 (64)
Hallo rosl,
wenn Du das Bild löschen willst, dann z.B. mit der Schutzoption
DrawingObjects:=False
Wenn Du ein Bid genau auf die Position des Buttons setzen willst, dann kannst Du auch selbige verwenden.
Hier mal ein Beispielcode, anhand Günters Vorlage ausgebaut. Den Name der Schaltflaeche musst Du anpassen.
Code:
Sub DialogZeigen()
'Makro zum Einfuegen eines Bildes ueber eine Schatflaeche.
'Hinweis_ Keine Fehlerbehandlung, wenn kein Bild ausgewaehlt wurde!
'Blattschutz aufheben
ActiveSheet.Unprotect 'Password:="xxxxxx"
'Dialog zur Bildauswahl zeigen
Application.Dialogs(xlDialogInsertPicture).Show
'Mit dem mgewaehlten Bild
With Selection.ShapeRange
'Seitenverhaeltnis beibehalten aus
.LockAspectRatio = False
'Breite wie Commandbutton xx
.Width = Me.OLEObjects("Commandbutton21").Width
'Hoehe wie Commandbutton xx
.Height = Me.OLEObjects("Commandbutton21").Height
'Links wie Commandbutton xx
.Left = Me.OLEObjects("Commandbutton21").Left
'Oben wie Commandbutton xx
.Top = Me.OLEObjects("Commandbutton21").Top
'Ende Mit dem mgewaehlten Bild
End With
'Passwort setzen, Obekte bearbeitbar
ActiveSheet.Protect DrawingObjects:=False 'Password:="xxxxxx"
End Sub
. \\\|/// Hoffe, geholfen zu haben.
( ô ô ) Grüße, André aus G in T
ooO-(_)-Ooo (Excel 97-2019+365)