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

Addin soll automatisch laufen

Addin soll automatisch laufen
et999
Hallo Ihr,
ich hab mir was vorgenommen, was etwas über meinen Horizont geht (oben steht VBA gut, weil es "VBA ausreichend minus" nicht gibt und mit Kaum Excel/VBA Kenntnisse fühle ich mich etwas unterbewertet).
Ich möchte die Standardfarben für Excel ändern. Das Makro dafür klappt auch problemlos, wenn ich es in eine Datei einbaue. Nun würde ich gerne erreichen, dass die neuen Farben generell beim öffnen von Excel vorhanden sind (und das später auch auf allen Firmenrechnern). Also hatte ich die Idee ein Addin zu erstellen (und da begebe ich mich auf Neuland und Glatteis, aber es wäre halt zu schön). Habe jetzt schon ein/zwei Stunden im Archiv gewühlt und bin auch schon etwas schlauer. Ich habe ein Adddin und kann es auch einbinden. Nur, es passiert nichts. Weder beim Start von Excel, noch wenn ich das Addin per -Manager aus- und wieder einbaue. Habe schon einiges ausprobiert. Im Moment sieht es so aus:


Public Sub auto_open()
'StandardFarbenÄndern:
ActiveWorkbook.Colors(56) = RGB(0, 0, 102)
ActiveWorkbook.Colors(55) = RGB(212, 5, 17)
ActiveWorkbook.Colors(3) = RGB(255, 0, 10)
End Sub


Das ganze ist als allgemeines Modul im Addin Ornder als Farben.xla gespeichert. Ich habe es per Addin Manager aktiviert.
Wenn ich jetzt Excel starte, bekomme ich für dieses Addin die Fehlermeldung:Objektvariable nicht festgelegt. Wenn ich es mit dem Manager deaktivier und wieder aktivier komischerweise nicht. Es passiert aber auch nichts. Wenn ich jetzt aber in das Addin Makro klicke und F5 drücke funktioniert es?! (Im eingebauten Makro habe ich ThisWorkbook stehen, habe aber gelernt, das sich das nur auf das Addin beziehen würde und also nichts bringt.)
Sorry für soviel Text aber ich wollte es möglichst genau beschreiben.
Könnt Ihr mir helfen?
Gruß
Uwe
(:o)

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Addin soll automatisch laufen
17.02.2006 18:59:56
Nepumuk
Hallo Uwe,
versuch es mal so:
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private objApplication As clsApplication

Private Sub Workbook_Open()
    Set objApplication = New clsApplication
    Set objApplication.prpSetApplication = Application
End Sub

' **********************************************************************
' Modul: Modul1 Typ: Allgemeines Modul
' **********************************************************************

Option Explicit

Public Sub prcSetColor(objWorkbook As Workbook)
    With objWorkbook
        .Colors(56) = RGB(0, 0, 102)
        .Colors(55) = RGB(212, 5, 17)
        .Colors(3) = RGB(255, 0, 10)
    End With
End Sub

' **********************************************************************
' Modul: clsApplication Typ: Klassenmodul
' **********************************************************************

Option Explicit

Private WithEvents mobjApplication As Application

Friend Property Set prpSetApplication(objApplication As Application)
    Set mobjApplication = objApplication
End Property

Private Sub mobjApplication_NewWorkbook(ByVal Wb As Workbook)
    Call prcSetColor(Wb)
End Sub

Private Sub mobjApplication_WorkbookOpen(ByVal Wb As Workbook)
    If LCase$(Right$(Wb.Name, 4)) = ".xls" Then Call prcSetColor(Wb)
End Sub

Gruß
Nepumuk

Anzeige
AW: Addin soll automatisch laufen
17.02.2006 20:12:48
et999
Hi Nepumuk,
puuuuuh, so kompliziert hätte ich mir das nicht vorgestellt.
Ich habe Deine Programme bei mir eingefügt. Es gibt allerdings ein Problem. In der ersten Zeile: Private objApplication As clsApplication bekomme ich eine Fehlermeldung: Benutzerdefinierter Typ nicht definiert. In der Hilfe dazu heißt es der Typ müsste erst mit Type und EndType definiert werden. Oder liegt es vielleicht daran, dass ich nur Excel 2000 / VBA 9.0 habe? Außerdem bekomme ich bei:
Private WithEvents mobjApplication As Application
die Fehlermeldung: Ungültiges Attribut in Sub oder Funtion was vielleicht mit der ersten Fehlermeldung zusammenhängt?
Ich habe allerdings auch den dritten Teil deines Programms (Modul: clsApplication Typ: Klassenmodul) in das Arbeitsmappenmodul einkopiert, weil es das Modul clsApplication bei mir nicht gibt, was widerum mit siehe oben zusammenhängen könnte.
Falls Du noch einen Tip dazu hast ok. Wenn nicht ist es auch nicht schlimm. Das ganze war nur so 'ne Idee und ist nicht weiter wichtig, und ich möchte mich nicht mit fremden Federn schmücken, zumindest nicht wenn ich nicht wirklich verstehe wie die funktionieren.
Ich werd mich dann vielleicht in ein paar (-hundert (:-)) Jahren nochmal damit beschäftigen.
Vielen Dank für Deine Bemühungen.
Gruß
Uwe
(:o)
Anzeige
AW: SUPER!!! Addin LÄUFT automatisch
17.02.2006 20:36:17
et999
Hi Nepumuk,
ssssssssuuuuuuuuuuuupppppppppppper! Es klappt.
War wohl ein bißchen blöd von mir. Ich wusste eigentlich, dass man ein Klassenmodul auch einfach einfügen kann, bin aber absolut nicht auf die Idee gekommen, weil ich das noch nie gemacht habe.
Jetzt habe ich es gemacht und es klappt genauso wie es soll.
Viiieeeeellen Dank nochmal für Deine Mühe.
Vielleicht kann ich Dir ja auch mal helfen (;-) SOLL EIN SCHERZ SEIN!!!
Gruß
Uwe
(:o)
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige