Risultati da 1 a 5 di 5

Discussione: Ciclo cerca valore in altro foglio



  1. #1
    L'avatar di nessi
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Milano
    Età
    53
    Messaggi
    153
    Versione Office
    2013/2016
    Likes ricevuti
    3
    Likes dati
    32

    Ciclo cerca valore in altro foglio

    Un saluto a tutti.
    Nell'esempio allegato ho due fogli.
    L'obiettivo è cercare tutti i valori contenuti nella colonna A del foglio "Riepilogo" nella colonna A del foglio "Registro".
    Se la trova deve compilare la cella in colonna O del foglio "Riepilogo" mi deve scrivere "SI".
    Se non la trova mi deve scrivere "NO".

    La macro "aaa" svolge benissimo l'operazione nel caso il valore sia trovato, non riesco a farle compilare la corrispondente cella in colonna "O" nel caso non fosse trovato il valore.

    Ho tentato un certo numero di modifiche ma o compila sempre tutte le celle in colonna "O" con "SI" o "NO".

    Potete darmi un consiglio?

    Come sempre, grazie in anticipo per l'aiuto.

    Codice: 
    Sub aaa()Dim rng As Range, c As Range, cfind As Range
    On Error Resume Next
    With Worksheets("Riepilogo")
    Set rng = Range(.Range("A2"), .Range("a2").End(xlDown))
    For Each c In rng
    With Worksheets("Registro")
    Set cfind = .Columns("A:A").Cells.Find(what:=c.Value, lookat:=xlWhole)
    If cfind Is Nothing Then GoTo line1
    c.Offset(0, 14) = "SI"
    line1:
    'c.Offset(0, 14) = "NO"
    End With
    Next c
    End With
    
    
    End Sub
    File Allegati File Allegati
    Ultima modifica fatta da:Gerardo Zuccalà; 18/09/16 alle 21:18 Motivo: Aggiunto Risolto

  2. #2

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    3754
    Versione Office
    2013
    Likes ricevuti
    1138
    Likes dati
    872

    Re: Ciclo cerca valore in altro foglio

    Ciao nessi,

    non son sicuro di aver capito bene... ma credo che l'errore (principale) sia nella dichiarazione della variabile "rng".

    Prova a modificare il codice in questo modo:

    Codice: 
    Sub aaa()
    Dim rng As Range, c As Range, cfind As Range
    
    
    On Error Resume Next
    With Worksheets("Riepilogo")
        Set rng = .Range("A2:A" & .Range("A2").End(xlDown).Row)
        For Each c In rng
            With Worksheets("Registro")
                Set cfind = .Columns("A:A").Find(what:=c.Value, lookat:=xlWhole)
                If cfind Is Nothing Then
                    c.Offset(0, 14) = "NO"
                Else
                    c.Offset(0, 14) = "SI"
                End If
            End With
        Next c
    End With
    
    
    Set rng = Nothing
    Set cfind = Nothing
    End Sub
    P.S.
    -) ricordati di eliminare le istanze alla fine del codice.
    -) Quel "On Error Resume Next" non è che mi convinca tanto

    [EDIT]
    Dimenticavo...
    ricordati di indentare il codice, soprattutto se lo deve leggere qualcun altro

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  3. I seguenti utenti hanno dato un "Like"


  4. #3
    L'avatar di nessi
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Milano
    Età
    53
    Messaggi
    153
    Versione Office
    2013/2016
    Likes ricevuti
    3
    Likes dati
    32

    Re: Ciclo cerca valore in altro foglio

    Citazione Originariamente Scritto da [B
    [EDIT][/B]
    Dimenticavo...
    ricordati di indentare il codice, soprattutto se lo deve leggere qualcun altro
    Grazie mille Cromagno, non ho capito cosa intendi ...
    La macro funziona benissimo.
    Per i P.S: spesso me ne dimentico. grazie!

  5. #4

    L'avatar di cromagno
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Sardegna
    Età
    37
    Messaggi
    3754
    Versione Office
    2013
    Likes ricevuti
    1138
    Likes dati
    872

    Re: Ciclo cerca valore in altro foglio

    Citazione Originariamente Scritto da nessi Visualizza Messaggio
    Grazie mille Cromagno, non ho capito cosa intendi ...
    Ciao,
    per "indentare" si intende mettere gli spazi nelle varie righe di codice in modo da capire al volo dove inizia/finisce ad esempio un ciclo o comunque distinguere le varie istruzioni in modo da identificarle subito in caso di modifiche.

    "Sono le persone che nessuno immagina che possano fare certe cose, quelle che fanno cose che nessuno può immaginare."

  6. I seguenti utenti hanno dato un "Like"


  7. #5
    L'avatar di nessi
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Milano
    Età
    53
    Messaggi
    153
    Versione Office
    2013/2016
    Likes ricevuti
    3
    Likes dati
    32

    Re: Ciclo cerca valore in altro foglio

    Citazione Originariamente Scritto da cromagno Visualizza Messaggio
    Ciao,
    per "indentare" si intende mettere gli spazi nelle varie righe di codice in modo da capire al volo dove inizia/finisce ad esempio un ciclo o comunque distinguere le varie istruzioni in modo da identificarle subito in caso di modifiche.
    grazie mille!

Discussioni Simili

  1. Risposte: 2
    Ultimo Messaggio: 28/02/17, 20:47
  2. Riferimento a celle di altro foglio a prescindere dal nome del foglio
    Di Matteo2017 nel forum Domande su Excel in generale
    Risposte: 20
    Ultimo Messaggio: 18/02/17, 20:01
  3. Copia dati da un foglio a un altro foglio
    Di bassotto nel forum Domande su Excel VBA e MACRO
    Risposte: 2
    Ultimo Messaggio: 08/12/16, 15:50
  4. Risposte: 18
    Ultimo Messaggio: 22/09/16, 01:23
  5. Copiare righe da un foglio all'altro in base ad un valore
    Di lucas22f nel forum Domande su Excel VBA e MACRO
    Risposte: 23
    Ultimo Messaggio: 13/07/16, 16:44

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •