Crea una userform (Userform1)
e una casella di testo (TextBox1)
con una etichetta "Inserisci Codice"
Cliccando sul textbox1 tasto destroseleziona visualizza codice e inserisci questo codice*
- Codice: Seleziona tutto
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
Call TrovaCode
End If
End Sub
Crea una seconda userform (Userfom2)
una casella di testo (TextBox1)
e etichetta "Inserisci Data"
Inserire questo codice nel textBox1 di questa userform (Data)
- Codice: Seleziona tutto
Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
If KeyCode = 13 Then
Range("M" & Riga).Value = UserForm2.TextBox1
UserForm1.TextBox1 = ""
UserForm1.Show
End If
End Sub
Ora in un modulo inserisci questo codice
- Codice: Seleziona tutto
Public Riga
Sub InserimentoCode()
UserForm1.TextBox1 = ""
UserForm1.Show
End Sub
Sub TrovaCode()
UR = Range("A" & Rows.Count).End(xlUp).Row
Trovato = 0
For RR = 2 To UR
Codice = Range("A" & RR).Value
If Codice = Val(UserForm1.TextBox1) Then
Trovato = 1
Riga = RR
End If
Next RR
If Trovato = 1 Then
UserForm1.Hide
UserForm2.Show
Else
If UserForm1.TextBox1 = "" Then
UserForm1.Hide
Else
MsgBox "Codice non trovato, ridigitare"
UserForm1.TextBox1 = ""
End If
End Sub
Avvia la macro "InserimentoCode"
ad ogni inserimento di codice (12 cifre) e premendo invio
appare l'userform inserimento data
(qui andrebbero aggiunti controlli per verifica data corretta etc, oppure se la data è quella attuale: giorno di registrazione del barcode si potrebbe eliminare l'intera userform2
)
digitata la data e premendo invio sarà trascritta la data nella colonna M riga corrisponente alla data trovata
nel caso un cui un codice non venisse trovato rimane attiva la userform1 con textbox vuoto per digitare di nuovo il codice
ne si preme invio con Textbox1 vuoto la macro termina e la userform1 si disabilita.
(*)Un appunto per quanto riguarda l'applicazione con i lettori barcode
potresti utilizzare
- Codice: Seleziona tutto
Private Sub TextBox1_AfterUpdate()
'....
End Sub
invece del KeyDown
Fai sapere se tutto ok
ciao