PDA

Vollständige Version anzeigen : Command Butttons per VBA löschen/unsichtbar machen


roll4ever
17.07.2012, 16:36
Hallo,

eine weitere Frage:

Ich habe ein Blatt, in dem mehrere CommandButtons(Button_1 bis 6) sind. Ich möchte nun per Makro von diesen Buttons alle bis auf zwei löschen. Ich versuche das bisher mit folgendem Code:

Dim Knopf As Shape

For Each Knopf In wsWp.Shapes
Debug.Print Knopf.Name
If Knopf.Name <> "Button_4" Or Knopf.Name <> "Button_5" Then Knopf.Delete
Next Knopf


Dieser bricht aber immer mit der Fehlermeldung:
"Wechseln in den Haltemodus derzeit nicht möglich!"
ab.

Könnt ihr mit helfen?

Vielen Dank,
roll4ever


P.S. Der direktbereich liefert:
Picture 1
Button_1
Button_2
Text Box 4
Button_3
Comment 6
Comment 7
Comment 8
Button_4
Button_5
Button_6
Comment 12
Comment 13
Drop Down 14,
falls das hilft

josef e
17.07.2012, 16:54
<div style="width:98%; margin-left:5px; margin-right:15px; text-align:justify;">
Hallo ?,

Or ist falsch, du musst And verwenden, im Einzelschritt funktioniert so ein Code nie.

<div style="background-color:#F5F5F5; border-width:2px; border-style: groove; border-color:#ff9966; padding:4px;"><nobr><span style="font-family:Courier New,Arial; font-size:8pt ;" ><b><span style="color:#0000FF"; >Sub</span> deleteButtons()</b><br />&nbsp;&nbsp;<span style="color:#0000FF"; >Dim</span> objSh <span style="color:#0000FF"; >As</span> Worksheet<br />&nbsp;&nbsp;<span style="color:#0000FF"; >Dim</span> lngIndex <span style="color:#0000FF"; >As</span> <span style="color:#0000FF"; >Long</span><br />&nbsp;&nbsp;<br />&nbsp;&nbsp;<span style="color:#0000FF"; >Set</span> objSh = ActiveSheet<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;<span style="color:#0000FF"; >For</span> lngIndex = 1 <span style="color:#0000FF"; >To</span> 6<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF"; >Select</span> <span style="color:#0000FF"; >Case</span> lngIndex<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF"; >Case</span> 4, 5<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF"; >Case</span> <span style="color:#0000FF"; >Else</span><br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;objSh.OLEObjects(<span style="color:#808080"; >"Button_"</span> & lngIndex).Delete<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF"; >End</span> <span style="color:#0000FF"; >Select</span><br />&nbsp;&nbsp;<span style="color:#0000FF"; >Next</span><br />&nbsp;&nbsp;<br />&nbsp;&nbsp;<span style="color:#0000FF"; >Set</span> objSh = <span style="color:#0000FF"; >Nothing</span><br /><b><span style="color:#0000FF"; >End</span> <span style="color:#0000FF"; >Sub</span></b><br /><br /><br /><b><span style="color:#0000FF"; >Sub</span> deleteButtons2()</b><br />&nbsp;&nbsp;<span style="color:#0000FF"; >Dim</span> objOle <span style="color:#0000FF"; >As</span> OLEObject<br />&nbsp;&nbsp;<span style="color:#0000FF"; >Dim</span> objSh <span style="color:#0000FF"; >As</span> Worksheet<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;<span style="color:#0000FF"; >Set</span> objSh = ActiveSheet<br />&nbsp;&nbsp;<br />&nbsp;&nbsp;<span style="color:#0000FF"; >For</span> Each objOle In objSh.OLEObjects<br />&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#0000FF"; >If</span> objOle.Name &lt;&gt; <span style="color:#808080"; >"Button_4"</span> <span style="color:#0000FF"; >And</span> objOle.Name &lt;&gt; <span style="color:#808080"; >"Button_5"</span> <span style="color:#0000FF"; >Then</span> objOle.Delete<br />&nbsp;&nbsp;<span style="color:#0000FF"; >Next</span><br /><b><span style="color:#0000FF"; >End</span> <span style="color:#0000FF"; >Sub</span></b><br /><br /><br /></span></nobr></div>



</div>

<div style="width:100px; text-align:center; color:white; font-style:italic; font-size:0.8em; font-family:Tahoma; background-color:royalblue;margin-left:5px; margin-top:15px; padding:4px; border:3px double darkblue;">&laquo; Gru&szlig; Sepp &raquo;</div>

Beverly
18.07.2012, 09:35
Hi,

falls es sich um Formularsteuerelemente handelt, kannst du diesen Code verwenden:
Sub ButtonLoeschen()
Dim cbbSchalter As Button
For Each cbbSchalter In ActiveSheet.Buttons
If cbbSchalter.Name <> "Button_4" And cbbSchalter.Name <> "Button_6" Then cbbSchalter.Delete
Next cbbSchalter
End Sub

<hr width="20%" align="left"><img src="http://excel-inn.de/images/grusz.gif" height=35" align="left" alt="Grußformel"><a href="http://excel-inn.de/" onclick="window.open(this.href);return false"><img border="0" src="http://excel-inn.de/images/logo1.gif" height=35" align="middle" alt="Beverly's Excel - Inn"></a>

roll4ever
18.07.2012, 09:58
Hallo Sepp, hallo Karin,

vielen Dank für eure schnelle Hilfe, läuft alles sauber durch!

Vielen Dank!

Gruß,
roll4ever