Anzeige
Archiv - Navigation
1216to1220
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
Inhaltsverzeichnis

Workbook_Open-Ereignis

Workbook_Open-Ereignis
Richard
Hallo XLS-Experten,
stehe mal wieder vor einem für mich unlösbaren Problem.
Ich möchte nämlich ein AddIn erstellen, was voll automatisch eine bestimmte Aktivität durchführen soll (z.B. Spalte A sortieren, Einfärben, etc. pp.)
Nur soll diese Aktivität nur dann durchgeführt werden, wenn es sich um eine bestimmte Datei handelt. Das heißt Quell-Pfad und Dateinamen müssen abgeglichen werden.
Zum Hintergrund: Unsere Warenwirtschaftssoftware kann einen Export nach Excel nur als CSV-Datei in einem bestimmten Pfad hinterlegen. In den Parametern ist einstellbar, dass die CSV-Datei gleich geöffnet werden soll.
Und jetzt soll mein AddIn aktiv werden. Es soll die Quelle erkennen und weitere Befehle ausführen.
Sollte jedoch Excel oder eine beliebige andere Datei gestartet werden, merkt das AddIn dieses und unternimmt nichts.
An und für sich, dachte ich zuerst, dass es kinderleicht mit dem Workbook_Open-Ereignis zu lösen wären, doch leider weit gefehlt. Ich kann damit zwar eine UserForm starten und einiges mehr. Die Quelle kann jedoch noch nicht bestimmt werden, da nur das Programm Excel geöffnet ist und noch nicht die eigentliche Datei. Die Datei öffnet erst, wenn das Workbook_Open-Ereignis beendet ist.
Ich hoffe, ich habe mich einigermaßen verständlich ausgedrückt und ihr könnt mir weiterhelfen.
Vielen Dank
MfG Richard

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Workbook_Open-Ereignis
21.06.2011 11:23:23
Rudi
Hallo,
dafür brauchst du eine Klasse der Application in deinem Addin. Workbook_Open bezieht sich ja auf die Mappe, in der die Ereignisprozedur steht. Müsste also in deiner CSV stehen.
Dein Addin.
In DieseArbeitsmappe:
Dim objApp As clsApplication
Private Sub Workbook_Open()
Set objApp = New clsApplication
End Sub

Ein Klassenmodul clsApplication einfügen.
Code:
Private WithEvents myApp As Application
Private Sub Class_Initialize()
Set myApp = Application
End Sub
Private Sub Class_Terminate()
Set myApp = Nothing
End Sub
Private Sub myApp_WorkbookOpen(ByVal Wb As Workbook)
If LCase(Wb.FullName) Like "c:\test\*.csv" Then
DeinMakro
End If
End Sub

Wenn jetzt deine CSV geöffnet wird, erkennt die Klasse das und starten DeinMakro.
Gruß
Rudi
Anzeige
AW: Workbook_Open-Ereignis
21.06.2011 11:36:46
Richard
Hallo Rudi,
herzlichen Dank! Es hat klappt wunderbar.
MfG
Richard

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige