Skapa automatiskt löpnummer
Här demonstreras ett relativt enkelt sätt att skapa löpande nummer, vilket kan användas för t ex ordernummer m m i kalkylblad. För att generera löpnummer i formulär (UserForm) krävs en annan teknik, vilket också visas.
Vi behöver göra två saker för att få tillstånd löpnummer i ett kalkylblad.
Steg 1:
- Definiera ett nytt namn, t ex OrderNr, och ange vid "Refererar till": =0.
- Referera till det definierade namnet där löpnumret önskas erhålla i kalkylbladet, såsom =OrderNr.
Vill man sedermera "nollställa" räknaren ändras det definierade värdet till 0 igen.
Steg 2:Följande kod placeras i modulen "DennaArbetsbok/ThisWorkbook":
Option Explicit
Private Sub Workbook_Open()
Dim Nummer As Integer
Application.ScreenUpdating = False'Tilldelar variabeln värdet av det definierade namnets nuvarande
'konstantvärde.
Nummer = Mid(ActiveWorkbook.Names("OrderNr").Value, 2, 99)'Ökar det definierade namnets konstantvärde med 1.
ActiveWorkbook.Names("OrderNr").RefersTo = "=" & Trim(Nummer + 1)
Application.ScreenUpdating = True
End Sub
Antag istället att vi vill skapa löpnummer automatiskt i ett formulär. Utöver arbetet med att skapa formuläret krävs följande kod:
Private Sub UserForm_Initialize()
Dim rgNr As Range
Set rgNr = ActiveWorkbook.Worksheets("Dolt Blad").Range("A1")
'Ökar värdet i cellen A1 med 1.
rgNr.Value = rgNr + 1
'Tilldelar etiketten det konverterade värdet.
OrderNr.Caption = CStr(rgNr.Value)
End Sub
Option Explicit
Sub Visa_Formular()'Visa formuläret
UserForm1.Show
End SubEn förutsättning för att ovanstående fungerar är att arbetsboken löpande sparas!