nur bestimmte Codes übernehmen
Betrifft: nur bestimmte Codes übernehmen
von: Wolfgang
Geschrieben am: 09.11.2012 10:12:55
Hallo,
mit nachfolgendem Code wird die aktuelle Arbeitsmappe unter Löschen nicht benannter Tabellenblätter a.d. Desktop kopiert. Wie kann ich den Code ergänzen, dass auch nur bestimmte Codes aus der Arbeitsmappe übernommen werden und alle anderen Codes/Makros ebenfalls gelöscht werden? Danke schon jetzt für die Rückmeldungen.
Gruß - Wolfgang
'Speichert aktuelle Mappe unter untenstehenden Namen ab und löscht alle anderen Tabellen
Sub Speichern1234()
Application.ScreenUpdating = False
Dim wks As Worksheet
Dim i As Long, x As Long
x = 0
For i = 1 To ActiveWorkbook.Sheets.Count
If Sheets(i).Name = "Ergebnisse" Then x = x + 1
Next i
If x > 0 Then
MsgBox "Die gefilterten Daten werden auf Ihrem Desktop gespeichert, der Vorgang kann etwas _
_
dauern! Bitte OK drücken.", vbOKOnly
Else
MsgBox "Sie haben noch keine Daten gefiltert, die exportiert werden könnten !", vbCritical
Exit Sub
End If
ThisWorkbook.SaveAs "C:\Dokumente und Einstellungen\" & Environ("Username") & "\Desktop\ _
Ergebnisse." & Date & ".xlsm"
Application.DisplayAlerts = False
For Each wks In Worksheets
If wks.Name = "Ergebnisse" Then
Else
wks.Delete
End If
Next
ThisWorkbook.Save
ThisWorkbook.Close
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
 |
Betrifft: AW: nur bestimmte Codes übernehmen
von: Rudi Maintaire
Geschrieben am: 09.11.2012 11:15:27
Hallo,
das löschen von Code ist erst gestern behandelt worden.
https://www.herber.de/forum/messages/1285837.html
Was genau stellst du dir vor?
Gruß
Rudi
Betrifft: AW: nur bestimmte Codes übernehmen
von: Wolfgang
Geschrieben am: 09.11.2012 11:55:42
Hallo Rudi,
danke zunächst für Deine schnelle Rückmeldung. Die Arbeitsmappe enthält verschiedene Module. Am liebsten wäre mir, zunächst im Ansatz alle vorhandenen Module, auch Blattmodule, zu löschen, außer z.B. "Modul1" und "Modul2", die dann übrigbleiben sollten; Ich schaue mir Deinen Hinweis nachher in Ruhe an, ob ich daraus etwas in dem Sinne "basteln" könnte. Wäre Dir aber sehr dankbar, wenn Du vielleicht direkt schon eine Idee hättest, mir diese mitzuteilen. Danke nochmals recht herzlich!
Gruß - Wolfgang
Betrifft: AW: nur bestimmte Codes übernehmen
von: Rudi Maintaire
Geschrieben am: 09.11.2012 11:59:43
Hallo,
auch Blattmodule, zu löschen,
aus denen kannst du nur den Code löschen, nicht die Module selbst.
Gruß
Rudi
Betrifft: AW: nur bestimmte Codes übernehmen
von: Wolfgang
Geschrieben am: 09.11.2012 13:34:24
Hallo Rudi,
die Codes im Blattmodul zu löschen wäre noch idealer, weil auch bestimmte Codes im Blattmodul nicht gelöscht werden sollten. Kannst Du mir da einen Hinweis geben, wie ich da vorgehen könnte?
Danke und Gruß, Wolfgang
Betrifft: AW: nur bestimmte Codes übernehmen
von: Rudi Maintaire
Geschrieben am: 09.11.2012 14:24:02
Hallo,
z.B.
Sub Call_Kill_Proc()
'einzeln
Kill_Proc Workbooks("Mappe6"), Sheets("tabelle1"), "Worksheet_SelectionChange"
'oder alle
' Kill_Proc Workbooks("Mappe6"), Sheets("tabelle1"), ""
End Sub
Sub Kill_Proc(wkb As Workbook, wks As Worksheet, sProc As String)
Dim iFirst, iCount
With ActiveWorkbook.VBProject.VBComponents(wks.CodeName).CodeModule
If sProc = "" Then
.DeleteLines 1, .CountOfLines
Else
iFirst = .ProcStartLine(sProc, vbext_pk_Proc)
iCount = .ProcCountLines(sProc, vbext_pk_Proc)
.DeleteLines iFirst, iCount
End If
End With
End Sub
Gruß
Rudi
Betrifft: AW: nur bestimmte Codes übernehmen
von: Wolfgang
Geschrieben am: 10.11.2012 08:22:48
Hallo Rudi,
sorry zunächst, dass ich mich jetzt erst melde. Ich hatte gestern wider Erwarten noch Gäste und kam somit nicht mehr ins Forum. Danke für Deine schnelle Rückmeldung. Deinen Code konnte ich soweit aufgreifen und verstehen, so dass ich ihn angepasst habe und er mir nun bestimmte Blattmodule löscht. Was ich noch nicht hinbekomme, ist das löschen von anderen Modulen. Wie kann ich den Code da anpassen?
Danke Dir schon jetzt wieder für die Rückmeldung.
Gruß - Wolfgang
Betrifft: AW: nur bestimmte Codes übernehmen
von: Rudi Maintaire
Geschrieben am: 11.11.2012 16:47:00
Hallo,
hab noch einen Fehler gefunden. Es muss natürlich
With wkb.VBProject.VBComponents(wks.CodeName).CodeModule
heißen.
zur Frage:
wkb.VBProject.VBComponents.remove wkb.VBProject.VBComponents("Modul1")
Gruß
Rudi
Betrifft: Vielen Dank, Rudi !!!
von: Wolfgang
Geschrieben am: 12.11.2012 05:28:47
Hallo Rudi,
herzlichen Dank für Deine erneute Rückmeldung und Ergänzungen. Ich habe den Code soweit angespasst und die Änderungen/Ergänzungen "eingebaut"; Ich meine, er läuft nun tadellos und habe keine Probleme festgestellt. Hab nochmals Dank dafür!!
Gruß und einen schönen Tag
Wolfgang
Beiträge aus den Excel-Beispielen zum Thema "nur bestimmte Codes übernehmen"