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

Makro fügt Makro in Tabelle ein

Makro fügt Makro in Tabelle ein
16.03.2005 09:33:57
Hubertus
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)?

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Makro fügt Makro in Tabelle ein
16.03.2005 09:41:10
Ralf
Hallo Hubertus,
geh auf Google. Im Suchfenster folgendes eingeben:
code export import site:www.herber.de
Du findest dann viele Beispiele.
Gruß
Ralf
AW: Makro fügt Makro in Tabelle ein
16.03.2005 11:07:07
Hubertus
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?


Anzeige
AW: Makro fügt Makro in Tabelle ein
16.03.2005 12:48:16
Ralf
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.
AW: Makro fügt Makro in Tabelle ein
16.03.2005 15:07:30
Hubertus
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?
Anzeige
AW: Makro fügt Makro in Tabelle ein
17.03.2005 08:26:01
Ralf
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
AW: Makro fügt Makro in Tabelle ein
16.03.2005 10:45:02
Hubertus
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?
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige