Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1612to1616
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

Modul löschen

Modul löschen
18.03.2018 08:34:59
Thomas
Hallo alle zusammen,
brauche die Hilfe von Euch.
Ich kopiere mir jeden Tag ein Blatt, welches Module und Schaltflächen enthält,
welche nach dem Kopieren gelöscht werden sollen. Die Schaltflächen kann ich löschen, die Module nur, wenn ich VBA-Projekt entsperrt habe.
Das Modul sieht wie folgt aus:
Sub MakroBlattLöschen()
Dim ws As Worksheet
With ActiveWorkbook
For Each ws In .Worksheets
If ws.Name = Sheets(2).Name Then
With .VBProject.VBComponents(ws.CodeName).CodeModule
.DeleteLines 1, .CountOfLines
End With
End If
Next ws
End With
End Sub

Habe schon "Zugriff auf das VBA-Projektobjektmodell vertrauen" aktiviert.
Was muss ich eventuell noch aktivieren bzw. tun, damit ich die Module im Sheet(2) ohne Entsperren löschen kann.
Gruß Thomas

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Modul löschen
18.03.2018 08:58:47
Oberschlumpf
Hi Thomas,
und wenn du...
...zuerst das Blatt in eine neue Excel-Datei kopierst, bzw einfügst
...diese Datei dann als .XLSX-datei speicherst (in diesem Format werden keine Makros gespeichert)
...nun kopierst du das ohne-Makro-Blatt + fügst es dort ein, wo es eigtl hin soll
(so muss dem VBA-Projekt nie wieder "vertraut" werden)
Hilfts?
Ciao
Thorsten
AW: Modul löschen
18.03.2018 09:04:15
Thomas
Hallo Thorsten,
danke für die Info. Hilf mir aber nicht weiter, da das kopierte Blatt in der Excel-Datei verbleibt.
Und ich möchte eigentlich auch keinen "Umweg" gehen.
Gruß Thomas
na dann...
18.03.2018 09:18:52
Oberschlumpf
Hi Thomas
...ich finde, einfacher gehts nicht.
(die zwischengespeicherte xlsx-Datei kannst du ja immer wieder löschen, nachdem sie ohne Code in die eigtl Datei eingefügt wurde)
Weiter viel Erfolg.
Ciao
Thorsten
Anzeige
AW: Modul löschen
18.03.2018 09:40:23
Sepp
Hallo Thomas,
lagere den Code doch in ein allgemeines Modul aus, dann brauchst du nur den Button löschen!
 AB
1Gruß Sepp
2Windows 10 64 bit
3Office 365 32 bit

Anzeige
AW: Modul löschen
18.03.2018 11:58:11
Thomas
Hallo Sepp,
mit den Button ist zwar eine gute Idee, aber ich hab auch noch 3 Woorksheet-Aktionen mit dirch (Worksheet_SelectionChange, Worksheet.Activate und Worksheet_Deactivate). Somit kann ich deine Idee auch nicht umsetzen. Danke trotzdem.
Gruß Thomas
Geht trotzdem! o.T.
18.03.2018 12:10:00
Sepp
 AB
1Gruß Sepp
2Windows 10 64 bit
3Office 365 32 bit

Anzeige
AW: Geht trotzdem! o.T.
18.03.2018 12:50:21
Thomas
Hallo Sepp,
kann leider mit deiner Aussage nicht viel anfangen.
Könntest du es mir bitte mal langsam und genau erklären, damit ich verstehe, was und wie du es meinst. Und außerdem hatte ich gehofft, das in einem Forum versucht wird, einem Nutzer zu helfen.
Gruß Thomas
AW: Geht trotzdem! o.T.
18.03.2018 13:41:56
Sepp
Hallo Thomas,
"Excel gut - VBA gut", dann solltest du wissen, dass man die Worksheet-Events auch global für die Gesamte Mappe im Modul "DieseArbeitsmappe" steuern kann.
Sonst zeig mal deinen gesamten Code und beschreibe in welcher Tabelle er angewendet werden soll.
 AB
