VBA-Beispiel 023
mail schreiben
mail schreiben

Makro einfügen/entfernen

Dieses Makro würde in Tabelle2 ein Makro einfügen oder, wenn schon vorhanden, das zweite Makro wieder entfernen.
Das Makro welches eingefügt/entfernt wird, hat Bernd Held mal im Spotlight-Forum gepostet. Bei diesem Makro bekommt die aktive Zeile eine andere Hintergrundfarbe.
Sub Makro_einfuegen_entfernen()
'fügt in die Tabelle2 das Makro von Bernd Held ein
'oder - wenn schon vorhanden - entfernt das Makro wieder
Dim Code As String
Dim i As Integer

With ThisWorkbook.VBProject.VBComponents("Tabelle2").CodeModule
Code = .Lines(1, 1)

If Code = "Private Sub Worksheet_SelectionChange(ByVal Target As Range)" Then
.DeleteLines 1, 13

With Application.VBE.MainWindow
 .Visible = Not .Visible
End With

Else
linenr = .CreateEventProc("SelectionChange", "Worksheet")
.InsertLines i + 1, "'Makro von Bernd Held"
.InsertLines i + 2, "On Error Resume Next"
.InsertLines i + 3, "Static OldCellIndexcolor As Integer"
.InsertLines i + 4, "Static OldCell As Range"
.InsertLines i + 5, "If Not OldCell Is Nothing Then"
.InsertLines i + 6, "OldCell.EntireRow.Interior.ColorIndex = OldCellIndexcolor"
.InsertLines i + 7, "End If"
.InsertLines i + 8, "OldCellIndexcolor = Target.EntireRow.Interior.ColorIndex"
.InsertLines i + 9, "Target.EntireRow.Interior.ColorIndex = 36"
.InsertLines i + 10, "Set OldCell = Target"
End If
End With

With Application.VBE.MainWindow
 .Visible = Not .Visible
End With

End Sub

Download:   vba023.zip