Anzeige
Archiv - Navigation
1052to1056
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

alle vorhandenen Button in allen Tabellen

alle vorhandenen Button in allen Tabellen
24.02.2009 21:20:39
Kurt
Guten Abend,
ich möchte gern alle vorhandenen Button löschen die sich in den Tabellen
befinden, es sind sehr viele.
Nur die Tabelle "k_Test" sollten die Button erhalten bleiben.
Alle Button sind Schaltflächen.
mfg Kurt aus K

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: alle vorhandenen Button in allen Tabellen
24.02.2009 21:29:09
Josef
Hallo Kurt,
' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Sub SchalterWeg()
  Dim objWs As Worksheet
  Dim objShp As Shape
  
  For Each objWs In ThisWorkbook.Worksheets
    If objWs.Name <> "k_Test" Then
      For Each objShp In objWs.Shapes
        If objShp.Type = 8 Then objShp.Delete
      Next
    End If
  Next
End Sub

Gruß Sepp

Anzeige
Hallo Sepp
24.02.2009 21:38:32
Kurt
Hallo Sepp,
was heißt den die 8 ?
Könnte man auch vorhandene Commandbutton löschen ?
Könnte ja mit einem anderen Makro sein,
mfg Kurt aus K
AW: Hallo Sepp
24.02.2009 21:49:38
Daniel
Hi
8 bedeutet, daß nur Formular-Buttons gelöscht werden
Steuerlement-Buttons haben die 12 als Type-Nr
um rauszufinden, welche Objekte welche Nummern haben, mal einfach mal ein paar Objekte auf ein Tabellenblatt und lass dieses Makro laufen:

Sub Objekt_TypeNummern()
Dim obj
For Each obj In ActiveSheet.Shapes
Debug.Print obj.Name & "  -  " & obj.Type
Next
End Sub


die Ergebnisse werden im Direktfenster angezeigt.
Wenn du einfach alle Graphischen Objekte auf dem Tabellenblatt löschen willst, nimm dieses Makro


Sub SchalterWeg()
Dim objWs As Worksheet
For Each objWs In ThisWorkbook.Worksheets
If objWs.Name  "k_Test" Then objWs.DrawingObjects.Delete
Next
End Sub


Gruß, Daniel

Anzeige
AW: Hallo Sepp
24.02.2009 22:03:09
Josef
Hallo Kurt,
die acht ist der Wert der der MSOffice-Konstanten.
Etwas verändert, jetzt werden auch CommandButtons gelöscht.
Sub SchalterWeg()
  Dim objWs As Worksheet
  Dim objShp As Shape
  
  For Each objWs In ThisWorkbook.Worksheets
    If objWs.Name <> "k_Test" Then
      For Each objShp In objWs.Shapes
        If objShp.Type = msoOLEControlObject Then
          If objShp.OLEFormat.Object.progID = "Forms.CommandButton.1" Then objShp.Delete
        ElseIf objShp.Type = msoFormControl Then
          If objShp.FormControlType = xlButtonControl Then objShp.Delete
        End If
      Next
    End If
  Next
End Sub

Gruß Sepp

Anzeige
Schnell - manuell
24.02.2009 21:54:01
Renee
Hi Kurt,
Die Buttons können auch manuell relativ schnell gelöscht werden.
Aus der Zeichnungs-Commandbar das Auswahl-Tool (Pfeil) wählen.
Rahmen um die Buttons ziehen. Delete Taste drücken. Weg sind sie ;-)
GreetZ Renée
AW: noch schneller - Manuell
24.02.2009 22:08:54
Daniel
Wenn keine weiteren Objekte vorhanden sind, die erhalten bleiben sollen, dann kann man die Objekte auch über
BEARBEITEN - GEHT ZU - INHALTE - OBJEKTE markieren und anschließend löschen.
sollten allerdings Steuerelemente darunter sein, werden diese nur gelöscht, wenn man in den Entwurfsmodus wechselt.
gruß, Daniel
hier noch eine Version...
24.02.2009 21:56:07
Tino
Hallo,
hier meine VBA Version.
Sub LoescheButton()
Dim Area() As String
Dim i As Integer
Dim MySheet As Worksheet
Dim objButten As Shape

'Schleife über alle Tabellen 
For Each MySheet In ThisWorkbook.Worksheets
 'Tabelle k_Test auslassen 
 If MySheet.Name <> "k_Test" Then
    'Daten sammeln in Area 
    For Each objButten In MySheet.Shapes
     If TypeName(objButten.OLEFormat.Object) = "Button" Then
      Redim Preserve Area(i)
      Area(i) = objButten.Name
      i = i + 1
     End If
    Next objButten
    'Butten dieser Tabelle löschen 
    If i > 0 Then
     MySheet.Shapes.Range(Application.Transpose(Area)).Delete
    End If
 End If
 
 i = 0: Erase Area
Next MySheet

End Sub


Gruß Tino

Anzeige
mit CommandButton
24.02.2009 22:36:52
Tino
Hallo,
hier noch für beide Button.
Sub LoescheButton()
Dim Area() As String
Dim i As Integer
Dim MySheet As Worksheet
Dim objButten As Shape
Dim sObjName As String
'Schleife über alle Tabellen 
For Each MySheet In ThisWorkbook.Worksheets
 'Tabelle k_Test auslassen 
 If MySheet.Name <> "k_Test" Then
    'Daten sammeln in Area 
    For Each objButten In MySheet.Shapes
        
        With objButten
          
          If .Type = 12 Then
           sObjName = .OLEFormat.progID
          Else
           sObjName = TypeName(.OLEFormat.Object)
          End If
          
          If sObjName = "Button" Or sObjName Like "*CommandButton*" Then
           Redim Preserve Area(i)
           Area(i) = .Name
           i = i + 1
          End If
        
        End With
    
    Next objButten
    'Butten dieser Tabelle löschen 
    
    If i > 0 Then
     MySheet.Shapes.Range(Application.Transpose(Area)).Delete
    End If
 End If
 
 i = 0: Erase Area
Next MySheet

End Sub


Gruß Tino

Anzeige
Danke an ALLE -)
25.02.2009 09:22:50
Kurt
Guten Morgen Zusammen,
danke an Sepp, Daniel, Renee und Tino.
Das ist eine Superunterstützung !
mfg Kurt aus K

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige