Code+Button auf Blatt löschen per VBA

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Code+Button auf Blatt löschen per VBA
von: andreas
Geschrieben am: 18.02.2005 08:22:26
Guten Morgen,
möchte den Code und den Button auf meinem Tabellenblatt löschen, da ich es in eine andere Mappe verschiebe. Wie geht das per VBA?
Gruß und danke für jede Hilfe
Andi

Bild

Betrifft: AW: Code+Button auf Blatt löschen per VBA
von: andreas
Geschrieben am: 18.02.2005 09:02:27
Hi,
habe folgendes Makro gefunden:

Sub entferneCodeUndButton()
'entfernt aus allen Tabellenblättern einer Mappe
'den Code und löscht einen Button auf den Tabellen.
Dim wkb As Workbook
Dim wks As Worksheet
Set wkb = ThisWorkbook  'wenn Löschung in dieser Mappe!
                        'sonst Mappe angeben! zB.: Workbooks("mappe.xls")
On Error GoTo ERRORHANDLER
   For Each wks In wkb.Worksheets
 
      With wkb.VBProject.VBComponents(wks.CodeName).CodeModule
      .DeleteLines 1, .CountOfLines 'Code aus Tabelle entfernen
      End With
   
      wks.Shapes(1).Delete          'Schaltfläche entfernen
   Next
ERRORHANDLER:
   
   If Err.Number <> 0 Then
   
      If Err.Number = -2147024809 Then 'kein Shape auf Tabelle!
         Err.Clear
         Resume Next
      Else                             'sonstige Fehler
         MsgBox "Fehler:" & vbLf & vbLf & Err.Description, vbCritical, "FEHLER"
      End If
      
   End If
End Sub

Wie kann ich es anpassen, dass es nur für ein Blatt gilt?
Gruß Andi
Bild

Betrifft: AW: Code+Button auf Blatt löschen per VBA
von: Harald E
Geschrieben am: 18.02.2005 09:18:10
Moin Andi,
probiers mal so. (Mit aktivem Tabellenblatt)

Sub entferneCodeUndButton()
'entfernt aus allen Tabellenblättern einer Mappe
'den Code und löscht einen Button auf den Tabellen.
Dim wkb As Workbook
Dim wks As Worksheet
Set wkb = ThisWorkbook  'wenn Löschung in dieser Mappe!
                        'sonst Mappe angeben! zB.: Workbooks("mappe.xls")
Set wks = ActiveSheet  ' oder Blattname angeben
On Error GoTo ERRORHANDLER
 
      With wkb.VBProject.VBComponents(wks.CodeName).CodeModule
      .DeleteLines 1, .CountOfLines 'Code aus Tabelle entfernen
      End With
   
      wks.Shapes(1).Delete          'Schaltfläche entfernen
   
ERRORHANDLER:
   
   If Err.Number <> 0 Then
   
      If Err.Number = -2147024809 Then 'kein Shape auf Tabelle!
         Err.Clear
         Resume Next
      Else                             'sonstige Fehler
         MsgBox "Fehler:" & vbLf & vbLf & Err.Description, vbCritical, "FEHLER"
      End If
      
   End If
End Sub

Gruß
Harald
Bild

Betrifft: AW: Code+Button auf Blatt löschen per VBA
von: Josef Ehrensberger
Geschrieben am: 18.02.2005 09:20:00
Hallo Andi!
Vorausgesetzt der Button ist das einzige Shape auf der Tabelle, so.

Sub entferneCodeUndButton()
Dim wks As Worksheet
Set wks = Sheets("Tabelle1") 'Tabellenname hier anpassen
On Error GoTo ERRORHANDLER
 
      With ThisWorkbook.VBProject.VBComponents(wks.CodeName).CodeModule
      .DeleteLines 1, .CountOfLines 'Code aus Tabelle entfernen
      End With
   
      wks.Shapes(1).Delete          'Schaltfläche entfernen
ERRORHANDLER:
   
   If Err.Number <> 0 Then
   
      If Err.Number = -2147024809 Then 'kein Shape auf Tabelle!
         Err.Clear
         Resume Next
      Else                             'sonstige Fehler
         MsgBox "Fehler:" & vbLf & vbLf & Err.Description, vbCritical, "FEHLER"
      End If
      
   End If
End Sub


Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Bild

Betrifft: AW: Code+Button auf Blatt löschen per VBA
von: andreas
Geschrieben am: 18.02.2005 09:23:56
Hi,
auf dem Blatt sind 2 Buttons. Kann ich dann schreiben: wks.Shapes(2).Delete?
Danke für eure Hilfe!
Gruß Andi
Bild

Betrifft: AW: Code+Button auf Blatt löschen per VBA
von: Josef Ehrensberger
Geschrieben am: 18.02.2005 09:28:42
Hallo Andreas!
Entweder alle Shapes angeben, oder flexibler mit einer Schleife.

Sub entferneCodeUndButton()
Dim wks As Worksheet
Dim shp As Shape
Set wks = Sheets("Tabelle1") 'Tabellenname hier anpassen
On Error GoTo ERRORHANDLER
 
      With ThisWorkbook.VBProject.VBComponents(wks.CodeName).CodeModule
      .DeleteLines 1, .CountOfLines 'Code aus Tabelle entfernen
      End With
      
      For Each shp In wks.Shapes
      shp.Delete          'Schaltfläche entfernen
      Next
ERRORHANDLER:
   
   If Err.Number <> 0 Then
   
      If Err.Number = -2147024809 Then 'kein Shape auf Tabelle!
         Err.Clear
         Resume Next
      Else                             'sonstige Fehler
         MsgBox "Fehler:" & vbLf & vbLf & Err.Description, vbCritical, "FEHLER"
      End If
      
   End If
End Sub


Gruß Sepp
P.S.: Rückmeldung nicht vergessen!
Bild

Betrifft: AW: Code+Button auf Blatt löschen per VBA
von: andreas
Geschrieben am: 18.02.2005 09:50:39
Hi,
brauche immer das aktive Blatt. Oder besser gesagt: KW1-KW52 werden eingefügt. Kann man schreiben: KW &*? Habe das mal mit dem aktiven Blatt probiert, leier ohne Erfolg:

Sub entferneCodeUndButton()
Dim wks As Worksheet
Dim shp As Shape
Set wks = ActiveSheet 'Sheets("Tabelle1") 'Tabellenname hier anpassen
On Error GoTo ERRORHANDLER
 
      With ThisWorkbook.VBProject.VBComponents(wks.CodeName).CodeModule
      .DeleteLines 1, .CountOfLines 'Code aus Tabelle entfernen
      End With
      
      For Each shp In wks.Shapes
      shp.Delete          'Schaltfläche entfernen
      Next
ERRORHANDLER:
   
   If Err.Number <> 0 Then
   
      If Err.Number = -2147024809 Then 'kein Shape auf Tabelle!
         Err.Clear
         Resume Next
      Else                             'sonstige Fehler
         MsgBox "Fehler:" & vbLf & vbLf & Err.Description, vbCritical, "FEHLER"
      End If
      
   End If
End Sub


Fehlermeldung: Index außerhalb des gültigen Bereichs...
Was muss ich anders machen?
Vielen Dank für deine super Hilfe, ich hoffe du hilfts mir nochmals...
Gruß Andi
Bild

Betrifft: danke, geschlossen
von: andreas
Geschrieben am: 18.02.2005 09:54:38
Habe es noch selber rausgefunden. Vielen Dank.
 Bild

Beiträge aus den Excel-Beispielen zum Thema "selection change....machts nicht"