Problema con codice VBA



  • Problema con codice VBA
    di Kaos (utente non iscritto) data: 29/09/2014 23:00:53

    Salve a tutti ho un problema che non riesco a risolvere con del codice VBA, qualcuno sa dirmi perche il codice allegato si incasina se ci sono dei numeri con i separatori di miglia
    esempio:
    € 5.036,66 se c'è la seguente somma non viene trova
    € 5036,66 se c'è la seguente somma viene trova
    c'è una soluzione e far trovare i numeri con i separatori di migliaia.
    Spero che qualcuno sà come fare?
    Grazie
     
    Set RigaA = wbdest.Sheets(Foglio).Range(wbdest.Sheets(Foglio).Cells(8, 3), wbdest.Sheets(Foglio).Cells(Lr1, 3)).Find(sh1.Cells(12, 17), LookIn:=xlValues, LookAt:=xlWhole)
            If RigaA Is Nothing Then



  • di Zer0Kelvin data: 30/09/2014 07:16:45

    Ciao.
    Così, "a occhio" (una sola riga di codice è un pò pochino), direi che l'unica spiegazione è che il reale contenuto delle due celle è differente...
    Dovresti allegare un file di esempio che riproduca il problema.



  • di Kaos (utente non iscritto) data: 30/09/2014 12:43:38

    Allego i file di esempio il problema è:
    Se la cella contiene il valore € 5.132,85 il controllo Set RigaA non riconosce il valore, e come se non c'è niente
    mentre se la cella contiene il valore 5132,85 il controllo Set RigaA riconosce il valore ed esegue il test

    come posso risolvere il problema?

    Allego i file di esempio



  • di Luca73 data: 30/09/2014 13:22:38

    Non è un problema di VBA...
    E' un problema di Excel...
    Ho fatto alcune prove e in effetti non trova un valore o una formula scritta con i punti di divisione migliaia.






  • di Kaos (utente non iscritto) data: 30/09/2014 13:27:00

    non c'è un sistema per poter risolvere il problema?
    se non erro non trova neanche se c'è € 5132,85



  • di scossa data: 30/09/2014 14:33:06

    Ciao,

    ricordati che in VBA devi pensare nel formato originale dei dati e non nel formato localizzato (quindi 5132,85 è in realtà 5132.85).

    Per cui prova a cambiare

    ..... Find(sh1.Cells(12, 17), LookIn:=xlValues, LookAt:=xlWhole) ....

    in Find(CDbl(sh1.Cells(12, 17).Value), LookIn:=xlFormulas, LookAt:=xlWhole)



    scossa's web site
    Se tu hai una mela, ed io ho una mela, e ce le scambiamo, allora tu ed io abbiamo sempre una mela per uno.
    Ma se tu hai un'idea, ed io ho un'idea, e ce le scambiamo, allora abbiamo entrambi due idee. (George Bernard Shaw)

     
    Set RigaA = wbdest.Sheets(Foglio).Range(wbdest.Sheets(Foglio).Cells(8, 3), wbdest.Sheets(Foglio).Cells(Lr1, 3)).Find(CDbl(sh1.Cells(12, 17).Value), LookIn:=xlFormulas, LookAt:=xlWhole)



  • di Kaos (utente non iscritto) data: 30/09/2014 19:23:04

    Grazie Adesso funziona tutto a meraviglia!