31. januar 2002 - 16:58Der er
10 kommentarer og 1 løsning
Anvendelse af Userform i Excel
Hej!
Jeg har oprettet en knald god userform i VB (Excel). Den Userform vil jeg gerne have automatisk popper op, når man går ind i to bestemte sheets i samme Excel-fil og jeg ønsker også at man kan aktivere den via en knap med en assigned macro i hver enkelt sheet.
Men! Hvordan kalder jeg den? Jeg har prøvet med en application.run - men det virker ikke.
Hvis det har nogen betydning anvendes Excel 97 (eng)
På den event der hedder beforeSave ved woorkbook indsætter du flg kode.
Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Public Event UserNameNotFound() Public Event UserNameFound()
Private Function NTDomainUserName() As String Dim strbuffer As String Dim inglen As Long Const dhcmaxusername = 255
strbuffer = Space(dhcmaxusername) inglen = dhcmaxusername If CBool(GetUserName(strbuffer, inglen)) Then NTDomainUserName = Left(LCase$(Left$(strbuffer, inglen - 1)), 100) RaiseEvent UserNameFound Else NTDomainUserName = "" RaiseEvent UserNameNotFound End If End Function
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Range("a1").Value = NTDomainUserName End Sub
Kedde
Synes godt om
Slettet bruger
31. januar 2002 - 17:19#3
Du skal også lave en procedure der loader og viser formen. Det er den du skal kalde fra kappen.
'For at vise formen ved aktivering af to bestemte sheets, indsæt flg. i koden for ThisWorkbook i VB: '----------------------------------
Private Sub Workbook_SheetActivate(ByVal Sh As Object) If ActiveSheet.Name = "Sheet1" Or ActiveSheet.Name = "Sheet2" Then UserForm1.Show End If End Sub
'For at udføre en handling ved et klik på en knap i et sheet, indsæt da flg. i koden for dette sheet, hvor CommandButton1 er navnet på knappen. '----------------------------------
Private Sub CommandButton1_Click() UserForm1.Show End Sub
'----------------------------- 'I alle tilfælde med UserForm1.Show kan du vælge at tilføje vbModal efter .Show, hvis formen skal vises modalt - altså: 'UserForm1.Show vbModal
Gå ind i Rediger Makro. Dobb.klik på det arknavn hvor userformen skal virke. I vinduet skriver du følgernde:
Private Sub Worksheet_Activate() userFormNavn.Show End Sub
Du kan selvfølgelig gøre det samme på flere Ark.
For at få knappen til at kalde:
Opret denne makro i et Modul og tildel den til en knap:
Sub ViForm() userFormNavn.Show End Sub
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.