Macro match function non esegue la ricerca

Ciao a tutti.
Ho appena fatto l’upgrade a LO 7.2.1.2 e in questo momento la funzione Match restituisce sempre la prima riga.
Se provo ad eseguirle la funzione inserendola all’interno della cella funziona. se la richiamo tramite macro no.
Avete un qualche suggerimento per capire se è un problema della funzione o di LO.
Fino a stamattina, prima di eseguire l’upgrade, il foglio di calcolo sul quale la macro è presente e sul quale operava, non ha mai riportato problemi.

Vorrei riuscire a ripristinarlo prima di pensare a fare un downgrade

Ciao! Sarebbe meglio allegare un file senza dati sensibili.
Comunque la funzione Match (Confronta!?) funziona così. Restituisce in base al criterio di ricerca sempre e solo la prima occorrenza.

Ho provato a replicare la funzione su un’altro foglio e funziona tutto correttamente. A questo punto non riesco a capire cosa esattamente non vada.

@gioh661
Untitled 2.ods (55.6 KB)
Qui ho caricato il file che da problemi, l’ho modificato per cancellare tutti i dati che non servono ed ho lasciato due file da cui acquisire i dati: Minuterie ed Accessori.
Se inserisci nel foglio ordini il Nome del CLiente lo trasfroma in maiuscolo ed aggiunge la data
Se inserisci un codice articolo (in questo caso da 1 a 132 e da 20000 a 20255) lui dovrebbe riempire i campi descrizione con la descrizione dell’articolo e successivamente altri campi semi nascosti…

In questo file mi restituisce un errore alla funzione vlookup e match (la funzione vlookup in realtà non è necessaria) nel file originale non restituisce nessun errore ma non funziona.

Ciao Grazie.
So che restituisce la prima occorrenza. Io lo utilizzo su un elenco di articoli, faccio una ricerca in base al codice dell’articolo, recupero la linea relativa ed estraggo tutti le colonne che mi interessano relative a quella riga.

Fino questa mattina, sia chiedessi di ricercarmi l’articolo 1024 (mi restituiva la riga 1022) sia richiedo l’articolo 20 (mi restituiva la 19), ma avevo un risultato corretto. Dopo l’aggiornamento indipendentemente dal codice articolo che richiedo, restituisce un risultato vuoto e di conseguenza mi prende la 1° riga.

Ora vedo se riesco a estrapolare la macro, perchè l’ho costrutita in modo che richiami, in base al codice inserito (altre SUB, acquisisca diverse Variabili statiche, controlli la presenza di alcuni fogli…) non è cosi semplice.

Era per chiedere se è una cosa che con questa versione di LO sia capitata o se devo provare a ricostruire tutto il percorso dei dati.

Volendo chiedere un info parallela:
Avendo queste due funzioni che creno rispettivamente le variabili MRange e Row:

Item=100
MRange=ThisComponent.Sheets.getByName("NomeFoglio").getCellRangeByName("B2:B9999")
Row=createUnoService("com.sun.star.sheet.FunctionAccess").callFunction("MATCH", Array(Item, MRange,0))

Avendo logicamente il foglio NomeFoglio che contiene nella colonna B una riga di intestazione ed i valori da 50 a 150 nelle rispettive righe, la funzione dovrebbe restituirmi il valore 101 come numero di riga giusto. Nel mio caso fino a questa mattina funzionava cosi, ora restituisce valore nullo.

Testato su due computer: Mac e Linux. Mac con la versione 7.xx linux con la versione 6.xx
Stessa macro. Su Mac non funziona su linux funziona, con la versione 7 non va, con la versione 6 funziona.

Perchè mi domando io??

Risolto.
Il problema non era nella funzione Match ma nel tipo di variabile inviata:
Se inviamo la variabile string chiedendo di cercare un valore su LO 7 non fa la conversione, mentre su LO6 è indifferente.
Poichè se richiedo un Match con target.string restituisce un risultato vuoto, tramite un ciclo if controllo se la variabile ritornata è vuota isEmpty() e ri eseguo la funzione Match con target.value