Banalt problem men efter att ha prövat ett flertal (enkla) metoder, typ Hej, Hej Dennis, Om jag förstår dig rätt vill du öppna formuläret när en ny WorkBook skapas från en mall. Prova att skapa en procedur som heter Auto_Open i en kodmodul. Hej Viktor, Hej och tack för hjälpen!Hur får man ett formulär att laddas direkt i en Excel mall?
Private Sub NewWorkbook()
UserForm2.Show
End Sub
och inte får det att fungera vet jag inte hur man ska gå tillväga...
Meningen är ju formuläret ska laddas då användaren väljer att skapa en ny arbetsbok baserad på mallen.
Motsvarande i MS Word är ju bara
Private Sub Document_new()
userform2.show
end sub
tack på förhand!Sv: Hur får man ett formulär att laddas direkt i en Excel mall?
Händelsen Document_new() finns i MS Word men har ingen motsvarighet i XL däremot finns händelsen Workbook_NewSheet(ByVal Sh As Object) att tillgå.
Endera så får du skriva kod för att skapa en ny arbetsbok och i den proceduren visa formuläret. Alternativet är att skriva en egen händelseprocedur i en klassmodul.
DennisSv: Hur får man ett formulär att laddas direkt i en Excel mall?
prövade en kod enligt den hjälp som finns att få i Excel, som jag antar bygger på det du skrev.
Skapade en modul med koden:
Private Sub App_NewWorkbook(ByVal Wb As Workbook)
Application.UserForm2.Show
End Sub
skapade sedan en klassmodul med koden:
Public WithEvents App As Application
Dim X As New EventClassModule
Sub InitializeApp()
Set X.App = Application
End Sub
men får det inte att fungera, vad gör jag för fel?
Mvh,
Viktor Sv: Hur får man ett formulär att laddas direkt i en Excel mall?
Sub Auto_Open()
Form.Show
End SubSv: Hur får man ett formulär att laddas direkt i en Excel mall?
Jag besöker inte forumet frekvent så det dröjer mellan mina svar.
Följande kan du testa:
Infoga en klassmodul i ditt VBA-projekt och skriv in följande:
<code>
Option Explicit
Public WithEvents App As Application
Private Sub App_NewWorkbook(ByVal wb As Workbook)
'Namnet på ditt formulär
frm1.Show
End Sub
</code>
I en vanligt standardmodul infogas följande:
<code>
Option Explicit
Dim AppEvents As New Class1
Sub Initsevent()
Set AppEvents.App = Application
End Sub
</code>
I ThisWorkbook-modul infogar du följande:
<code>
Option Explicit
Private Sub Workbook_Open()
Call Initsevent
</code>
End Sub
Har du öppnat arbetsboken som ovanstående procedurer och moduler finns i så när du lägger till en ny arbetsbok visas formuläret frm1.
Detta är grundstrukturen och du får implementera den utifrån de förutsättningar som finns.
Hör av dig om utfallet :-)
DennisSv: Hur får man ett formulär att laddas direkt i en Excel mall?
Att det var så enkelt!
Mvh,
Viktor Berglind