16. december 2010 - 08:18
Der er
2 kommentarer og
1 løsning
Template
Hej
Jeg vil gerne lave en template, hvor brugeren skal indtaste eksempelvis navn, adresse m.m. i en popup, når man vælger templaten til sit dokument. Jeg har forstået at det er noget med at indsætte bookmarks i dokumentet og lave en kode i Visual Basic, men jeg kan simpelthen ikke få det til at virke. Måske ved jeg bare ikke hvad jeg skal søge på? Er der nogen der kan hjælpe mig med at finde en god tutorial eller andet, hvor jeg kan lære hvordan jeg gør?
16. december 2010 - 13:46
#3
VBA koden i skabelonens Userform:
Const maxH = 201.75
Const minH = 44
Const hvid = &H80000005
Const rød = &HC0C0FF
Dim brevDato As Date
Private Sub Cb_gemLuk_Click()
gemDokument
Unload UserForm1
End Sub
Private Sub Cb_minimerMaksimer_Click()
minimerMaksimer
End Sub
Private Sub minimerMaksimer()
If Me.Height = maxH Then
Me.Height = minH
Else
Me.Height = maxH
End If
End Sub
Private Sub Cb_udfør_Click()
If kontrolAfFelter = True Then
Me.Cb_udfør.Enabled = False
opbygTilbud
minimerMaksimer
Else
Me.Cb_udfør.Enabled = True
End If
End Sub
Private Sub Ch_visBogmærker_Click()
skalBogmærkerVises
End Sub
Private Sub skalBogmærkerVises()
If Me.Ch_visBogmærker.Value = False Then
ActiveWindow.View.ShowBookmarks = False
Else
ActiveWindow.View.ShowBookmarks = True
End If
End Sub
Private Sub SpinButton1_spinup()
brevDato = DateAdd("d", 1, brevDato)
Me.Tb_dato = Format(brevDato, "dd. mmmm yyyy")
End Sub
Private Sub SpinButton1_spindown()
brevDato = DateAdd("d", -1, brevDato)
d = Day(brevDato)
d2 = Day(Now)
If d >= d2 Then
Me.Tb_dato = Format(brevDato, "dd. mmmm yyyy")
Else
brevDato = Now
End If
End Sub
Private Sub optælFejl()
Dim cc As Control
For Each cc In UserForm1.Controls
If InStr(LCase(cc.Name), "lab") = 0 Then
If cc.BackColor = rød Then
Me.Cb_udfør.Enabled = False
Exit Sub
Else
Me.Cb_udfør.Enabled = True
End If
End If
Next cc
End Sub
Rem \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Private Function kontrolAfFelt(felt As Object)
Dim kontrolArt As String, ok As Boolean
kontrolArt = felt.Tag
If kontrolArt = "" Then
If felt.Text <> "" Then
ok = True
Else
ok = False
End If
Else
If kontrolArt = "n" Then
If IsNumeric(felt) = True Then
ok = True
Else
ok = False
End If
End If
End If
If ok = False Then
felt.BackColor = rød
Else
If felt.BackColor = rød Then
felt.BackColor = hvid
End If
End If
'optælFejl
kontrolAfFelt = ok
End Function
Private Function kontrolAfFelter()
Dim cc As Control
kontrolAfFelter = True
For Each cc In UserForm1.Controls
If cc.Visible = True And cc.Enabled = True And _
InStr(LCase(cc.Name), "lab") = 0 And _
InStr(LCase(cc.Name), "ch") = 0 And _
InStr(LCase(cc.Name), "cb") = 0 And _
InStr(LCase(cc.Name), "spin") = 0 And _
cc.Enabled = True Then
If kontrolAfFelt(cc) = False Then
kontrolAfFelter = False
End If
End If
Next cc
End Function
Private Sub userform_activate()
Me.Tb_dato = Format(Now, "dd. mmmm yyyy")
brevDato = Now
Me.Tb_modtager.SetFocus
skalBogmærkerVises
End Sub
Private Sub opbygTilbud()
Application.ScreenUpdating = False
indsætBogmærke "modtager", Me.Tb_modtager
indsætBogmærke "adresse", Me.Tb_adresse
indsætBogmærke "postnrBy", Me.Tb_postnr & " " & Me.Tb_by
indsætBogmærke "att", Me.Tb_att
Me.Tb_dato = Format(Now, "dd. mmmm yyyy")
indsætBogmærke "dato", Me.Tb_dato
Rem Gå til start af dokument
Selection.HomeKey Unit:=wdStory
Application.ScreenUpdating = True
End Sub
Private Sub indsætBogmærke(bm, tekst)
ActiveDocument.Bookmarks(bm).Select
Selection.TypeText Text:=tekst
End Sub