Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Code in Tabellenblatt per Makro einfügen

Code in Tabellenblatt per Makro einfügen
19.03.2013 04:12:30
ludmila
Hallo,
ich möchte einen Tabellenblatt-Code aus einem anderen Arbeitsmappen-Modul
einfügen lassen.
Wird aber nicht.
Danke!
Gruß
Ludmila
Windows("Collect.xlsx").Activate
With Workbooks("Collect.xlsx").VBProject.VBComponents("Muster").CodeModule
Code = .Lines(1, 1)
If Code = "Private Sub Worksheet_SelectionChange(ByVal Target As Range)" Then
.DeleteLines 1, 9
Else
linenr = .CreateEventProc("SelectionChange", "Worksheet")
.InsertLines linenr + 1, "Dim KeyCells As Range"
.InsertLines linenr + 2, "On Error Resume Next"
.InsertLines linenr + 3, "Set KeyCells = Range(""A22:F1000"")"
.InsertLines linenr + 4, "If Not Application.Intersect(KeyCells, Range(Target.Address))Is Nothing Then"
.InsertLines linenr + 5, "Cells(11, 9) = 1"
.InsertLines linenr + 6, "End If"
End If
End With

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Code in Tabellenblatt per Makro einfügen
19.03.2013 07:35:35
Hajo_Zi
den Zugriff auf das VBA Projekt hast Du zugelassen.
Dazu gebe ich keine Anleitung, da dies meiner Meinung nach tief in die Sicherheit geht.

AW: Code in Tabellenblatt per Makro einfügen
19.03.2013 10:16:50
Rudi
Hallo,
wer sagt denn, dass die Prozedur immer in Zeile 1 steht? Da sollte Option Explicit stehen!
Sub aaa()
Dim x, y As Long, LineNr As Long
Const sProc As String = "worksheet_selectionchange"
With Workbooks("Collect.xlsx")
With .VBProject.VBComponents(.Sheets("Muster").CodeName).CodeModule
On Error Resume Next
x = .ProcStartLine(sProc, vbext_pk_Proc)
On Error GoTo 0
If x  "" Then 'Proz vorhanden und wird gelöscht
y = .ProcCountLines(sProc, vbext_pk_Proc)
.DeleteLines x, y
End If
LineNr = .CreateEventProc("selectionchange", "Worksheet")
.InsertLines LineNr + 1, "  Dim KeyCells As Range"
.InsertLines LineNr + 2, "  On Error Resume Next"
.InsertLines LineNr + 3, "  Set KeyCells = Range(""A22:F1000"")"
.InsertLines LineNr + 4, "  If Not Application.Intersect(KeyCells, Range(Target.Address)) _
Is Nothing Then"
.InsertLines LineNr + 5, "    Cells(11, 9) = 1"
.InsertLines LineNr + 6, "  End If"
.DeleteLines LineNr + 7, 1
End With
End With
End Sub

Gruß
Rudi

Anzeige
AW: Code in Tabellenblatt per Makro einfügen
20.03.2013 03:38:58
ludmila
Hallo Rudi,
Danke!, funkt super.
Gruß
Ludmila

12 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige