Codice in VB per verifica cella excel all'interno di un range
Ciao a tutti. Dovrei fare il seguente script in VB.
Inserisco un valore da cercare mediante input box (p.es PC00012K), e devo trovare questo dato all'interno di un foglio excel nel range(D1:D9999).
Fatto questo, devo mettere delle condizioni.
Se la cella associata a PC00012K sta nel rangeD1:D321, faccio una cosa;
se sta nel range D322:D876 dovrò fare un'altra cosa, diversa da quella precedente....e così via fino a D9999
Ecco...io mi sono incagliato nella seconda parte, scrivo qui la prima parte di codice (devo ancora fare il debug, ho buttato giù il corpo del testo senza definizioni di vari worksheet e applicazioni excel...).:
Private Sub cerca_Click()
Dim range_cella As Range
Dim valore, posizione As String 'prova anche con Variant
Dim Group As String
Set range_cella = Range("D1:D9999")
valore = InputBox("Inserire il valore del codice da cercare :")
If valore = "" Then Exit Sub Else Set cella = foglio.range_cella.Find(valore, lookat:=xlPart)
Ciao a tutti. Dovrei fare il seguente script in VB.
Inserisco un valore da cercare mediante input box (p.es PC00012K), e devo trovare questo dato all'interno di un foglio excel nel range(D1:D9999).
Fatto questo, devo mettere delle condizioni.
Se la cella associata a PC00012K sta nel rangeD1:D321, faccio una cosa;
se sta nel range D322:D876 dovrò fare un'altra cosa, diversa da quella precedente....e così via fino a D9999
<cut>
Grazie
Alessandro
Sostituisci Foglio1 con il nome del tuo foglio. Banale capire come funziona il Select e come aggiungere Case e sostituire alle MsgBox il codice da eseguire.
Public Sub m()
Dim sh As Worksheet
Dim rng As Range
Dim v As Variant
v = Application.InputBox("Inserire il valore da ricercare", "Ricerca valore")
If v = False Then Exit Sub
If v = "" Then Exit Sub
Set sh = ThisWorkbook.Worksheets("Foglio1")
With sh
Set rng = .Range("D1:D9999").Find( _
What:=v, _
LookAt:=xlPart, _
LookIn:=xlValues)
If Not rng Is Nothing Then
Select Case rng.Row
Case Is < 322
MsgBox "Fra 1 e 321"
Case Is < 877
MsgBox "Fra 322 e 876"
'.....
'.....
Case Is < 10000
MsgBox "Inferiore a 10000"
End Select
End If
End With
Set rng = Nothing
Set sh = Nothing
End Sub
E qui trovi il file che ho utilizzato per l'esempio: