[Risolto] macro funziona a singhiozzo

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
Alelon
Messaggi: 245
Iscritto il: venerdì 12 novembre 2021, 19:46

[Risolto] macro funziona a singhiozzo

Messaggio da Alelon »

Salve, allego un file con una macro capricciosa. La macro a volte funziona volte no e altre volte, seppur non associata a nessun evento, parte lo stesso.
Allegati
Preventivo - Copia1.ods
(14.2 KiB) Scaricato 77 volte
Ultima modifica di Alelon il giovedì 9 dicembre 2021, 20:06, modificato 5 volte in totale.
OpenOffice 4.1.13
bobo779256
Messaggi: 161
Iscritto il: mercoledì 2 maggio 2012, 16:05

Re: macro funziona a singhiozzo

Messaggio da bobo779256 »

Se non ho capito male, la macro dovrebbe verificare se D14 è compilata, se 'si' aumenta di 1 la cella D7
 Editato: si, ho sbagliato a scrivere, se 'no' aumenta di 1 D7 
Se è così secondo me dovresti modificare la riga

Codice: Seleziona tutto

If isEmpty(oCella) then
in

Codice: Seleziona tutto

If oCella = "" then
ed aggiungere .string a oCella, cioè:

Codice: Seleziona tutto

oCella=Sheet.getCellRangeByName("D14").string
isEmpty non verifica se nella cella specificata c'è qualcosa, ma, come da help:
Controlla se una variabile di tipo Variant contiene il valore Empty. Il valore Empty indica che la variabile non è inizializzata.
Ultima modifica di bobo779256 il sabato 4 dicembre 2021, 18:09, modificato 1 volta in totale.
OpenOffice 4.1.13 su Windows 10 PRO 64bit
Alelon
Messaggi: 245
Iscritto il: venerdì 12 novembre 2021, 19:46

Re: macro funziona a singhiozzo

Messaggio da Alelon »

Incrementa se non è compilata
OpenOffice 4.1.13
Alelon
Messaggi: 245
Iscritto il: venerdì 12 novembre 2021, 19:46

Re: macro funziona a singhiozzo

Messaggio da Alelon »

Potresti scrivere il codice corretto di tutta la macro?

Grazie
OpenOffice 4.1.13
bobo779256
Messaggi: 161
Iscritto il: mercoledì 2 maggio 2012, 16:05

Re: macro funziona a singhiozzo

Messaggio da bobo779256 »

Codice: Seleziona tutto

Sub IncrementaSalva
Dim Doc as object, Sheet as object, oCella as string
Doc = thiscomponent
Sheet = Doc.Sheets(0)
oCella=Sheet.getCellRangeByName("D14").string
If oCella = "" then
Sheet.getCellRangeByName("D7").Value =Sheet.getCellRangeByName("D7").Value +1
Doc.store()
Else
'trasforma in commento questo comando per non visualizzare il messaggio
msgbox "macro non esegue nulla."&chr(13)&"Trasforma in commento il comando presente nel codice responsabile di questo messaggio"
End if
End Sub
ed allego anche il tuo file d'esempio aggiustato
Allegati
Preventivo - Copia1-01.ods
(15.68 KiB) Scaricato 69 volte
OpenOffice 4.1.13 su Windows 10 PRO 64bit
Alelon
Messaggi: 245
Iscritto il: venerdì 12 novembre 2021, 19:46

Re: macro funziona a singhiozzo

Messaggio da Alelon »

Ti voglio bene. Funziona benissimo.
Grazie.
OpenOffice 4.1.13
bobo779256
Messaggi: 161
Iscritto il: mercoledì 2 maggio 2012, 16:05

Re: [Risolto] macro funziona a singhiozzo

Messaggio da bobo779256 »

Meglio così 8-)
OpenOffice 4.1.13 su Windows 10 PRO 64bit
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: [Risolto] macro funziona a singhiozzo

Messaggio da unlucky83 »

Fai attenzione
Ti avevo già segnalato che c’era quell’errore e ti avevo allegato il file corretto
viewtopic.php?f=9&t=11466#p65445
Hai fatto confusione con i file
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Alelon
Messaggi: 245
Iscritto il: venerdì 12 novembre 2021, 19:46

Re: [Risolto] macro funziona a singhiozzo

Messaggio da Alelon »

Verissimo.Avevi già risolto tutto.
Ho fatto un po' di confusione io con i file
OpenOffice 4.1.13
Avatar utente
unlucky83
Volontario
Volontario
Messaggi: 2355
Iscritto il: lunedì 7 gennaio 2013, 1:23
Località: Latina

Re: [Risolto] macro funziona a singhiozzo

Messaggio da unlucky83 »

Nessun problema. L’importante è che sia tutto chiaro. Grazie @bobo779256
LibO:Versione: 6.2.8.2
Build ID: 1:6.2.8~rc2-0ubuntu0.16.04.1- 32-bit
-
Se risolvi:
1. Condividi la soluzione qui con noi
2. Metti [Risolto] al titolo del primo messaggio come spiegato qui
Rispondi