Makro fügt Makro in Tabelle ein

Bild

Betrifft: Makro fügt Makro in Tabelle ein von: Hubertus Lehmann
Geschrieben am: 16.03.2005 09:33:57

Folgendes Problem: Ein Makro ruft eine von einer Fremdapplikation (hier Crystal Reports) erzeugte Exceltabelle auf und bearbeitet diese. Wie läßt sich nun nach der Bearbeitung durch das Startmakro ein weiteres Makro automatisch unter der fremden Tabelle einfügen (dieses neue Makro vereinfacht hier die Autofilterfunktion von Excel)?

Bild


Betrifft: AW: Makro fügt Makro in Tabelle ein von: Ralf (Schwabenland)
Geschrieben am: 16.03.2005 09:41:10

Hallo Hubertus,

geh auf Google. Im Suchfenster folgendes eingeben:

code export import site:www.herber.de

Du findest dann viele Beispiele.

Gruß
Ralf


Bild


Betrifft: AW: Makro fügt Makro in Tabelle ein von: Hubertus Lehmann
Geschrieben am: 16.03.2005 11:07:07

Gesucht, aber nichts Passendes gefunden. Wenn ich das unter Tabelle1 abgelegte Makro exportiere und anschließend importiere, landet es unter Klassenmodule als tabelle11 und hat innerhalb der Tabelle1 keine Wirkung. Hier das Makro unter der Tabelle:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
'Schaltet Autofilter für Spalte 5 mit dem unter dem Cursor liegenden Wert ein / aus
If Selection.Column <> 5 Then Exit Sub
Kundennr = Selection.Value
c1 = ""
With ActiveSheet
    If .AutoFilterMode Then
        With .AutoFilter.Filters(5)
            If .On Then c1 = .Criteria1
        End With
    End If
End With
If c1 = "" Then Selection.AutoFilter Field:=5, Criteria1:=Kundennr Else Selection.AutoFilter Field:=5
End Sub


und hier die Export-/Import-Prozeduren:

Public Sub Test_Export()
Workbooks("Test1.xls").VBProject.VBComponents("Tabelle1").Export "G:\Temp\Autofilter.bas"
End Sub

Public Sub Test_Import()
Workbooks("Test1.xls").VBProject.VBComponents.Import "G:\temp\Autofilter.bas"
End Sub

Wie schaffe ich es, dass der Code nach dem Import unter der Tabelle1 liegt oder alternativ das Klassenmodul für die Tabelle wirksam wird?




Bild


Betrifft: AW: Makro fügt Makro in Tabelle ein von: Ralf (Schwabenland)
Geschrieben am: 16.03.2005 12:48:16

Hallo Hubertus,

nachfolgend mal ein gezipptes Beispiel:

https://www.herber.de/bbs/user/19736.zip

Die 4 Dateien müssen in C:\Temp_1\Mod\ entpackt werden, oder du passt die Pfade im Makro an. Starte dann die Datei Ursprung.xls und klicke den Button auf Tabelle1.

Hoffe es hilft.


Bild


Betrifft: AW: Makro fügt Makro in Tabelle ein von: Hubertus Lehmann
Geschrieben am: 16.03.2005 15:07:30

Guter Ansatz! Vielen Dank :-) Nach Änderung der Zeile
cm.AddFromFile Filename:=("C:\Temp_1\Mod\Test.bas") in
cm.AddFromFile Filename:=("C:\Temp_1\Mod\Tabelle1.cls")
und Code-Export in Tabelle1.cls (Datei fehlte?) hat dein
Vorschlag funktioniert. Wenn ich diesen aber im Vorgehen 1:1 auf mein Projekt übertrage, stürzt Excel (2002) leider ab. Der Extensibilty-Haken ist überall gesetzt.
Eventuell noch einen Vorschlag?


Bild


Betrifft: AW: Makro fügt Makro in Tabelle ein von: Ralf (Schwabenland)
Geschrieben am: 17.03.2005 08:26:01

Hallo Hubertus,

also da muss ich passen. Hast du es mal in der Ursprungsversion mit der Test.bas probiert? Ist inzwar nicht .cls, aber hat bei mir anstandslos den richtigen Code in Tabelle1 kopiert. Sonst habe ich leider auch keine Idee.

Gruß
Ralf


Bild


Betrifft: AW: Makro fügt Makro in Tabelle ein von: Hubertus Lehmann
Geschrieben am: 16.03.2005 10:45:02

Gesucht, aber nichts Passendes gefunden. Wenn ich das unter Tabelle1 abgelegte Makro exportiere und anschließend importiere, landet es unter Klassenmodule als tabelle11 und hat innerhalb der Tabelle1 keine Wirkung. Hier das Makro unter der Tabelle:

Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean)
'Schaltet Autofilter für Spalte 5 mit dem unter dem Cursor liegenden Wert ein / aus
If Selection.Column <> 5 Then Exit Sub
Kundennr = Selection.Value
c1 = ""
With ActiveSheet
    If .AutoFilterMode Then
        With .AutoFilter.Filters(5)
            If .On Then c1 = .Criteria1
        End With
    End If
End With
If c1 = "" Then Selection.AutoFilter Field:=5, Criteria1:=Kundennr Else Selection.AutoFilter Field:=5
End Sub


und hier die Export-/Import-Prozeduren:

Public Sub Test_Export()
Workbooks("Test1.xls").VBProject.VBComponents("Tabelle1").Export "G:\Temp\Autofilter.bas"
End Sub

Public Sub Test_Import()
Workbooks("Test1.xls").VBProject.VBComponents.Import "G:\temp\Autofilter.bas"
End Sub

Wie schaffe ich es, dass der Code nach dem Import unter der Tabelle1 liegt oder alternativ das Klassenmodul für die Tabelle wirksam wird?


 Bild

Beiträge aus den Excel-Beispielen zum Thema "Makro fügt Makro in Tabelle ein"