Anche io leggendo il tuo listato (la prossima volta racchiudilo tra l'opzione 'Code' del menu, così risulta come parte di codice e memorizzabile tramite un tasto) mi reputo agli inizi perchè non ho capito granchè. Ma che linguaggio usi? VB6?
Fatta questa premessa io non avrei scomodato il ciclo for sulle label dei numeri, ma avrei creato 90 label indicizzate lbNumero(1), lbNumero(2), ..., lbNumero(90) e quindi eseguito questo test (evitando di estrarre 2 volte la stessa cifra):
Dim NewNum As Integer
Do
NewNum = CInt(Int((90 * Rnd()) + 1))
If Val(lbNumero(NewNum)) <> NewNum Then
lbNumero(NewNum).Caption = NewNum
lbNumero(NewNum).BackColor = vbRed
lb_ultimo_n.Caption = "ULTIMO NUMERO ESTRATTO " & NewNum
lb_ultimo_n.Visible = False
Exit Do
End If
Loop
Il nuovo numero l'ho chiamato 'NewNum' e non 'value' (che oltre tutto è una parola riservata!)
Non capisco perchè esporre l'ultimo numero a richesta, forse non ho capito il problema, perchè per visualizzarlo è sufficiente
Private Sub Button2_Click()
lb_ultimo_n.Visible = True
End Sub
Buon divertimento