Ho un userform per creare un database, dove posso inserire, modificare, cancellare, scorrere e cercare i record.
Il mio problema sta nella ricerca dei record, posso farla sia per nome sia per n° pettorale, quando vado a fare la ricerca per pettorale tutto funziona bene utilizzando il codice sotto.
- Codice: Seleziona tutto
Private Sub CommandButton8_Click()
If TextBox8 = "" Then
MsgBox "Inserisci N°Pettorale"
TextBox8.SetFocus
Exit Sub
End If
If OptionButton3.Value = True Then
secondo
End If
If OptionButton4.Value = True Then
With ActiveSheet.Range("A3:A150")
Dim x As String
x = TextBox8.Value
Set C = .Find(x, LookIn:=xlValues) ', LookAt:=xlWhole
If Not C Is Nothing Then
firstAddress = C.Address
Do
C.Cells.Select
TextBox2 = C.Value
TextBox3 = C.Offset(0, 1).Value
TextBox4 = C.Offset(0, 2).Value
TextBox5 = C.Offset(0, 3).Value
Y = C.Value
irisposta = MsgBox("Trovato " & Y & " . Vuoi fermarti ?", vbYesNo)
If irisposta = vbYes Then 'se rispondo si allora
GoTo 10 'esco dal ciclo
End If
Set C = .FindNext(C)
Loop While Not C Is Nothing And C.Address <> firstAddress
Else
MsgBox "Nome non Trovato"
End If
10:
End With
End If
End Sub
Mentre quando vado a fare la ricerca per nome, m’inserisce tutti i dati tranne il numero pettorale
- Codice: Seleziona tutto
Private Sub CommandButton1_Click()
If TextBox1 = "" Then
MsgBox "Inserisci Nome "
TextBox1.SetFocus
Exit Sub
End If
If OptionButton1.Value = True Then
primo
End If
If OptionButton2.Value = True Then
With ActiveSheet.Range("B3:B150")
Dim x As String
x = TextBox1.Value
Set C = .Find(x, LookIn:=xlValues) ', LookAt:=xlWhole
If Not C Is Nothing Then
firstAddress = C.Address
Do
C.Cells.Select
TextBox2 = C.Offset(0, 0).Value
TextBox3 = C.Value
TextBox4 = C.Offset(0, 1).Value
TextBox5 = C.Offset(0, 2).Value
Y = C.Value
irisposta = MsgBox("Trovato " & Y & " . Vuoi fermarti ?", vbYesNo)
If irisposta = vbYes Then 'se rispondo si allora
GoTo 10 'esco dal ciclo
End If
Set C = .FindNext(C)
Loop While Not C Is Nothing And C.Address <> firstAddress
Else
MsgBox "Nome non Trovato"
End If
10:
End With
End If
End Sub
Inoltre quando vado a fare la ricerca facendo scorrere i record, dovrebbe bloccarsi sia all’inizio sia alla fine dei record, sia nella lista n°Pettorale sia in quella Nominativo.
- Codice: Seleziona tutto
Private Sub CommandButton5_Click()
If ActiveCell.Offset(-1, 0).Value = "N°Pettorale" Then
MsgBox "Siamo a inizio elenco, impossibile salire oltre"
Exit Sub
End If
ActiveCell.Offset(-1, 0).Select
TextBox2 = ActiveCell.Offset(0, 0).Value
TextBox3 = ActiveCell.Offset(0, 1).Value
TextBox4 = ActiveCell.Offset(0, 2).Value
TextBox5 = ActiveCell.Offset(0, 3).Value
Allego il file excel per visionarlo.
http://freefilehosting.net/?id=rdnzkqrd8A==
Grazie