Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
428to432
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
428to432
428to432
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Macro ändert zweites Macro

Macro ändert zweites Macro
21.05.2004 10:18:29
Daniel
Hallo,
wie kann ich bspw. Macro1 aus file1.xls sagen, öffene file2.xls und ändere dort Macro2?
Bsp.: Im Macro2 des files2.xls steht: Kopiere cell A5 und füge ein in C6. Jetzt möchte ich das Macro2 durch Macro1 geändert wird, so dass danach Macro2 cell A5 in D6 und nicht in C6 kopiert.
Gruß
Daniel

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Macro ändert zweites Macro
Oberschlumpf
Hallo Daniel
Eine Makro-Änderung per VBA setzt diese (manuelle) Einstellung voraus:
Gilt für Office-XP, weiß nicht, ob dies auch in Office 2000 mit den folgenden Schritten erreichbar ist
1. Extras/Makro/Sicherheit
2. die Registerkarte "vertrauenswürdige Quellen" auswählen
3. die Option "Zugriff auf Visual Basic-Projekt vertrauen" aktivieren
Diese Einstellung ist standardmäßig deaktiviert.
Denn bei Aktivierung ist es mit JEDEM Makro möglich, beliebige Makro-Veränderungen vornehmen zu können, was zur Folge haben kann, dass sich unbemerkt Makro-Viren "einschleichen" können.
Willst Du noch immer ein Bsp-Code als Lösung auf Deine Frage?
Ciao
Thorsten
Anzeige
AW: Macro ändert zweites Macro
Daniel
Könnte ich dem Korrektur Macro1 sagen es soll "zugriff auf...." aktivieren und am Ende wieder deaktivieren?
AW: Macro ändert zweites Macro
21.05.2004 10:47:29
Oberschlumpf
dann wäre diese Sicherheitseinstellung zwecklos, oder? ;-)
AW: Macro ändert zweites Macro
21.05.2004 10:50:29
Nepumuk
Hallo Thorsten,
in Excel2000 gibt es das nicht.
Hallo Daniel,
das lässt sich per Programm ändern. Ich habe hier aber GottseiDannk nur Excel2000 und kann deswegen nicht genau sagen welche SendKey - Anweisungen nötig sind.
Gruß
Nepumuk
danke für den Hinweis..wieder was gelernt :-)oT
Oberschlumpf
AW: Macro ändert zweites Macro
Daniel
Wenn es das unter 2000 nicht gibt, kann man davon ausgehen, dass es auch unter 97 diese Einstellung nicht gibt?
AW: Macro ändert zweites Macro
21.05.2004 11:03:34
Nepumuk
Hallo Daniel,
man kann, frau auch!
Das Makro würde dann so aussehen:


Option Explicit
Public Sub Makro_suchen_Zeile_tauschen()
    Dim myVBC As Object, intCounter As Integer, intRow As Integer
    Workbooks.Open "D:\Eigene Dateien\file2.xls"
    For Each myVBC In Workbooks("file2.xls").VBProject.VBComponents
        With myVBC.CodeModule
            For intCounter = 1 To .CountOfLines
                If .ProcOfLine(intCounter, 0) > "" Then
                    If .ProcOfLine(intCounter, 0) = "kopieren" Then
                        For intRow = intCounter To .CountOfLines
                            If Trim$(.Lines(intRow, 1)) = "Cells(6, 3) = Cells(5, 1).Value" Then
                                .DeleteLines intRow, 1
                                .InsertLines intRow, "    Cells(6, 4) = Cells(5, 1).Value"
                                Exit Sub
                            End If
                        Next
                    End If
                End If
            Next
        End With
    Next
    Workbooks("file2.xls").Close Savechanges:=True
End Sub
'Kopiermakro in Mappe "file2.xls"
Public Sub kopieren()
    Cells(6, 3) = Cells(5, 1).Value
End Sub


Gruß
Nepumuk
Anzeige
Korrektur!!!!
21.05.2004 11:11:00
Nepumuk
so sollte es richtig lauten:


Public Sub Makro_suchen_Zeile_tauschen()
    Dim myVBC As Object, intCounter As Integer, intRow As Integer
    Workbooks.Open "D:\Eigene Dateien\file2.xls"
    For Each myVBC In Workbooks("file2.xls").VBProject.VBComponents
        With myVBC.CodeModule
            For intCounter = 1 To .CountOfLines
                If .ProcOfLine(intCounter, 0) <> "" Then
                    If .ProcOfLine(intCounter, 0) = "kopieren" Then
                        For intRow = intCounter To .CountOfLines
                            If Trim$(.Lines(intRow, 1)) = "Cells(6, 3) = Cells(5, 1).Value" Then
                                .DeleteLines intRow, 1
                                .InsertLines intRow, "    Cells(6, 4) = Cells(5, 1).Value"
                                Workbooks("file2.xls").Close Savechanges:=True
                                Exit Sub
                            End If
                        Next
                    End If
                End If
            Next
        End With
    Next
End Sub


Gruß
Nepumuk
Anzeige
AW: Korrektur!!!!
Daniel
Wo lernt man so etwas? Ich bin fasziniert!
Vielen vielen Dank.
Daniel

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige