Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
744to748
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
744to748
744to748
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA Project vor Vesand löschen

VBA Project vor Vesand löschen
22.03.2006 16:07:32
Jakob
Hallo,
in einer Tabelle habe ich 2 CommandButtons erstellt. Die Tabelle wird in eine neue Arbeitsmappe kopiert und soll anschließend per Outlook als Fax versendet werden.
Mein Problem besteht jetzt darin die 2 CommandButtons vor den Vesand zu löschen da die Datei sonst von unserer Firewall geblockt wird.
Die Commandbuttons habe ich nach den Kopieren mit folgenden Code gelöscht.
' Makros und Schaltflächen werden entfernt
ActiveSheet.Shapes("Button 1").Select
Selection.Cut
ActiveSheet.Shapes("CmdEingabeStart").Select
Selection.Cut
ActiveSheet.Shapes("CmdBeenden").Select
Selection.Cut
Wie müßte der Code aussehen um auch den dazugehörenden VBA-Code zu löschen?
Der VBA-Code für die CommandButtons steht in der Tabelle1 und lautet folgendermaßen

Private Sub CmdBeenden_Click()
Application.CutCopyMode = False
ActiveWorkbook.Close False
End Sub


Private Sub CmdEingabeStart_Click()
usrAbfrage.Show
End Sub

Vielen Dank im voraus für Eure HIlfe.
Gruß
J.Freitag

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Project vor Vesand löschen
22.03.2006 17:40:20
chris
Hallo, das könntest du so lösen.

Sub VBAZeileÄndern()
With ActiveWorkbook.VBProject
With .VBComponents("Tabelle1").CodeModule
.DeleteLines 1, .CountOfLines
End With
End With
End Sub

Rückmeldung ob erfolgreich wäre nett !
AW: VBA Project vor Vesand löschen
22.03.2006 17:57:36
Jakob
Hallo Chris,
ich habe Deinen Code eingefügt und der Code wird scheinbar gelöscht. Nur wenn ich die bereinigte Datei aufrufe kommt die Meldung, daß die Datei Makros enthält.
Ich kann aber keinen Code entdecken.
Kannst Du Dir das erklären?
Gruß
J.Freitag
AW: VBA Project vor Vesand löschen
22.03.2006 18:51:30
Knut
Hi,
da ist noch die Userform usrAbfrage
mfg Knut
Anzeige
AW: VBA Project vor Vesand löschen
23.03.2006 09:35:48
Jakob
Hallo Knut,
nein die Userform hängt auch nicht mehr dran. Ich hatte nur die Tabelle1 in eine neue Arbeitsmappe kopiert. Leider kann ich von hier aus keine Dateien hochladen sonst könnte ich Euch die Datei schicken.
Gruß
J.Freitag
AW: VBA Project vor Vesand löschen
22.03.2006 18:51:56
chris
Nein, vieleicht ist doch noch irgendwo ein Modul versteckt oder im Arbeitsmappenmodul ?
AW: VBA Project vor Vesand löschen
23.03.2006 10:00:39
Jakob
Hallo chris,
Nein, ich sehe überhaupt nichts, kein Modul oder Formular. Und in "dieser Arbeitsmappen" und in Tabelle1 (der einzigen Tabelle in dieser Datei) steht auch nichts.
Leider kann ich von hier aus nichts hochladen. Aber als email könnte ich Dir die Datei schicken.
Der Code löscht ja nur den VBA-Code aus der Tabelle1. Wie müßte ich den Code abändern, damit der Code aus der gesamten Arbeitsmappe gelöscht wird?
Gruß
J.Freitag
Anzeige
AW: VBA Project vor Vesand löschen
23.03.2006 12:49:06
Heiko
Hallo Jakob,
hier eine Funktion den den gesmaten Code einer angegebenen Datei löscht.

Function VBACode_Komplett_Loeschen(wkbMappe As Workbook)
' Achtung diese Funktion löscht den kompletten VBA Code der angegebenen Datei !!!
Dim objVBA As Object
Dim strFile As String
With wkbMappe.VBProject
' Ein Schleife die ALLE VBComponents durchläuft, sollen nur bestimmte gelöscht werden
' dann muss dieser Code angepaßt werden.
For Each objVBA In .VBComponents
Select Case objVBA.Type
' Wenn Type = 1 dann ist es ein Standardmodul, dies wird komplett gelöscht!
Case 1
.VBComponents.Remove .VBComponents(objVBA.Name)
' Wenn Type = 2 dann ist es ein Klassennmodul, dies wird komplett gelöscht!
Case 2
.VBComponents.Remove .VBComponents(objVBA.Name)
' Wenn Type = 3 dann ist es ein Userform, dies wird komplett gelöscht!
Case 3
.VBComponents.Remove .VBComponents(objVBA.Name)
' Wenn Type = 100, also DieseArbeitsmappe oder ein Tabellenblatt, dann darin
' alle Codezeilen löschen. Denn die Datei und die Tabellenblätter sollen ja
' erhalten bleiben, also nur den Code löschen.
Case 100
With .VBComponents(objVBA.Name).CodeModule
.DeleteLines 1, .CountOfLines
End With
Case Else
MsgBox "Unbekannter VBA Type !", vbCritical
End Select
Next objVBA
End With
wkbMappe.Save
Exit Function
' Bei Fehlernummer 1004, diese Meldung ausgeben.
Errorhandler:
If Err.Number = 1004 Then
MsgBox "Das Löschen des VBA Codes ist fehlgeschlagen!" & vbCr & _
"Bitte überprüfen Sie folgende Einstellung! " & vbCr & _
"EXTRAS -> MAKRO -> SICHERHEIT -> Vertrauenwürdige Quellen." & vbCr & _
"'Zugriff auf Visual Basic Projekt vertrauen' muss aktiviert sein! ", vbCritical, _
" Meldung vom Makro VBAloeschen"
Else
MsgBox "Err.Number = " & Err.Number & ".   " & Err.Description, vbCritical
End If
End Function

' Aufrufen z.B. so

Sub Test()
VBACode_Komplett_Loeschen Workbooks("Mappe4.xls")
End Sub

Gruß Heiko
PS: Rückmeldung wäre nett !
Anzeige
AW: VBA Project vor Vesand löschen
23.03.2006 17:54:07
Jakob
Hallo Heiko,
es hat wunderbar geklappt. Ich habe nur Workbooks("xxx) durch ActiveWorkbook ausgetauscht.
Besten Dank für Deine Hilfe.
Gruß
J.Freitag

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige