Re: Listboxes won't update properly when screen updating is turned off
It's hard to test since the lookup sheet isn't in your workbook, but I would alter the code behind the listbox sheet to:
Code
Private blnSkipEvents As Boolean
Public Sub ListBox1_Change()
blnSkipEvents = True
If ListBox1 = "Ost och mjölkprodukter" Then
ListBox2.Clear
Sheets("Snabberäkning").ListBox2.List = [OstOMjölk].Value
ElseIf ListBox1 = "Fett och olja" Then
ListBox2.Clear
Sheets("Snabberäkning").ListBox2.List = [FettOOlja].Value
ElseIf ListBox1 = "Bröd och spannmål" Then
ListBox2.Clear
Sheets("Snabberäkning").ListBox2.List = [BrödOSpannmål].Value
ElseIf ListBox1 = "Potatis" Then
ListBox2.Clear
Sheets("Snabberäkning").ListBox2.List = [Potatis].Value
ElseIf ListBox1 = "Grönsaker och baljväxter" Then
ListBox2.Clear
Sheets("Snabberäkning").ListBox2.List = [GrönsakerOBaljväxter].Value
ElseIf ListBox1 = "Frukt och bär" Then
ListBox2.Clear
Sheets("Snabberäkning").ListBox2.List = [FruktOBär].Value
ElseIf ListBox1 = "Kött, fisk, skaldjur, rom och ägg" Then
ListBox2.Clear
Sheets("Snabberäkning").ListBox2.List = [KöttOFisk].Value
ElseIf ListBox1 = "Övrigt" Then
ListBox2.Clear
Sheets("Snabberäkning").ListBox2.List = [Övrigt].Value
ElseIf ListBox1 = "Soppa, sås och matig sallad" Then
ListBox2.Clear
Sheets("Snabberäkning").ListBox2.List = [SoppaOsås].Value
End If
TextBox1 = vbNullString
TextBox2 = vbNullString
blnSkipEvents = False
End Sub
Private Sub ListBox2_Change()
If blnSkipEvents Then Exit Sub
UpDateTB2
End Sub
Private Sub TextBox1_Change()
If blnSkipEvents Then Exit Sub
UpDateTB2
End Sub
Private Sub UpDateTB2()
Dim KCAL100 As Double
Dim Livsmedel As String
Dim rngFound As Range
Dim wks As Worksheet
If TextBox1 = vbNullString Then
TextBox2 = vbNullString
Exit Sub
End If
On Error Resume Next
Livsmedel = ListBox2
Set wks = ActiveWorkbook.Sheets("Databas, livsmedel")
Set rngFound = wks.Range("A1:A2041").Find(What:=Livsmedel, LookAt:=xlWhole)
If Not rngFound Is Nothing Then
KCAL = rngFound.Offset(0, 3).Value / 100
TextBox2 = Val(TextBox1) * KCAL
End If
End Sub
Display More