Autor
|
Thema: Bilder löschen? (2096 mal gelesen)
|
de cadhund Mitglied Konstrukteure
Beiträge: 138 Registriert: 08.12.2004 SW Office 2006 SP3.1
|
erstellt am: 31. Jul. 2006 13:28 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, wie könnte man in einem Arbeitsblatt eingefügte Bilder per Makro löschen? Die Bilder haben immer andere Namen. Es sollte ein Button „Bild löschen“ gedrückt werden, dann ein Bild auf dem Blatt ausgewählt und eine Bestätigung des Löschens gefordert werden. Oder gibt es vielleicht eine andere Möglichkeit.
------------------ de cadhund Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 31. Jul. 2006 13:41 <-- editieren / zitieren --> Unities abgeben: Nur für de cadhund
Hallo de cadhund, Code: Public Sub BilderLoeschen() Dim sh As Object For Each sh In ActiveSheet.Shapes If sh.Type = msoLinkedPicture Then 'gilt nur für verknüpfte Bilder sh.Delete End If Next End Sub
hoffe, das war's schon Gruß, Nicole Gottchen, hab natürlich wieder nicht hingelesen Du willst ja Sonderwünsche erfüllt haben Aber ist es dann nicht schneller, auf das Bildchen zu drücken und es mit entfernen zu löschen?? ------------------ Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... [Diese Nachricht wurde von runkelruebe am 31. Jul. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
de cadhund Mitglied Konstrukteure
Beiträge: 138 Registriert: 08.12.2004 SW Office 2006 SP3.1
|
erstellt am: 31. Jul. 2006 14:48 <-- editieren / zitieren --> Unities abgeben:
Hallo Nicole, tja mit Standartlösungen geben wir uns halt nicht ab Natürlich wäre es mit Entfernen einfacher, aber das Formular soll "idiotensicher" werden und daher der andere Weg. ------------------ de cadhund Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 31. Jul. 2006 15:04 <-- editieren / zitieren --> Unities abgeben: Nur für de cadhund
OK, dann mehr Infos bitte: alle Bilder im gleichen Ordner? oder user kennt den Namen einschl. kompletten Pfad? Du willst also nen Knopf, dann soll die Box aufgehen, user tippt Bildnamen einschl Pfad ein, Abfrage ob er sicher ist und dann das Bild löschen? oder willst Du sogar ne Dialogbox ähnlich dem Datei öffnen Dialog, nur eben mit allen in der Tabelle enthaltenen Bildern? Das geht alles nicht auf die Schnelle (zumindest nicht bei mir, also Freiwillige Aus-dem-Ärmel-Schüttler Vor!) und schon gar nicht nebenbei Ich probier's mal heute Abend zu Hause. Aber kein Versprechen! Bis dahin...selber testen Gruß, Nicole
------------------ Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
de cadhund Mitglied Konstrukteure
Beiträge: 138 Registriert: 08.12.2004 SW Office 2006 SP3.1
|
erstellt am: 31. Jul. 2006 15:56 <-- editieren / zitieren --> Unities abgeben:
Hallo Nicole, nein der User kennt gar nichts. Es können per Icon Bilder eingefügt werden. Der User sucht sich dann das Bild aus (wie EINFÜGEN->GRAFIK->AUS DATEI). Hier der Code dazu: Private Sub CommandButton1_Click() 'Blattschutz aufheben ActiveSheet.Unprotect ''Bild 1 'neues Bild einfügen Range("A5").Select On Error Resume Next Dim ObjektDLG As Dialog Set ObjektDLG = Application.Dialogs(xlDialogInsertPicture) ObjektDLG.Show Selection.ShapeRange.LockAspectRatio = msoTrue Selection.ShapeRange.Height = 201.75 Selection.ShapeRange.Width = 269.25 Selection.ShapeRange.Rotation = 0# Selection.ShapeRange.ZOrder msoSendToBack 'in den Hintergrund 'Blatt schützen ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _ , AllowFormattingCells:=True End Sub Es soll dann zum Löschen einfach ein Icon "Bild löschen" gedrückt werden. Dann muss sich der User das Bild per Auswahl aussuchen, wenn er eins angeklickt hat sollte ein Bestätigungsfeld auftauchen wo er dann "Löschen" oder "Abbrechen" klicken kann. Das Bild mit ENTF löschen geht übrigens auch nicht, da das Arbeitsblatt geschützt ist. ------------------ de cadhund Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 01. Aug. 2006 09:20 <-- editieren / zitieren --> Unities abgeben: Nur für de cadhund
bin ich zu blöd zu... ich wollte eigentlich alle Bilder der Tabelle in einer userform darstellen lassen, Multiselect oder auch single, dann auf OK-button zum Löschen. Krieg' ich aber syntaxmäßig mal wieder nicht auf den Pinn, es scheitert an "alle Bilder der Tabelle" und auch an .add aber: Zitat: Das Bild mit ENTF löschen geht übrigens auch nicht, da das Arbeitsblatt geschützt
Du kannst den Bildern ein Makro zuweisen, welches ausgeführt wird, sobald Du draufklickst. Dieses Makro hebt dann erst den Blattschutz auf und poppt die Abfrage ob wirklich gelöscht wird auf, anschließend wird der Blattschutz wieder gesetzt. In der Mappe anbei mal ein Beispiel, wie das für das erste Bild aussehen könnte. Ansonsten bin ich leider raus und warte gespannt auf Lösungen von fähigeren Menschen Gruß, Nicole ------------------ Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... [Diese Nachricht wurde von runkelruebe am 01. Aug. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
de cadhund Mitglied Konstrukteure
Beiträge: 138 Registriert: 08.12.2004 SW Office 2006 SP3.1
|
erstellt am: 01. Aug. 2006 09:54 <-- editieren / zitieren --> Unities abgeben:
|
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 01. Aug. 2006 10:59 <-- editieren / zitieren --> Unities abgeben: Nur für de cadhund
Oops, habe die Datei nochmal neu reingestellt, falls es immer noch nicht funzt: Code: des Moduls: Sub Bild1_BeiKlick() ActiveSheet.Shapes("Bild 1").Select frm_Abfrage.Show End SubPublic Sub BilderLoeschen() ActiveSheet.Unprotect Password:="1" Selection.Delete ActiveSheet.Protect Password:="1", DrawingObjects:=False, Contents:=True, Scenarios:= _ True End Sub
Code: der userform: Private Sub CommandButton1_Click() BilderLoeschen Me.Hide End SubPrivate Sub CommandButton2_Click() MsgBox "Benutzerabbruch" Me.Hide End Sub
userform enthält nur 2 Knöppel Ja und Nein ich hoffe, Du kommst weiter.. Nicole
------------------ Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
de cadhund Mitglied Konstrukteure
Beiträge: 138 Registriert: 08.12.2004 SW Office 2006 SP3.1
|
erstellt am: 01. Aug. 2006 11:34 <-- editieren / zitieren --> Unities abgeben:
|
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 01. Aug. 2006 11:41 <-- editieren / zitieren --> Unities abgeben: Nur für de cadhund
ja, ich weiß, und ich hab' befürchtet, daß Du es auch merkst Du müßtest jedem eingefügten Bild das jeweils angepaßte Makro zuweisen und zwar bei der Erzeugung der Bilder über Dein erstes Makro... Aber ich kann Dir da leider nicht mehr weiterhelfen, zumal bei uns im Büro der Baum brennt... Falls mir noch was einfallen sollte, melde ich mich, ansonsten muß Dich da leider wer anders unterstützen. Sorry! Nicole ------------------ Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 01. Aug. 2006 18:14 <-- editieren / zitieren --> Unities abgeben: Nur für de cadhund
sorry, wenn ich jetzt ein wenig OT rede... Warum um alles in der Welt will man alles 'neu' Programmieren - nur damit es nachher für den Anwender 'Narren'sicher sein soll? Sind die Anwender, die die Bilder löschen/einfügen müssen, alles 'Idioten'? Oder kann man es den Anwendern zumuten, ohne Aktiven Blattschutz zu arbeiten und dieser wird nur gesetzt, wenn die Mappe nicht mehr verändert werden soll? Ohne Blattschutz könnte der Code so aussehen Code: Sub delPic() If TypeName(Selection) = "Picture" Then Selection.Delete End Sub
aber die Entfernen Taste erfüllt denselben Zweck...gruss Thomas, lasst doch den Anwendern kein stumpfes Werkzeug übrig, oder eine Arbeitsweise, bei der beide Hände gebunden sind.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |