Arbetsblad som formulär


Här demonstreras några tekniker som kan komma väl till användning vid utformning av arbetsblad som formulär.

Tilldela celler värden genom dubbelklickning

Istället för att användarna ska kryssa i celler manuellt kan det ske smidigare genom dubbelklickning i celler.

Denna teknik kan användas till många ändamål, såsom datum- och tidsstämpling.

Följande procedur skapas i den aktuella arbetsbladets modul:

Option Explicit

 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

   '© 2003 Alla rättigheter XL-Dennis

   Dim rnData As Range  

   Set rnData = Range("A1,A3,A5")

 

   'Om den aktiva cellen är inom det definierade cellområdet tilldelas cellen ett x vid dubbelklickning.

   If Not Intersect(Target, rnData) Is Nothing Then ActiveCell.Value = "X"

 

   'Här förhindrar vi att vid dubbelklickning hamnar i redigeringsläge.

   Cancel = True

 End Sub

 

Tillåt endast markering av indataceller

När vi aktiverar arbetsbladskydd så kan vi vandra mellan de oskyddade cellerna mha TABB-tangenten.

Denna teknik kan förbättras och utan att vi använder oss av tangenten ifråga för förflyttning. Vi begränsar helt enkelt användarnas möjligheter.

Följande procedur skapas i det aktuella arbetsbladets modul:

Option Explicit

 Private Sub Worksheet_Activate()

   '© 2003 Alla rättigheter XL-Dennis

   With Me

      .Unprotect Password:="Dennis"

      .EnableSelection = xlUnlockedCells

      .Protect Password:="Dennis"

   End With  

End Sub

 

Markera en specifik cell efter datainmatning

Här finns ett flertal sätt att hantera detta på varav ett visas här. Beroende på utfallet väljs en av två önskade celler i exemplet.

Följande procedur skapas i det aktuella arbetsbladets modul:

Option Explicit  

Private Sub Worksheet_Change(ByVal Target As Range)

   '© 2003 Alla rättighter XL-Dennis

   Dim rnCell As Range, rnCell1 As Range, rnCell2 As Range

 

   With Me

      Set rnCell = .Range("A1")

      Set rnCell1 = .Range("B2")

      Set rnCell2 = .Range("C2")

   End With

 

   If Target.Address = rnCell.Address Then

      Select Case rnCell.Value

      Case 1: rnCell1.Select

      Case 2: rnCell2.Select

      End Select

   End If

 End Sub

 

Begränsa arbets- och visningsytan

Att begränsa arbets- och visningsytan i arbetsblad kan ske med vissa tilläggsverktyg såsom med Power Utility Pak eller R-Verktyg.

Finns dessa ej att tillgå eller det inte är tillåtet med denna typ av tilläggsverktyg kan vi lösa det på följande sätt.

Följande procedur skapas i det aktuella arbetsbladets modul:

Option Explicit  

Private Sub Worksheet_Activate()

   '© 2003 Alla rättighter XL-Dennis

   With Me

      'Begränsa arbetsytan

      .ScrollArea = "A1:C40"

      'Begränsa arbets- och visningsytan

      .Columns("D:IV").Hidden = True

      .Rows("41:65536").Hidden = True

   End With

End Sub