Anzeige
Archiv - Navigation
656to660
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
656to660
656to660
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Makro durch Makro ändern

Makro durch Makro ändern
28.08.2005 20:18:46
Frank
Moin!
Kann man ein Makro durch ein anderes Makro ändern?
Oder gibt es da eine andere Lösung, um eine alte Version einer Datei sozusagen upzudaten?
Danke
Frank

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

Betreff
Datum
Anwender
Anzeige
AW: Makro durch Makro ändern
28.08.2005 21:05:20
Nepumuk
Hallo Frank,
natürlich lassen sich Makros durch Makros ändern. Wobei ich persönlich davon abraten würde und lieber zu einem Addin greife. Das lässt sich wesentlich problemloser austauschen und erregt keinesfalls die Aufmerksamkeit von Virenscannern.
Gruß
Nepumuk
Excel & VBA – Beispiele
AW: Makro durch Makro ändern
28.08.2005 21:14:18
Frank
Es geht nur darum eine von mir geschriebenen Makro durch einen anderen automatisch zu erneuern.
Wo finde ich etwas darüber? Oder kannst du mir da weiterhelfen?
Danke
AW: Makro durch Makro ändern
28.08.2005 21:22:47
Nepumuk
Hi,
wo befindet sich der neue Code? Es gibt die Möglichkeit ganze Module zu wechseln, ganze Makros oder einzelne Zeilen von Makros. Der Ursprung des neuen Moduls, Makros oder Zeile kann ein exportiertes Modul, eine Textdatei oder eine Exceltabelle sein. Überall wo ich Texte speichern kann. Nur der Aufwand ist unterschiedlich. Du müsstest dich für eine der Möglichkeit entscheiden.
Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
AW: Makro durch Makro ändern
28.08.2005 21:43:08
Frank
Wo sich der neue Code befindet, ist noch nicht klar, da es erst mal eine grundsätzliche Frage war. Aber wo müsste er stehen, damit es besonders leicht ist
Es geht darum einzelne Zeilen eines Makros und gesamte Makros in einem Modul einer Excel-Datei zu ändern.
Danke
AW: Makro durch Makro ändern
28.08.2005 22:09:05
Nepumuk
Hi,
der geringste Aufwand ist es komplette Module zu tauschen der größte, einzelne Zeilen oder Teile von Zeilen auszutauschen. Mal ein paar Beispiele:
Public Sub Austauschen()
    With Workbooks("Mappe1.xls").VBProject
        .VBComponents.Remove .VBComponents("Modul1")
        With .VBComponents
            .Import ("C:\Modul1.bas")
        End With
    End With
End Sub

Public Sub Teistring_tauschen()
    Dim objVBC As Object, intLine As Integer, strFront As String, strBack As String
    For Each objVBC In Workbooks("Mappe1.xls").VBProject.VBComponents
        With objVBC.CodeModule
            For intLine = 1 To .CountOfLines
                If InStr(1, .Lines(intLine, 1), "N:\PROJ\NOTIZ\Scha9\") <> 0 Then
                    strFront = Left$(.Lines(intLine, 1), InStr(1, .Lines(intLine, 1), _
                        "N:\PROJ\NOTIZ\Scha9\") - 1)
                    strBack = Mid$(.Lines(intLine, 1), InStr(1, .Lines(intLine, 1), _
                        "N:\PROJ\NOTIZ\Scha9\") + 20)
                    .DeleteLines intLine
                    .InsertLines intLine, strFront & _
                        "S:\Operations_Technology\PROJ\NOTIZ\Scha9\" & strBack
                End If
            Next
        End With
    Next
End Sub

Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
taphei47
Frank
1. Modul.bas: Wie "stelle" ich das her?
2. Wenn ich ein Makro in einem Modul ersetzen will, in dem noch mehrere Makros stehen, wie läuft das?
danke!!!!!!
AW: taphei47
28.08.2005 22:27:39
Nepumuk
Hi,
1. Ein improtierbares Modul erstellst du, indem du z.B. ein vorhandenes änderst, dieses mit eiem Rechtsklick in den Projektexplorer, oder durch ein Makro exportierst.
2. Ein Makro löschen geht z.B. so:
Public Sub Makro_suchen_und_loeschen()
    Dim myVBC As Object, intRow As Integer, intstartRow As Integer, intendRow As Integer
    For Each myVBC In Workbooks("Mappe1.xls").VBProject.VBComponents
        With myVBC.CodeModule
            If myVBC.Name = "Tabelle1" Then
                For intRow = 1 To .CountOfLines
                    If .ProcOfLine(intRow, 0) = "CommandButton6_Click" Then
                        If intstartRow = 0 Then intstartRow = intRow
                        intendRow = intRow
                    End If
                Next
                If intstartRow <> 0 And intendRow <> 0 Then
                    .DeleteLines intstartRow, intendRow - intstartRow + 1
                    Exit For
                End If
            End If
        End With
    Next
End Sub

Um dieses zu ersetzen, hast du wieder mehrere Möglichkeiten. Du kopierst es aus einem anderen Modul, generierst es aus einer Textdatei, oder direkt per Code. Beispiel:
Public Sub Makro_generieren()
    With Workbooks("Mappe1.xls").VBProject.VBComponents(Worksheets("Tabelle1").CodeName).CodeModule
        .DeleteLines 1, .CountOfLines
        .InsertLines 1, "

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)"

        .InsertLines 2, " If Target.Column = 2 Then"
        .InsertLines 3, " v1 = Target.Value"
        .InsertLines 4, " Selection.AutoFilter Field:=2, Criteria1:=" & Chr(34) & " = " & Chr(34) & "& v1"
        .InsertLines 5, " End If"
        .InsertLines 6, " If Target.Column = 3 Then"
        .InsertLines 7, " " & "'weitere Anweisungen"
        .InsertLines 8, " End If"
        .InsertLines 9, "End Sub "
    End With
End Sub

Gruß
Nepumuk
Excel & VBA – Beispiele
Anzeige
AW: Makro
28.08.2005 22:31:54
Frank
Danke, werde in den nächsten Tagen mal schauen, ob ich das hinbekomme!!!
Vielen Dank!!
Frank

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige