Risultati da 1 a 25 di 25

Discussione: Metodo find non funziona



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

    Metodo find non funziona

    Buona sera, ho bisogno ancora di una mano.
    pe ril file in oggetto ho cercato di costruire una routine che mi cicli tutti i valori nella colonna A del foglio riepilogo che vada a cercara la corrispondenza nel foglio Sheet e mo copi i valori trovati su offet riga del valore trovato nella corrispondente riga del valore trovato.
    mi da errore "necessario oggetto" sulla riga 14
    Codice: 
    Valore.Offset(0, 7) = c.Offset(0, 2)
    potete darmi una mano anche 'stavolta?
    grazie mille in anticipo.
    File Allegati File Allegati

  2. #2
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3334
    Versione Office
    2013 PC
    Likes ricevuti
    481
    Likes dati
    49

    Re: Metodo find non funziona

    Citazione Originariamente Scritto da nessi Visualizza Messaggio
    Buona sera, ho bisogno ancora di una mano.
    pe ril file in oggetto ho cercato di costruire una routine che mi cicli tutti i valori nella colonna A del foglio riepilogo che vada a cercara la corrispondenza nel foglio Sheet e mo copi i valori trovati su offet riga del valore trovato nella corrispondente riga del valore trovato.
    mi da errore "necessario oggetto" sulla riga 14
    Codice: 
    Valore.Offset(0, 7) = c.Offset(0, 2)
    potete darmi una mano anche 'stavolta?
    grazie mille in anticipo.
    Forse ti sei incartato un po' nella spiegazione o meglio ancora sono io che non l'ho capita.

    perchè non metti quello che vuoi ottenere a mano e magari lo evidenzi di rosso

    Aspetto l'allegato.


    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  3. #3

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2807
    Versione Office
    Excel 2013
    Likes ricevuti
    1020
    Likes dati
    978

    Re: Metodo find non funziona

    Alla variabile "Valore" asstribuisci un valore di tipo Long, quindi Valore.Offset(0, 7)=xxxx da errore.
    prova così:
    Codice: 
    Sub A()
    Dim rng As Range, cell As Range
    Dim Valore, c
    Range("A2").Select
    Do Until IsEmpty(ActiveCell)
        Set Valore = ActiveCell
        Worksheets("Sheet").Activate
        With Range("A:A")
            Set c = .Find(Valore.Value)
        End With
        If c Is Nothing Then
            ActiveCell.Offset(1, 0).Select
        Else
            Valore.Offset(0, 7) = c.Offset(0, 2)
        End If
        Worksheets(Sheets.Count).Activate
        ActiveCell.Offset(1, 0).Select
    Loop
    End Sub

  4. #4

    L'avatar di alfrimpa
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Napoli
    Età
    64
    Messaggi
    6759
    Versione Office
    2013
    Likes ricevuti
    714
    Likes dati
    164

    Re: Metodo find non funziona

    Enzo ma perchè non scrivere anche per valore e c

    Dim as Range?
    Alfredo

    "Non esistono cose facili o difficili; esistono cose che si sanno e cose che non si sanno"

    "Solo due cose sono infinite: l'universo e la stupidità umana; riguardo l'universo ho ancora dei dubbi" (Albert Einstein)

  5. #5
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160

    Re: Metodo find non funziona

    Buona giornata, Nessi;
    dopo aver preso buona nota delle indicazioni proposte nelle Risposte precedenti, potresti provare il File in allegato nel quale ho cercato di interpretare la Tua Richiesta.

    Nel Foglio di lavoro "Riepilogo", ho utilizzato un Pulsante dedicato al Codice VBA "Analizza" testato fino a tre ricorrenze; ma, dovrebbe funzionare fino a cinque ricorrenze




    A disposizione.

    Buon ferragosto a Tutti.

    Giuseppe
    File Allegati File Allegati
    Windows XP Excel 2000 - Windows 10 Excel 2013

  6. I seguenti utenti hanno dato un "Like"


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

    Re: Metodo find non funziona

    Ciao a tutti, approfitto per augurare a tutti un buon Ferragosto (per chi ci tiene)

    In effetti mi accorgo di essermi incartato un po' nella spiegazione.
    Vorrebbe esser un semplice ciclo per cui per ogni valore in colonna A di "Riepilogo" deve essere cercato in "Sheet" per poi riportarmi in colonna F di Riepilogo quello che corrisponde in colonna B di "Sheet".
    File Allegati File Allegati

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

    Re: Metodo find non funziona

    Citazione Originariamente Scritto da GiuseppeMN Visualizza Messaggio
    Buona giornata, Nessi;
    dopo aver preso buona nota delle indicazioni proposte nelle Risposte precedenti, potresti provare il File in allegato nel quale ho cercato di interpretare la Tua Richiesta.

    Nel Foglio di lavoro "Riepilogo", ho utilizzato un Pulsante dedicato al Codice VBA "Analizza" testato fino a tre ricorrenze; ma, dovrebbe funzionare fino a cinque ricorrenze




    A disposizione.

    Buon ferragosto a Tutti.

    Giuseppe

    Grazie Giuseppe, scusa ma stavo rispondendo e ci siamo accavallati. ora guardo subito!

  9. #8
    L'avatar di Baloon_50
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Milano - Italy
    Età
    67
    Messaggi
    3334
    Versione Office
    2013 PC
    Likes ricevuti
    481
    Likes dati
    49

    Re: Metodo find non funziona

    Citazione Originariamente Scritto da nessi Visualizza Messaggio
    Ciao a tutti, approfitto per augurare a tutti un buon Ferragosto (per chi ci tiene)

    In effetti mi accorgo di essermi incartato un po' nella spiegazione.
    Vorrebbe esser un semplice ciclo per cui per ogni valore in colonna A di "Riepilogo" deve essere cercato in "Sheet" per poi riportarmi in colonna F di Riepilogo quello che corrisponde in colonna B di "Sheet".
    Ciao Nessi e buon ferragosto a te e a tutti gli altri

    per quanto hai specificato sopra, questa dovrebbe essere la soluzione.

    fammi sapere
    File Allegati File Allegati

    A volte basta usare parole inutili come “grazie” e “per favore” per rendere la vita più bella.
    (ELKonigsburg)
    Dice il saggio : "se vuoi essere aiutato devi metter l'allegato"
    (Nick Carter - Ten)

  10. I seguenti 2 utenti hanno dato un "Like" a Baloon_50 per questo post:


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

    Re: Metodo find non funziona

    Grazie a tutti!
    Piccola confessione: questa discussione è figlia di quest'altra: http://www.forumexcel.it/forum/7-dom...ltati-multipli
    sto cercando di far lavorare le ricerche senza formule ma con vba perchè essendo incluso in un contesto molto più ampio dove tutto funziona con una userform aperta, (a tratti 2, di cui una subordinata) con le formule diventa pesantissimo e si inventa risultati "a fantasia". Quindi il mio obiettivo era alleggerire il foglio più possibile dalle formule per ovviare a questo problema, in modo da poter lavorare con dati assoluti.
    in realtà la parte più pesante era quella della ricerca delle equivalenze che mi ha risolto egregiamente Giuseppe e che ora sto tentando di adattare.
    purtroppo non posso allegare il file originale su cui sto lavorando perchè è talmente zeppo di dati sensibili che ... sarebbe impossibile produrne uno pubblicabile.
    inoltre, poichè è il risultato di evoluzioni subordinate alle necessità emerse nel tempo, mi vergogno un pochino a pubblicarlo. Non è certo fenomeno di precisione e leggerezza.
    Ora ho moltissimo su cui lavorare.
    Ancora grazie mille a tutti e ... buona grigliata (per chi può)

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

    Re: Metodo find non funziona

    Citazione Originariamente Scritto da GiuseppeMN Visualizza Messaggio
    Buona giornata, Nessi;
    dopo aver preso buona nota delle indicazioni proposte nelle Risposte precedenti, potresti provare il File in allegato nel quale ho cercato di interpretare la Tua Richiesta.

    Nel Foglio di lavoro "Riepilogo", ho utilizzato un Pulsante dedicato al Codice VBA "Analizza" testato fino a tre ricorrenze; ma, dovrebbe funzionare fino a cinque ricorrenze




    A disposizione.

    Buon ferragosto a Tutti.

    Giuseppe

    Ciao GIuseppe, sai che ci sto provando un po' in vari modi ma non riesco a spostare il risultato delle equivalenze da C:G a P:T? significa certamente che non ho compreso l'applicazione.

  13. #11
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160

    Re: Metodo find non funziona

    Buona sera, Nessi;
    grazie della Tua Attenzione.

    Citazione Originariamente Scritto da nessi Visualizza Messaggio
    ... non riesco a spostare il risultato delle equivalenze da C:G a P:T ...
    Per quanto riguarda lo spostamento dei risultati dalle Colonne "C:G" alle Colonne "P:T", credo sia solo necessario modificare i riferimenti nei "Select Case".
    Voglio dire, i riferimenti:
    - 3
    - 4
    - 5
    - 6
    - 7
    indicano rispettivamente le Colonne:
    - C
    - D
    - E
    - F
    - G
    quindi le istruzioni:
    - Cells(NRc, 3)
    - Cells(NRc, 4)
    - Cells(NRc, 5)
    - Cells(NRc, 6)
    - Cells(NRc, 7)
    dovrebbero essere modificati nel sequente modo:
    - Cells(NRc, 16)
    - Cells(NRc, 17)
    - Cells(NRc, 18)
    - Cells(NRc, 19)
    - Cells(NRc, 20)
    Avevo già in animo di riportare in Forum il Codice VBA; ho preferito attendere per capire se la soluzione proposta potessere essere accettabile per le Tue esigenze.

    In realtà il non aver proposto in chiaro il Codice VBA, ha un'altro motivo:
    - la scelta di "Select Case" non è il massimo per il File proposto in Risposta #5
    Prima di essere cacciato a male parole da Forum per "indegnità" , stavo cercando di trovare un'alternativa; in questo momento non ho individuato una soluzione più professionale se non utilizzare una Matrice. Anche questa alternativa non mi soddisfa.

    L'unica cosa che è sicuramente possibile fare è rendere il contenuto di "Select Case" meno macchinoso utilizzando dei Cicli For Next.
    Nel caso questa risulti essere una soluzione accettabile, posso provvedere a testare quanto sopra e proporre un nuovo File o, almeno un Codice VBA un pò più "snello".

    Fammi sapere se ritieni opportuno approfondire; ovviamente, rimango a disposizione.



    Buona serata.

    Giuseppe
    Windows XP Excel 2000 - Windows 10 Excel 2013

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

    Re: Metodo find non funziona

    Citazione Originariamente Scritto da GiuseppeMN Visualizza Messaggio
    Buona sera, Nessi;
    grazie della Tua Attenzione.



    Per quanto riguarda lo spostamento dei risultati dalle Colonne "C:G" alle Colonne "P:T", credo sia solo necessario modificare i riferimenti nei "Select Case".
    Voglio dire, i riferimenti:
    - 3
    - 4
    - 5
    - 6
    - 7
    indicano rispettivamente le Colonne:
    - C
    - D
    - E
    - F
    - G
    quindi le istruzioni:
    - Cells(NRc, 3)
    - Cells(NRc, 4)
    - Cells(NRc, 5)
    - Cells(NRc, 6)
    - Cells(NRc, 7)
    dovrebbero essere modificati nel sequente modo:
    - Cells(NRc, 16)
    - Cells(NRc, 17)
    - Cells(NRc, 18)
    - Cells(NRc, 19)
    - Cells(NRc, 20)
    Avevo già in animo di riportare in Forum il Codice VBA; ho preferito attendere per capire se la soluzione proposta potessere essere accettabile per le Tue esigenze.

    In realtà il non aver proposto in chiaro il Codice VBA, ha un'altro motivo:
    - la scelta di "Select Case" non è il massimo per il File proposto in Risposta #5
    Prima di essere cacciato a male parole da Forum per "indegnità" , stavo cercando di trovare un'alternativa; in questo momento non ho individuato una soluzione più professionale se non utilizzare una Matrice. Anche questa alternativa non mi soddisfa.

    L'unica cosa che è sicuramente possibile fare è rendere il contenuto di "Select Case" meno macchinoso utilizzando dei Cicli For Next.
    Nel caso questa risulti essere una soluzione accettabile, posso provvedere a testare quanto sopra e proporre un nuovo File o, almeno un Codice VBA un pò più "snello".

    Fammi sapere se ritieni opportuno approfondire; ovviamente, rimango a disposizione.



    Buona serata.

    Giuseppe

    Caro GIuseppe ... "indegnità"??? ovviamente ti stavi rivolgendo ai guru del forum, giusto? io lo trovo davvero efficace e rapido. e di dati ne elabora parecchi.
    ho applicato quello che mi hai indicato ma c'è ancora qualcosa che non va. poichè gli esempi erano ovviamente semplificati ed avendo il riferimento in Riepilogo anzichè in colonna B come nell'esempio, in colonna C ho ritenuto giusto quotare il riferimento così NRc = 3 però si scombussola tutto. forse ache perchè in sheet invece di esser enella colonna B il riferimento per il matcing è in colonna BD. però qui mi fermo perchè ... sto scombinando tutto e confesso che ci ho capito pochino.
    File Allegati File Allegati

  15. #13
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160

    Re: Metodo find non funziona

    Buona sera, Nessi.
    Citazione Originariamente Scritto da nessi Visualizza Messaggio
    ... ho applicato quello che mi hai indicato ma c'è ancora qualcosa che non va. poichè gli esempi erano ovviamente semplificati ed avendo il riferimento in Riepilogo anzichè in colonna B come nell'esempio, in colonna C ho ritenuto giusto quotare il riferimento così NRc = 3 però si scombussola tutto. forse ache perchè in sheet invece di esser enella colonna B il riferimento per il matcing è in colonna BD. però qui mi fermo perchè ...
    Ho cercato di sistemare il Tuo File di Risposta #12; a solo titolo di esempio, ho anche modicato:
    - Case 1
    e
    - Case 2

    Case 3 e Case 4 andrebbero modificati di conseguenza.
    Gentilmente, fammi sapere se le modifiche sono state risolutive.



    Buona serata.

    Giuseppe
    File Allegati File Allegati
    Windows XP Excel 2000 - Windows 10 Excel 2013

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

    Re: Metodo find non funziona

    Grazie mille Giuseppe! è perfetto.
    solo una domanda: poichè i valori della colonna C li importo da un altro database, se rimuovo questa parte è un problema per il ciclo?
    Codice: 
    Codice: 
    If NRc < 2 Then NRc = 2
        Range(Cells(2, 16), Cells(NRc, 20)).ClearContents
            Cells(2, 3).FormulaLocal = "=SE.ERRORE(CERCA.VERT($A2;Sheet!$A:$BD;56;0);"""")"
        Cells(2, 3).Copy Range(Cells(2, 3), Cells(NRc, 3))
        Range(Cells(2, 3), Cells(NRc, 3)).Copy
        Range(Cells(2, 3), Cells(NRc, 3)).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        Cells(2, 3).Select
        Application.CutCopyMode = False

  17. #15
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160

    Re: Metodo find non funziona

    Buona giornata, Nessi.

    Citazione Originariamente Scritto da nessi Visualizza Messaggio
    ... poichè i valori della colonna C li importo da un altro database, se rimuovo questa parte è un problema per il ciclo?
    If NRc < 2 Then NRc = 2
    Range(Cells(2, 16), Cells(NRc, 20)).ClearContents
    Cells(2, 3).FormulaLocal = "=SE.ERRORE(CERCA.VERT($A2;Sheet!$A:$BD;56;0);"""")"
    Cells(2, 3).Copy Range(Cells(2, 3), Cells(NRc, 3))
    Range(Cells(2, 3), Cells(NRc, 3)).Copy
    Range(Cells(2, 3), Cells(NRc, 3)).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Cells(2, 3).Select
    Application.CutCopyMode = False
    devi solo considerare che le istruzioni:
    Codice: 
        NRc = Range("A" & Rows.Count).End(xlUp).Row
            If NRc < 2 Then NRc = 2
    sono fondamentali; quindi non possono essere cancellate; mentre, l'istruzione:
    Codice: 
     Range(Cells(2, 16), Cells(NRc, 20)).ClearContents
    provvede a cancellare tutti i Valori presenti nel Range "C2:T UltimoRecord"

    Nel caso in cui i Valori vengano importati tramite le Funzioni Copia / Incolla puoi tranquillamente cancellare la parte di Codice VBA:
    Codice: 
    Cells(2, 3).FormulaLocal = "=SE.ERRORE(CERCA.VERT($A2;Sheet!$A:$BD;56;0);"""")"
    Cells(2, 3).Copy Range(Cells(2, 3), Cells(NRc, 3))
    Range(Cells(2, 3), Cells(NRc, 3)).Copy
    Range(Cells(2, 3), Cells(NRc, 3)).Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    Cells(2, 3).Select
    In caso contrario, considera che i valori della colonna C vengono ricavati tramite la Funzione "CERCA.VERT".
    Nessun problema se i Valori risiedono in altro Database; basta modificare l'istruzione;
    Codice: 
    Cells(2, 3).FormulaLocal = "=SE.ERRORE(CERCA.VERT($A2;Sheet!$A:$BD;56;0);"""")"
    con i giusti riferimenti ad esempio, nel caso in cui i dati risiedano in un Foglio di lavoro presente nello stesso File:
    Codice: 
    Cells(2, 3).FormulaLocal = "=SE.ERRORE(CERCA.VERT($A2;NomeFoglio!$A:$BD;56;0);"""")"
    dove:
    - NomeFoglio sarà l'esatto nome del Foglio di lavoro nel quale risiedono i Valori
    - $A:$BD corrisponde al Range nel quale sono presenti i Valori
    - 56 è il riferimento nel quale cercare i Valori; nel nostro caso Colonna "BD"
    oppure:
    Codice: 
    Cells(2, 3).FormulaLocal = "=SE.ERRORE(CERCA.VERT($A2;'[NomeFile.xlsm]NomeFoglio'!$A:$BD;56;0);"""")"
    nel caso in cui i dati risiedano in un Foglio di lavoro presente in un File esterno.
    dove:
    - NomeFile sarà l'esatto nome del File nel quale risiedono i Valori
    - .xlsm è l'estensione del File esterno
    Considera che, dopo il reperimento dei Valori, anche se presenti in un File esterno, non avrai riferimenti al FileOrigine "NomeFile" in quanto, le istruzioni:
    Codice: 
        Range(Cells(2, 3), Cells(NRc, 3)).Copy
        Range(Cells(2, 3), Cells(NRc, 3)).Select
        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    provvedono a trasformare le Formule in Valori assoluti.



    A disposizione.

    Buon Lavoro e buona serata.

    Giuseppe
    Windows XP Excel 2000 - Windows 10 Excel 2013

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

    Re: Metodo find non funziona

    Grazie Giuseppe, per l'impegno che stai profondendo per aiutarmi.
    Purtroppo non comprendo cosa sto facendo.
    Soprattutto perchè importando la routine nel mio file non funziona.
    Scusa se propongo solo ora il contesto completo ma mi sono reso conto che è indispensabile ed ho fatto le ore piccole ieri per sgrossarlo il più possibile dai dati sensibili.
    in definitiva il foglio riepilogo mi serve per confrontare i dati di due database: sheet e output.
    scopo della cosa è quello di confrontarli per correggere gli errori di uno e dell'altro che sono delle estrazioni di due sistemi differenti. l'obiettivo è scoprire dove sono le differenze e correggerle in un secondo momento manualmente.
    la colonna A di riepilogo non è altro che la colonna A di output. mi serve il riscontro che le autorizzazioni di sheet corrispondano con output e poichè con il tempo sono state erroneamente duplicate che nel range P:T mi indichi quali.

    ho variato l'origine del cerca.vert riferendomi al foglio output ma non mi compila più il range P:T. ho pensato anche che fosse un problema di formato cella ma ... non mi funziona neanche così.
    inoltre non ho capito perchè le celle vengono bordate (se c'è un motivo non importa vanno benissimo anche così) e non si possono sbordare.
    File Allegati File Allegati

  19. #17
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160

    Re: Metodo find non funziona

    Buona giornata, Nessi.
    L'età è quella che è e, di certo, non mi aiuta ;temo di essermi perso!

    Ho riportato le "Autorizzazione output" in Colonna "C" e le "Autorizzazione sheet" in Colonna "J"
    Ho contato quante volte un Valore è presente nei rispettivi Fogli di lavoro.

    Voglio dire, il Codice:
    - EURMA201604155389
    è presente una sola volta nel Foglio di lavoro "Output"; Reference Number 212881
    mentre è presente due volte nel Foglio di lavoro "Sheet"; Reference Number 215018 e 212881

    il Codice:
    - EURMA201604064367
    è presente due volte nel Foglio di lavoro "Sheet"; Reference Number 214829 e 212112
    mentre no è presente una sola volta nel Foglio di lavoro "Output"

    A questo punto non so come procedere.

    I Reference Number da proporre nel range "P:T" in base a quale criterio vengono selezionati.


    A disposizione.

    Buon Lavoro e buona serata.

    Giuseppe
    Windows XP Excel 2000 - Windows 10 Excel 2013

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

    Re: Metodo find non funziona

    l'obiettivo è che se il valore in C corrisponde a J (ma posso evidanziarli con una semplice formattazione condizionale quando differenti tra loro) e in sheet ce ne sono due (o tre o più) mi serve che i corrispondenti in sheet colonna A siano riportati nel range P:T.
    Codice: 
    è presente una sola volta nel Foglio di lavoro "Output"; Reference Number 212881
    mentre è presente due volte nel Foglio di lavoro "Sheet"; Reference Number 215018 e 212881
    Più nel dettaglio:
    cerco riepilogo valore A3 in sheet colonna BD. se ce n'è uno solo non faccio nulla.
    se ne trovo un altro scrivo il valore corrispondente letto in colonna A (sheets("sheet").activecell.offset(0, -56) in P.
    se ne trova un secondo stessa cosa però me lo deve scrivere in riepilogo colonna Q
    e così via.

    lo scopo del mio precedente post era rilevare che nella routine ho solo cambiato l'origine dei dati da riportare in riepilogo colonna C che prima era preso dal foglio sheet colonna BD e funzionava bene. ora è preso da foglio output colonna C ma non funziona più.

  21. #19
    L'avatar di ggratis
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Lecce - Pisa
    Età
    45
    Messaggi
    737
    Versione Office
    Excel 2010
    Likes ricevuti
    257
    Likes dati
    215

    Re: Metodo find non funziona

    in effetti non sono chiarissime le condizioni di verifica...
    per cercare di capire i possibili problemi del file ho fatto qualche valutazione manuale concatenando e ordinando in un'unica colonna reference number e order # del foglio outpt; e CLAIM_ID e REPLACEMENT_AUTH_NO_MANUF del foglio sheet.
    Poi ho fatto anche la concatenazione inversa...
    qualcosa che non torna c'è!
    saluti
    gg
    File Allegati File Allegati

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

    Re: Metodo find non funziona

    un'ulteriore info per capire cosa mi serve:

    sheet e output sono due database distinti gestiti da due programmi diversi che si scambiano dati.
    la chiave primaria (quindi univoca) del database "output" è la colonna C (EURMAxxxxxx) quindi non duplicabile.
    la chiave primaria (quindi univoca) del database "sheet" è la colonna A (20xxxx) quindi non duplicabile.
    quello che sto cercando di sistemare quindi ho necessità di sapere è se ci sono duplicati in foglio Sheet colonna BD e a che chiave primaria (colonna A di sheet) corrispondono in modo da andare nel programma che gestisce database Sheet e correggerli.

    in "output" la chiave primaria l'ho messa in C perchè per altre operazioni correlate ho bisogno che in colonna A ci sia l'equivalente riferimento della chiave primaria di Sheet.

    scusate, non è semplice spiegarlo poichè ci sono parecchie variabili intrecciate tra loro. se riesco ad ottenere questo passaggio di accomunare le chiavi primarie di Sheet a quelle di output sono a più della metà dell'opera.
    Spero di essere stato più chiaro.

    Grazie mille ancora a tutti.

  23. #21
    L'avatar di Raffaele_53
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Binasco
    Età
    64
    Messaggi
    506
    Versione Office
    2007
    Likes ricevuti
    85
    Likes dati
    7

    Re: Metodo find non funziona

    Ciao a tutti
    Prova in questo modo (devo inventarmi un qualcosa di più veloce)
    Ps Se desideri altri dati in riepilogo fallo sapere

    Codice: 
    Option Explicit
    Sub Ricerca()
    Dim sh1 As Worksheet: Set sh1 = Worksheets("Riepilogo")
    Dim sh2 As Worksheet: Set sh2 = Worksheets("Sheet")
    Dim sh3 As Worksheet: Set sh3 = Worksheets("output")
    Dim Rr As Long, X As Long, Y As Long, Ur1 As Long, Ur2 As Long, Ur3 As Long
    Dim St1 As String, St2 As String, Rg As Object, Area3 As Range
    Application.ScreenUpdating = False
    Ur1 = sh1.Range("A" & Rows.Count).End(xlUp).Row
    Ur2 = sh2.Range("BD" & Rows.Count).End(xlUp).Row
    Ur3 = sh3.Range("C" & Rows.Count).End(xlUp).Row
    sh1.Range("C2:C" & Ur1).ClearContents
    Set Area3 = sh3.Range("A1:A" & Ur3)
        For X = 2 To Ur1
            Set Rg = Area3.Find(sh1.Cells(X, 1), LookIn:=xlValues, LookAt:=xlWhole)
            If Rg Is Nothing Then
                sh1.Cells(X, 3) = "N.D"
            Else
                sh1.Cells(X, 3) = sh3.Cells(Rg.Row, 3)
                Rr = 1
                For Y = 1 To Application.WorksheetFunction.CountIf(sh2.Range("BD1:BD" & Ur2), sh1.Cells(X, 3).Value)
                    Set Rg = sh2.Range(sh2.Cells(Rr, 56), sh2.Cells(Ur2, 56)).Find(sh1.Cells(X, 3), LookIn:=xlValues, LookAt:=xlWhole)
                    If Not Rg Is Nothing Then
                        sh1.Cells(X, 15 + Y) = sh2.Cells(Rg.Row, 1)
                        Rr = Rg.Row
                    End If
                Next Y
            End If
    Next X
    Set sh1 = Nothing
    Set sh2 = Nothing
    Set sh3 = Nothing
    Set Area3 = Nothing
    Application.ScreenUpdating = True
    MsgBox "fatto"
    End Sub

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

    Re: Metodo find non funziona

    Citazione Originariamente Scritto da Raffaele_53 Visualizza Messaggio
    Ciao a tutti
    Prova in questo modo (devo inventarmi un qualcosa di più veloce)
    Ps Se desideri altri dati in riepilogo fallo sapere

    Codice: 
    Option Explicit
    Sub Ricerca()
    Dim sh1 As Worksheet: Set sh1 = Worksheets("Riepilogo")
    Dim sh2 As Worksheet: Set sh2 = Worksheets("Sheet")
    Dim sh3 As Worksheet: Set sh3 = Worksheets("output")
    Dim Rr As Long, X As Long, Y As Long, Ur1 As Long, Ur2 As Long, Ur3 As Long
    Dim St1 As String, St2 As String, Rg As Object, Area3 As Range
    Application.ScreenUpdating = False
    Ur1 = sh1.Range("A" & Rows.Count).End(xlUp).Row
    Ur2 = sh2.Range("BD" & Rows.Count).End(xlUp).Row
    Ur3 = sh3.Range("C" & Rows.Count).End(xlUp).Row
    sh1.Range("C2:C" & Ur1).ClearContents
    Set Area3 = sh3.Range("A1:A" & Ur3)
        For X = 2 To Ur1
            Set Rg = Area3.Find(sh1.Cells(X, 1), LookIn:=xlValues, LookAt:=xlWhole)
            If Rg Is Nothing Then
                sh1.Cells(X, 3) = "N.D"
            Else
                sh1.Cells(X, 3) = sh3.Cells(Rg.Row, 3)
                Rr = 1
                For Y = 1 To Application.WorksheetFunction.CountIf(sh2.Range("BD1:BD" & Ur2), sh1.Cells(X, 3).Value)
                    Set Rg = sh2.Range(sh2.Cells(Rr, 56), sh2.Cells(Ur2, 56)).Find(sh1.Cells(X, 3), LookIn:=xlValues, LookAt:=xlWhole)
                    If Not Rg Is Nothing Then
                        sh1.Cells(X, 15 + Y) = sh2.Cells(Rg.Row, 1)
                        Rr = Rg.Row
                    End If
                Next Y
            End If
    Next X
    Set sh1 = Nothing
    Set sh2 = Nothing
    Set sh3 = Nothing
    Set Area3 = Nothing
    Application.ScreenUpdating = True
    MsgBox "fatto"
    End Sub
    Grazie mille Raffaele. in effetti è un po' lento. ciclo con 550 righe ci ha messo 25 minuti. Però visto le difficoltà può andare benissimo.
    Il risultato è esattamente quello che mi serviva.

    di nuovo grazie!

  25. #23
    L'avatar di GiuseppeMN
    Clicca e Apri
    Data Registrazione
    Oct 2015
    Località
    Mantova
    Messaggi
    864
    Versione Office
    2000 - 2013
    Likes ricevuti
    285
    Likes dati
    160

    Re: Metodo find non funziona

    Buona sera a Tutti.

    Niente da fare, Nessi; buio assoluto.

    Prova a verificare i valori nelle Colonne "C" e "J"; contestualmente, riporta manualmente i risultati che desideri nel Range "P:T".
    Solo dopo questa verifica, posso caire come procedere.

    Considera che le Colonne "E:F" mi sono servite solo per verifica; andranno cancellate.



    A disposizione.

    Buona serata.

    Giuseppe

    P.s. Dal Foglio di lavoro "Output", mi sembra di capire, che i dati provengono da SAP (In SAP Process); mi hai fatto tornare ai bei tempi quando ho potuto apprezzare tutte le opportunità offerte da SAP.

    Edit: Leggo solo ora che hai risolto con il Codice di Raffaele (che saluto); dimentica quanto sopra.
    File Allegati File Allegati
    Windows XP Excel 2000 - Windows 10 Excel 2013

  26. #24
    L'avatar di Raffaele_53
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Binasco
    Età
    64
    Messaggi
    506
    Versione Office
    2007
    Likes ricevuti
    85
    Likes dati
    7

    Re: Metodo find non funziona

    Permettimi un saluto a GiuseppeMN

    Con l'allegato del post16, 272 cicli da fare + ricerca&scrittura in colonna P + 15 doppi/tripli = 8 secondi
    Ps. Se hai formule sull'originale metti queste due righe inizio e fine
    Application.Calculation = xlCalculationManual
    Application.Calculation = xlCalculationAutomatic

    Pps. Dato che il dato che va a scrivere in P (mi sembra sia uguale alla colonna A)
    Codice senza ricerca&scrittura in colonna P = 2 secondi (verifica bene, che più veloce non riesco)

    Codice: 
    Option Explicit
    Sub Ricerca()
    Dim sh1 As Worksheet: Set sh1 = Worksheets("Riepilogo")
    Dim sh2 As Worksheet: Set sh2 = Worksheets("Sheet")
    Dim sh3 As Worksheet: Set sh3 = Worksheets("output")
    Dim Rr As Long, X As Long, Y As Long, Ur1 As Long, Ur2 As Long, Ur3 As Long, Tot As Long
    Dim Rg As Object, Area3 As Range
    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Ur1 = sh1.Range("A" & Rows.Count).End(xlUp).Row
    Ur2 = sh2.Range("BD" & Rows.Count).End(xlUp).Row
    Ur3 = sh3.Range("C" & Rows.Count).End(xlUp).Row
    sh1.Range("C2:C" & Ur1).ClearContents
    Set Area3 = sh3.Range("A1:A" & Ur3)
        For X = 2 To Ur1
            Set Rg = Area3.Find(sh1.Cells(X, 1), LookIn:=xlValues, LookAt:=xlWhole)
            If Rg Is Nothing Then
                sh1.Cells(X, 3) = "N.D"
            Else
                sh1.Cells(X, 3) = sh3.Cells(Rg.Row, 3)
                Rr = 1
                Tot = Application.WorksheetFunction.CountIf(sh2.Range("BD1:BD" & Ur2), sh1.Cells(X, 3).Value)
                If Tot > 1 Then
                For Y = 1 To Tot
                    Set Rg = sh2.Range(sh2.Cells(Rr, 56), sh2.Cells(Ur2, 56)).Find(sh1.Cells(X, 3), LookIn:=xlValues, LookAt:=xlWhole)
                    If Not Rg Is Nothing Then
                        sh1.Cells(X, 15 + Y) = sh2.Cells(Rg.Row, 1)
                        Rr = Rg.Row
                    End If
                Next Y
                End If
            End If
    Next X
    Set sh1 = Nothing
    Set sh2 = Nothing
    Set sh3 = Nothing
    Set Area3 = Nothing
    Application.ScreenUpdating = True
    Application.Calculation = xlCalculationAutomatic
    MsgBox "fatto"
    End Sub

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

    Re: Metodo find non funziona

    Grazie Raffaele! estremamente più rapida. 3 minuti e mezzo è un risultato estremamente soddisfacente.
    Ho avuto modo di avere una lunga chiacchierata con GiuseppeMN (che saluto) e che mi ha fatto notare alcuni dettagli non di poco conto in merito ad alcune magagne rilevate nei due database d'origine che non avevo notato. (experientia docet)
    Purtroppo sono ben più incasinati del previsto.
    Dovrò rivalutare i controlli partendo da una logica di confronto radicalmente diversa. Praticamente dovrò ripartire quasi da zero

    ottimo anche il consiglio di
    Codice: 
    Application.Calculation = xlCalculationManual
    Application.Calculation = xlCalculationAutomatic
    mi servirà per altre applicazioni.
    grazie a tutti.

Discussioni Simili

  1. [Risolto] Metodo add e i sui parametri con problemi grammaticali
    Di Gerardo Zuccalà nel forum Domande su Excel VBA e MACRO
    Risposte: 9
    Ultimo Messaggio: 07/02/17, 13:43
  2. Metodo migliore importare dati in una cella.
    Di svizzera nel forum Domande su Excel in generale
    Risposte: 0
    Ultimo Messaggio: 19/01/17, 15:52
  3. Problema con il metodo Union per un copia/incolla
    Di Lcbsm nel forum Domande su Excel VBA e MACRO
    Risposte: 2
    Ultimo Messaggio: 21/04/16, 17:19
  4. metodo di montecarlo
    Di corbysim nel forum Domande su Excel in generale
    Risposte: 1
    Ultimo Messaggio: 29/02/16, 09:07
  5. Problema con metodo SeriesCollection su Excel2010
    Di Atria91 nel forum Domande su Excel VBA e MACRO
    Risposte: 1
    Ultimo Messaggio: 22/11/15, 18:52

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
  •