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)
posizione = cella.address  

'QUI L'INTOPPO....E' GIUSTA LA RIGA SOTTOSTANTE? 
If D1 <= posizione <= D321  

Group = PLGP11DTM  

If D322 <= posizione <= D876  

Group = CIOH1DTM  

'etc...etc....
Grazie 
Alessandro
Risposta
Risposta
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:

http://www.maurogsc.eu/esempiforum13/cercavalore.zip

--
Mauro Gamberini
Microsoft© MVP (Excel)
http://www.maurogsc.eu

La risposta è risultata utile?

Siamo spiacenti che questo non sia stato utile.

Ottimo. Grazie per il tuo feedback.

Quanto sei soddisfatto di questa risposta?

Grazie per il feedback, ci aiuta a migliorare il sito.

Quanto sei soddisfatto di questa risposta?

Grazie per il tuo feedback.

 
 

Informazioni domanda


Ultimo aggiornamento 6 ottobre 2021 Visualizzazioni 1.574 Si applica a: