AW: Index Fehler
19.03.2010 10:22:52
xr8k2
Hi Pierre,
dann kann ich nur raten (das was ich anhand deines zur Verfügung gestellten Codes testen konnte hab ich getestet und bei mir funktionierts) ...
Prüf mal ob deine Variable "VBkomp" auch wirklich das gewünschte Codemodul enthält und ob demzufolge der korrekte Zeilenbeginn und die korrekte Zeilenanzahl ermitelt wird. Lass dir ggf. mal die Inhalte der Variablen "i_start" und "i_anzahl" zwischendurch in einer MSGBOX anzeigen.
Auch blick ich nicht so ganz durch, wieso du einmal
ThisWorkbook.VBProject.VBComponents(wks.CodeName).CodeModule
und dann einmal
Application.VBE.ActiveVBProject.VBComponents(wks.CodeName).CodeModule
verwendest. Ich schätze du erreichts damit nicht das, was du evtl. erreichen willst ?! Da bedarf es vielleicht mal noch ein paar mehr Informationen.
Mal ein Schuss in´s Blaue:
Function entferneCode1UndButton(WKSName As String)
Dim wks As Worksheet
Dim shp As Shape
Dim VBkomp As Object
Dim i_start As Long
Dim i_anzahl As Integer
Set wks = Sheets(WKSName) 'Tabellenname hier anpassen
On Error GoTo ERRORHANDLER
With ThisWorkbook.VBProject.VBComponents(wks.CodeName).CodeModule
i_start = .procstartline("Worksheet_SelectionChange", vbext_pk_proc)
i_anzahl = .proccountlines("Worksheet_SelectionChange", vbext_pk_proc)
Debug.Print i_start; i_anzahl
.DeleteLines i_start, i_anzahl '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 Function
Gruß,
xr8k2