1Gruß Sepp
2Windows 10 64 bit
3Office 365 32 bit

Anzeige
hmmm....
19.03.2018 01:55:45
Oberschlumpf
Hi Sepp,
gut bedeutet NICHT perfekt, allwissend, etc...
Ich bin der Meinung, dass auch ich in VBA = gut bin.
Und trotzdem verstehe auch ich nicht, wieso, nach deiner Meinung, ein vorhandener Code im Klassen-Modul "DieseArbeitsmappe" nicht genau so zu dem Problem führt, wie Thomas es für die auch Klassen-Module "Worksheet_SelectionChange, Worksheet.Activate und Worksheet_Deactivate" beschrieben hat.
Ich will sagen:
Egal, ob ein Code in Worksheet_SelectionChange oder in DieseArbeitsmappe steht.
In beiden Fällen muss die Datei als xlsm-Datei gespeichert werden, was Thomas ja eigtl nicht will.
Ich würde mich freuen, wenn du uns mal eine Bsp-Datei zeigst, wie du es meinst.
Ciao
Thorsten
Anzeige
AW: hmmm....
19.03.2018 08:29:02
Thomas
Ich beschreibe jetzt nochmal ein Problem:
Wir haben auf Arbeit eine Excel-Tabelle, welche den Tagesablauf dokumentiert.
Jeden Tag wird die Tabelle des Vortages kopiert, anschließend in den aktuellen Tag umbenannt und erledigte Sachen automatisch gelöscht. Die Tabelle des Vortag wird komplett gesperrt über ein Zufallspasswort. Vorher werden die 3 Schaltflächen noch gelöscht. und es sollen die Module in der Vortages-Tabelle gelöscht werden. Dies sind:
Private Sub Aktualisieren_Click()
Application.ScreenUpdating = False
blnNichtAusführen = True
Call Aktualisieren_Blatt
Call UnSicher
Cells(200, 200).Value = "1"
Call Sicher
blnNichtAusführen = False
Application.ScreenUpdating = True
End Sub
Private Sub Leistung_Click()
Call LeistungAktualisieren
End Sub
Private Sub Neues_Blatt_Click()
Call Neues_Blatt_erstellen
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If blnNichtAusführen = False Then
bytZeile = Target.Row
bytSpalte = Target.Column
Call Mauspostion
Call Werte_setzen
End If
End Sub
Leider klappt dies nur, wenn die Makros im nicht gesperrten Modus laufen.
So, ich hoffe das ich jetzt alles klar beschrieben habe und wir eine Lösung finden können.
Gruß Thomas
Anzeige
AW: hmmm....
19.03.2018 17:33:41
Sepp
Hallo Thorsten,
Thomas will das Tabellenblatt ja nicht als neue Datei speichern, sondern innerhalb der Mappe kopieren!
Seine Infos sind aber immer noch zu mager.
 AB
1Gruß Sepp
2Windows 10 64 bit
3Office 365 32 bit

Anzeige
AW: hmmm....
20.03.2018 09:46:53
Thomas
Hallo Thorsten und Sepp,
habe das Problem durch euere Dankanstöße lösen können.
Als erstes habe ich mir die Schaltflächen vorgenommen.
Habe die ActiveX-Steuerelemente durch Formularsteuerelemente ersetzt.
Somit habe ich über diese Steuerelemete gleich die Makros aufrufen können
und habe dadurch diese Makros nicht mehr im Tabellenblatt.
Das nächste war, das ich mir "DieseArbeitsmappe" nochmals näher angeschaut
habe und durch den Tipp von Sepp habe ich die Funktion Workbook_SheetSelectionChange
gefunden. Über diese Funktion habe ich die Funkttion Worksheet_SelectionChange ersetzt
und habe somit in meinem ersten Tabellenblatt keine Makros mehr stehen, welche ich
beim täglichen kopieren löschen müsste.
Danke euch nochmals für die Denksanstöße.
Gruß Thomas
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige