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.

CommandButtons löschen
#1
Hallo,

in einer Datei habe ich 3 CommandButtons mit hinterlegtem Code.

Ich speichere das Blatt als xlsx ab und möchte vorher die Buttons löschen.

Hier aus dem Forum habe ich vor längerem diesen Code erhalten, mit dem das damals funktionierte. Wie mir heute aufgefallen ist, geht es nicht mehr und ich weiß nicht, warum.
Die erste MsgBox geht auf, die zweite nicht.
Code:
MsgBox "CommandButtons löschen!"
      For i = 1 To Sheets("Eingabe_ELC").OLEObjects.Count         'Löschen nur CommandButtons
         Sheets("Eingabe_ELC").OLEObjects(1).Delete
         MsgBox "CommandButtons gelöscht!"
      Next

Mit diesem Code funktioniert es, es werden leider aber auch eingefügte Bilder gelöscht:
Code:
Sheets("Eingabe_ELC").Shapes.SelectAll
      Selection.Cut                            'alle Löschen, auch Bilder

Wenn ich dann das abgespeicherte Sheet öffne, sind die Buttons noch da und es kommt immer eine Verknüpfungsaktualisierung wegen der Makros, die den Buttons zugewiesen, aber in der xlsx nicht mehr enthalten sind.

Was mache ich falsch?
Wie sehe ich, welcher Button welche Nummer hat?
Wie lösche ich automatisch alle Verknüpfungen?
Antworten Top
#2
Was bringt diese Code ?


Code:
msgbox Sheets("Eingabe_ELC").OLEObjects.Count 
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#3
Hall Ralf,

banaler Fehler hier:

OLEObjects(1)

Statt der 1 ......
Gruß Atilla
Antworten Top
#4
Hi,
(20.03.2017, 14:05)snb schrieb: Was bringt diese Code  ?
Code:
msgbox Sheets("Eingabe_ELC").OLEObjects.Count 

die MsgBox ist nur zum Erkennen da, welcher Schritt des Makros gerade kommt oder fertig ist, das wird später gelöscht.

Und so, wie Du es geschrieben hast, habe ich es ja nicht im Code drin.
Oder war das der Vorschlag, wie ich es machen soll?
Antworten Top
#5
Ich möchte wissen ob es überhaupt oleobjects gibt im Arbeitsblatt.
Zum übersetzen von Excel Formeln:

http://dolf.trieschnigg.nl/excel/index.p...gids=en+de
Antworten Top
#6
Hi Atilla,

(20.03.2017, 14:43)atilla schrieb: banaler Fehler hier:

anstelle der 1 habe ich auch schon i probiert, aber Excel geht gar nicht in die For-Schleife rein, sondern überspringt sie einfach. Die MsgBox "CommandButtons gelöscht!" erscheint deshalb auch gar nicht.

Sind die Buttons vielleicht gar keine OLE-Objekte?
Wie kann ich sehen, welche Objekte es sind?

Wenn ich Rechtsklick drauf mache, sehe ich im Kontextmenü "Makro zuweisen", sind das dann Formularsteuerelement-Buttons?
Wie kann ich dort die Nummer des Buttons ermitteln und diese löschen/ändern?
Antworten Top
#7
Hi,

(20.03.2017, 15:04)snb schrieb: Ich möchte wissen ob es überhaupt oleobjects gibt im Arbeitsblatt.

ok, habe ich falsch verstanden. Ich teste.



Aaaha, da kommt 0.
Dann siehe meine Fragen im vorherigen Beitrag.
Antworten Top
#8
Hallo Ralf 

Dann sind es Shapes.
snb wird Dir sicher weiterhelfen, bin jetzt unterwegs.

Chris hat sicher auch eine passende Lösung.
Gruß Atilla
Antworten Top
#9
Hi,

(20.03.2017, 15:16)atilla schrieb: Dann sind es Shapes.
snb wird Dir sicher weiterhelfen, Bj jetzt unterwegs.

ooh, schlecht, denn das eingefügte Bild_Logo ist ja auch ein Shape und das soll nicht gelöscht werden.

Mit dem obigen Shapes-Code klappt es ja, aber das Bild soll bleiben.
Antworten Top
#10
Hi,

Code:
Option Explicit
Sub FormularButtons()
Dim objB As Button
Dim ws As Worksheet
Set ws = Worksheets("Tabelle1")
    For Each objB In ws.Buttons
        objB.Delete
    Next
End Sub
Sub SteuerelementeButtons()
    Dim objCmd As OLEObject
    Dim ws As Worksheet
    Set ws = Worksheets("Tabelle1")
    For Each objCmd In ws.OLEObjects
       If TypeOf objCmd.Object Is Msforms.CommandButton Then
        objCmd.Delete
       End If
    Next
End Sub

hier mal für Formular und einer für Steuerelemente

oder wenn ohnehin alle gelöscht werden sollen
Code:
Sub FormularButtonsDel()
    Worksheets("Eingabe_ELC").Buttons.Delete
End Sub
lg Chris
Feedback nicht vergessen.
[Bild: v.gif]
3a2920576572206973742064656e20646120736f206e65756769657269672e
Antworten Top


Gehe zu:


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