> Intanto ho pensato a come rigenerare la macro degenerata... :-)
Bart, nella macro che hai postato sotto ci sono un paio di errori
grossi: uno mio che ho sottovalutato il problema (in realtà buona parte
di quello che ho scritto serve a risolvere solamente casi particolari)
ed uno tuo che credo (spero) derivi da un qualche copia&incolla fatto a
cuor leggero ;-)
> (io intanto l'inserisco nell'aggiornamento di Ultimus)
Se ci hai messo proprio questa ho paura che sei tornato indietro di un
passo... :-)
> REM ***** BASIC *****
> Sub Che_Digerisce_Quasi_Tutto_e_Lo_Converte_In_Numeri()
> [...]
> if (iPosizionePrimoPunto = 0_
> and iPosizionePrimaVirgola = 0) then
Gli errori miei iniziano dalla riga qui sotto.
Questa riga, come le altri simili, contiene implicito il presupposto che
vi siano solo 2 separatori delle migliaia in ogni stringa e mai di più...
> if InStr(iPosizionePrimaVirgola + 1, Tipo2) > 0 then
> [...]
> end sub
>
> Sub errore_stringa(oMycell, Tipo2)
> [...]
> End Sub
>
> Sub Copia_Stringa(oMycell,Tipo2)
> [...]
> End Sub
>
Il tuo errore inizia nella sub principale, ma è legato a questa
particolare function:
> function contieneTesto(byRef sTesto as string) as boolean
Questa non la esegui mai, quindi non andrai mai a verificare se la
stringa contiene del testo!!
Nella sub principale, invece, hai lasciato qualche pezzo della ricerca
(dimensionamenti e qualche assegnazione).
> dim sPaginaRiferimento as string
> dim oTextSearch as object
> Dim aSrcOpt As New com.sun.star.util.SearchOptions
>
> oTextSearch = CreateUnoService("com.sun.star.util.TextSearch")
>
> With aSrcOpt
> searchFlag = com.sun.star.util.SearchFlags.REG_EXTENDED
> algorithmType = com.sun.star.util.SearchAlgorithms.REGEXP
> searchString = lCase(".[A-Za-zéèòàçìù]")
Inoltre le tre righe sopra avevano un punto all'inizio: serviva!!! ;-)
.searchFlag = com.sun.star.util.SearchFlags.REG_EXTENDED
.algorithmType = com.sun.star.util.SearchAlgorithms.REGEXP
.searchString = lCase(".[A-Za-zéèòàçìù]")
In quest'ultima, errore mio, "lCase" non serve.
> End With
> oTextSearch.setOptions(aSrcOpt)
> aSearchResult = oTextSearch.searchForward(sTesto, 0,Len(sTesto) )
>
> if aSearchResult.subRegExpressions > 0 then
> v = true
_^^^
Qui non devi usare "v", ma "contieneTesto", cioè il nome della sub!! ;-)
> end if
> end function
Solo un ultimo appunto: lascia "option explicit" all'inizio del modulo,
se puoi, metà di questi errori li avresti scoperti durante l'esecuzione! ;-)
Ciao!
Emnuele.
P.S.
Sto ripensando un po' tutta la macro, mi ci vorrà un po'...
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]