Herbers Excel-Forum - das Archiv

Code+Button auf Blatt löschen per VBA

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