Anzeige
Archiv - Navigation
604to608
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
604to608
604to608
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Userform in verschiedenen Excelmappen aufrufen
01.05.2005 22:15:28
Dagmar
Hallo
Ich habe eine Userform für eine Zeiterfassung geschieben.
Mit der Excel-Mappe in der sich diese Userform befindet geht alles super.
Ich möchte in verschiedenen Excel-Mappen diese Userform benutzen WIE GEHT DAS?
Ich möchte nicht die Tabellenblätter als Addin speichern nur die Userform
Ich habe schon versucht ein Addin zu erstellen mit einem leeren Tabellenblatt) aber wenn ich das Addin lade dann wird die Userform nicht aufgerufen?
Ich habe in einem Modul1 eine Sub Start erstellt wo ich die Userform aufrufe
aber dieses Makro (Start) gibt es dann nicht wenn ich das Addin aufrufe?
1. Wie kann ich meine Userform als Addin speichern sodaß sie in verschiedenen
Excelmappen benutzt werden kann
2. Wie wird das Formular automatisch aufgerufen wenn ich eine Mappe öffne
Danke Dagmar

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform in verschiedenen Excelmappen aufrufen
01.05.2005 22:28:03
Luc:-?
Hallo Dagmar,
deine Vorgehensweise halte ich für richtig! Anders als mit einer leeren Mappe wirst du die UF wohl nicht als AddIn speichern können (habe allerdings keine Erfahrung damit). Ich speichere meine udFunktionen auch als AddIn mit einer leeren Mappe im Office-Unterordner Makro wie es auch MS macht. Wenn du dann AddIns aktivierst, notfalls im Editor bei jedem relevanten Projekt einen Verweis auf das AddIn setzt, müsste es allen bzw diesen Mappen zur Verfügung stehen.
Die Initialisierungs- und Aufrufroutinen für die UF müsstest du dann als Ereignisprozedur Workbook_Open im (Klassen-)Modul der Arbeitsmappe unterbringen. Das könnte funktionieren, aber sicherheitshalber (zwecks weiterer Meinungen) lasse ich das mal offen.
Gute Nacht Luc :-?
Anzeige
AW: Userform in verschiedenen Excelmappen aufrufen
01.05.2005 22:36:01
Dagmar
Hallo Luk
in der Ereignisprozedur Workbook_Open habe ich die Userform.show aufgerufen.
Problem:
In der Userform_activate werden gleich ein paar Zellen angesprochen die dann zum Fehler führen weil wohl noch kein Tabellenblatt geladen/geöffnet ist (bei WorkbooK_open).
Versuch mal Ramses' Rat, Dagmar! -- owT
01.05.2005 22:47:47
Luc:-?
AW: Userform in verschiedenen Excelmappen aufrufen
01.05.2005 22:34:46
Ramses
Hallo
Sei mir nicht böse,... aber kannst du es nicht so lassen wie es ist,... wenns doch funktioniert ?
Alle Eigenheiten zu berücksichtigen, die auftreten können, wenn man Userforms von einer Mappe zur Dateneingabe in einer anderen Mappe verwendet, .... das ist auch für erfahrene Programmierer teilweise nicht ganz trivial ( siehe dein Level )
Du weisst noch nicht mal wie man ein Makro erstellt, das beim öffnen einer Datei automatisch startest, willst aber ein AddIn verwenden, bzw. Mappenübergreifende Programmierung .. !?
Was spricht dagegen, aus deiner Mappe "XLS" eine Vorlage "XLT" zu machen ?
Dann wird die UF automatisch mitgenommen und du musst sie nicht neu programmieren.
Gruss Rainer

Anzeige
AW: an Rainer
01.05.2005 22:48:29
Dagmar
Hallo Rainer,
Mein Problem:
Ich habe 2 gleiche Excelmappen eine zu Hause / eine auf einem Firmenrechner.
Für die Mappe zu Hause habe ich das Tool (Userform) geschrieben. In einem Modul ein Startmakro und alles ist OK.
Auf dem Firmenrechner darf ich aber das Tabellenblatt nicht verändern.Ich muß alles "von Hand eingeben".
Ich dachte wenn ich ein Addin schreibe(welches meine Userform aufruft) kann ich
das Addin aufrufen ,das Tabellenblatt ausfüllen (automatisch),Addin wieder entfernen.
Und das Tabellenblatt ist unverändert.
Clever, Anerkennung! Vielleicht mit Chef reden? oT
01.05.2005 23:00:28
Luc:-?
AW: an Rainer
01.05.2005 23:03:44
Ramses
Hallo
"...Das AddIn aufrufen,das Tabellenblatt ausfüllen (automatisch),Addin wieder entfernen..."
Da kannst du doch auch gleich deine Tabelle aufrufen.
Das Hauptproblem dabei ist doch, dass Anweisungen die in einer Mappe funktionieren, nicht unbedingt gleich funktionieren, wenn man Sie aus einer anderen Mappe aufruft, geschweige denn auch noch Daten eintragen will.
Alleine "ActiveWorkbook" und "ThisWorkbook" sind da schon unterschiedlich wie Himmel und Hölle.
Und die Tabelle, wo die Daten hin sollen, musst du auch richtig referenzieren, sonst landet alles in der Mappe aus der die UF kommt.
Alternativ kannst du es ja mal probieren:
Öffne die Mappe mit der UF
Schreib dort ein Makro rein

Sub UF_Start()
DeineUserform.Show
End Sub

Aus der anderen Mappe kannst du diese UF dann starten mit
Application.Run "DeineMappe_mit_der_UF.xls!UF_Start"
und dann mal schauen was passiert.
Zu dem Punkt:
"...gleich ein paar Zeilen angesprochen, die dann zum Fehler führen..:"
Schau mal in der Online-Hilfe dringend in den Punkt "Fehlerbehandlung"
Denn sonst wirst du sicher nicht glücklich.
Das ist bei Mappenübergreifender Programmierung ein elementarer Codebestandteil :-)
Gruss Rainer
Gruss Rainer
Anzeige
AW: an Rainer
01.05.2005 23:17:27
Dagmar
Danke für den Tipp mit den Errors
Userform_activate
on error resume next
...
end sub
hat mein Problem mit den Zellen behoben.
Ich rufe die UserForm in Workbook_Open auf und starte sie damit automatisch.
Danke.
AW: an Rainer
01.05.2005 23:20:01
Ramses
Hallo
"On Error Resume Next"
Das ist so ziemlich das schlimmste was du machen kannst.
Damit wird jeder Fehler unterdrückt,... aber auch solche die wichtig wären, z.B. wenn das Tabellenblatt nicht da ist, in das du die Daten schreiben willst.
Anyway,... wenn's funktioniert und du glücklich bist, bin ich es auch ;-)
Gruss Rainer
Da hat Rainer recht, Dagmar! Das Fehler...
01.05.2005 23:34:47
Luc:-?
...mit OnError Resume Next einfach übergangen wdn, hab ich hier schon oft in geposteten Codes gelesen. Besser ist es, eine richtige Fehlerbehandlung durchzuführen. D.h.: OnError GoTo marke und da die Fehler unterscheiden in die, die übergangen wdn können (Resume Next) und die, auf die anderweitig zu reagieren ist, z.B. mit einer MsgBox zu melden sind (am besten mit Fehlerquelle=Makroname im Titel und Err.Number und .Description im Text). Sonst suchst du dich bei Fehlern tot!
Gute Nacht Luc :-?
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige