[RISOLTO] Spin Button con macro up/down
[RISOLTO] Spin Button con macro up/down
Buon pomeriggio a tutti,
vorrei chiedere il vostro aiuto in quanto non sono riuscito a trovare una soluzione (e non so se a questo punto è fattibile proprio la risoluzione del problema...)
In pratica ho un file Calc che è già funzionante come macro e tutto.
Ho due pulsanti che lanciano due macro diverse: un pulsante aumenta il valore di una cella, l'altro pulsante lo diminuisce.
Vorrei sostituire,e snellire quindi anche il codice delle macro, i due pulsanti con un singolo spin button che avrà le stesse funzioni (aumenta / diminuisce). Il problema è che non riesco a trovare il modo di indicare la differenza di pressione delle freccie dello spin button e se associo la macro allo spin button, lui mi prende la pressione identica sia che premo la freccetta a destra o a sinistra.
In excel vba era presente la differenza fra spin up (e quindi aumenta) e spin down (e quindi diminuisce), ma non trovo il corrispettivo di openoffice.
Esiste un modo per differenziare nella macro la pressione spin button up e down?
Grazie mille!
Note aggiuntive: potrei associare lo spin button e collegarlo alle singole celle, il fatto è che il valore da aumentare / diminuire è dinamico nel senso che è estrapolato da una macro che ricerca tale valore nel secondo foglio. Ed anche per assurdo volessi utilizzare più spin button, dovrei inserirne circa per 300 celle!
Questo per spiegare come mai necessitavo di uno spin button a cui associare 2 macro diverse invece che collegarlo ad una cella
vorrei chiedere il vostro aiuto in quanto non sono riuscito a trovare una soluzione (e non so se a questo punto è fattibile proprio la risoluzione del problema...)
In pratica ho un file Calc che è già funzionante come macro e tutto.
Ho due pulsanti che lanciano due macro diverse: un pulsante aumenta il valore di una cella, l'altro pulsante lo diminuisce.
Vorrei sostituire,e snellire quindi anche il codice delle macro, i due pulsanti con un singolo spin button che avrà le stesse funzioni (aumenta / diminuisce). Il problema è che non riesco a trovare il modo di indicare la differenza di pressione delle freccie dello spin button e se associo la macro allo spin button, lui mi prende la pressione identica sia che premo la freccetta a destra o a sinistra.
In excel vba era presente la differenza fra spin up (e quindi aumenta) e spin down (e quindi diminuisce), ma non trovo il corrispettivo di openoffice.
Esiste un modo per differenziare nella macro la pressione spin button up e down?
Grazie mille!
Note aggiuntive: potrei associare lo spin button e collegarlo alle singole celle, il fatto è che il valore da aumentare / diminuire è dinamico nel senso che è estrapolato da una macro che ricerca tale valore nel secondo foglio. Ed anche per assurdo volessi utilizzare più spin button, dovrei inserirne circa per 300 celle!
Questo per spiegare come mai necessitavo di uno spin button a cui associare 2 macro diverse invece che collegarlo ad una cella
Ultima modifica di Plasmucci il lunedì 2 dicembre 2019, 10:33, modificato 1 volta in totale.
OpenOffice 4.1.5
Window 10 pro
Window 10 pro
Re: Spin Button con macro up/down
E' tutto possibile, ma devi allegare un tuo file di esempio con le varie macro e i spin button e spiegare da dove prelevare i valori di incremento e decremento.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Spin Button con macro up/down
Certamente!Gaetanopr ha scritto:E' tutto possibile, ma devi allegare un tuo file di esempio con le varie macro e i spin button e spiegare da dove prelevare i valori di incremento e decremento.
credevo esistesse un'istruzione precisa per la macro che magari mi sfuggiva, creo un file piccolo e veloce (quello originale è pieno di funzioni, celle, macro...) e lo invio!
OpenOffice 4.1.5
Window 10 pro
Window 10 pro
Re: Spin Button con macro up/down
Ecco il file contenente: il primo foglio che è un riepilogo della ricerca con i 2 pulsanti + e -, il secondo foglio che contiene la lista di tutti gli articoli.
Inserendo il codice nel primo foglio, in E3 riporta il quantitativo che trova tramite un cercavert nel foglio con tutti gli articoli.
Premendo il pulsante + o il pulsante meno succede che viene lanciata una delle 2 macro che: ricerca se il codice inserito è presente (in pratica fa un cercavert) e nel caso lo trova va ad aggiungere +1 o -1 al quantitativo dei pezzi. E logicamente viene aggiornata la lista nel secondo foglio.
é possibile quindi sostituire i 2 pulsanti e utilizzare uno spin button che fa esattamente le stesse procedure?
Grazie mille!
Inserendo il codice nel primo foglio, in E3 riporta il quantitativo che trova tramite un cercavert nel foglio con tutti gli articoli.
Premendo il pulsante + o il pulsante meno succede che viene lanciata una delle 2 macro che: ricerca se il codice inserito è presente (in pratica fa un cercavert) e nel caso lo trova va ad aggiungere +1 o -1 al quantitativo dei pezzi. E logicamente viene aggiornata la lista nel secondo foglio.
é possibile quindi sostituire i 2 pulsanti e utilizzare uno spin button che fa esattamente le stesse procedure?
Grazie mille!
- Allegati
-
- TEST.ods
- (19.09 KiB) Scaricato 113 volte
OpenOffice 4.1.5
Window 10 pro
Window 10 pro
Re: Spin Button con macro up/down
Ti allego tuo esempio con spin button, per funzionare basta dare al pulsante di selezione il nome della cella a cui è associata, nell'esempio B3, quindi se crei altri campi con altri spin button dagli il nome della cella da dove deve prelevare il codice da ricercare nel secondo foglio.
La macro và associata all'evento mouse dentro.
La macro và associata all'evento mouse dentro.
- Allegati
-
- TEST.ods
- (19.02 KiB) Scaricato 101 volte
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Spin Button con macro up/down
Accidenti che velocità!!!Gaetanopr ha scritto:Ti allego tuo esempio con spin button, per funzionare basta dare al pulsante di selezione il nome della cella a cui è associata, nell'esempio B3, quindi se crei altri campi con altri spin button dagli il nome della cella da dove deve prelevare il codice da ricercare nel secondo foglio.
La macro và associata all'evento mouse dentro.
Elegantissimo il fatto che bypassi la gestione dell'aumentare/diminuire tramite macro sul pulsante spin, lasciandolo quindi funzionare in maniera standard (e quindi associato ad una cella) ed usando la macro per ricercare il valore da modificare e passare poi il tutto alla relativa cella!! E la cosa geniale che mai avrei pensato è quella di usare l'evento mouse dentro!!! complimenti davvero!!
Adesso devo studiare il codice visto che hai usato molte funzioni che non conosco.
Per dovere di completezza ti chiedo però alcune info aggiuntive,se posso.
Alcune volte, e devo capire quando, mi presenta questo errore ma il funzionamento comunque rimane ok e non da problemi...da cosa può essere dovuto?
Mi è successo inoltre che nonostante avessi inserito un codice esistente, lo spin button non funzionava. Anche qui devo capire come mai...secondo te può dipendere dal fatto che alcuni valori da ricercare non sono numeri ma alfanumerici? Ad esempio codici come " 6460/T 998 ", oppure stò vaneggiando?!
Inoltre, e ti chiedo scusa delle mille domande, secondo te a livello estetico, con cosa potrei sostituire la semplice cella di ricerca del primo foglio (cella B3)? Se utilizzassi una casella di testo o un campo a maschera sarebbe problematico utilizzarli in maniera dinamica?
Io per ora non ti disturbo oltre, vado a studiare per bene come funziona la macro da te scritta! Ti aggiorno a mia volta su eventuali sviluppi o problematiche
OpenOffice 4.1.5
Window 10 pro
Window 10 pro
Re: Spin Button con macro up/down
Per la ricerca del codice nel foglio ho usato parte della tua macro, solitamente per questo tipo di ricerche uso altri metodi(quasi mail Do While) se il codice ricercato non è presente con la macro scritta in quel modo si ci ritrova in un loop infinito che porterà all'arresto del programma, ho modificato la macro per evitare ciò ed essere quindi più performante.
Saluti
Questo codice in realtà non è esistente, comunque ho inserito un menù a tendina nella cella B3 e ho creato un nome definito "codici" con la seguente area "$FENICE.$A$8:$A$240", scegliendo il codice dal menù a tendina non potrai sbagliare e in ogni caso se dovessi inserire un codice non esiste la macro ti avvertirà.Plasmucci ha scritto: Mi è successo inoltre che nonostante avessi inserito un codice esistente, lo spin button non funzionava. Anche qui devo capire come mai...secondo te può dipendere dal fatto che alcuni valori da ricercare non sono numeri ma alfanumerici? Ad esempio codici come " 6460/T 998 ", oppure stò vaneggiando?!
Saluti
- Allegati
-
- TEST.ods
- (19.95 KiB) Scaricato 102 volte
Ultima modifica di Gaetanopr il venerdì 29 novembre 2019, 10:11, modificato 1 volta in totale.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Spin Button con macro up/down
Avevo supposto anche io che un Do While non era la soluzione più bella ma mi pareva quella più immediata.Gaetanopr ha scritto:Per la ricerca del codice nel foglio ho usato parte della tua macro, solitamente per questo tipo di ricerche uso altri metodi(quasi mail Do While) se il codice ricercato non è presente con la macro scritta in quel modo si ci ritrova in un loop infinito che porterà all'arresto del programma, ho modificato la macro per evitare ciò ed essere quindi più performante.
Dalle mie prove, al momento, non sono mai incappato in un loop infinito e nel caso non venisse trovato il codice ricercato mi riporta al posto del quantitativo un #ND nella cella (che potrei sostituire con un testo doverso utilizzando un se.errore
Consiglieresti in linea generale di utilizzare ad esempio un For con dentro un IF che controlla se la condizione è rispettata? Come avresti agito tu (lo chiedo solamente per migliorare sia la tecnica che la forma, c'è sempre da imparare qualcosa di nuovo) ?
Per quanto riguarda invece l'errore OutOfBoundException sai da cosa può essere dovuto? Ho controllato anche con una ricerca online ma nella documentazione Open Office non spiega niente se non a grandi linee:
"This exception is thrown to indicate that a container has been accessed with an illegal index
The index is either negative or greater than or equal to the count of the elements."
Ed onestamente non capisco dove prende questo index maggiore del conteggio degli elementi visto che viene utilizzato un range specifico di celle...
Adesso controllo il tuo file aggiornato e ti ringrazio in anticipo, immagino sia perfetto e funzionale!
OpenOffice 4.1.5
Window 10 pro
Window 10 pro
Re: Spin Button con macro up/down
Invece no, sul foglio ti viene restituito #ND nella cella E3 se lanci la macro questa va in Loop (naturalmente non lanceresti la macro vedendo l'errore #ND)Plasmucci ha scritto: Avevo supposto anche io che un Do While non era la soluzione più bella ma mi pareva quella più immediata.
Dalle mie prove, al momento, non sono mai incappato in un loop infinito e nel caso non venisse trovato il codice ricercato mi riporta al posto del quantitativo un #ND nella cella (che potrei sostituire con un testo doverso utilizzando un se.errore
Consiglieresti in linea generale di utilizzare ad esempio un For con dentro un IF che controlla se la condizione è rispettata? Come avresti agito tu (lo chiedo solamente per migliorare sia la tecnica che la forma, c'è sempre da imparare qualcosa di nuovo) ?
Potresti usare For con dentro If va bene lo stesso per poche centinaia o migliaia di righe, come farei io è nell'esempio che ho postato.
In linea generale viene restituito quando si va fuori dal valore per la variabile in oggetto, sicuramente la macro sarà andata in loop e la variabile i avrà assunto un valore maggiore delle righe disponibili in Calc quindiPlasmucci ha scritto: Per quanto riguarda invece l'errore OutOfBoundException sai da cosa può essere dovuto? Ho controllato anche con una ricerca online ma nella documentazione Open Office non spiega niente se non a grandi linee:
Codice: Seleziona tutto
codice = Sh.GetCellByPosition(0, i).string
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Spin Button con macro up/down
Buongiorno!
ho finalmente scaricato il tuo file del quale ti ringrazio e posso affermare che adattandolo un attimo ottengo alla perfezione il risultato voluto.
Io ti ringrazio infinitamente Gaetanopr, sei stato gentilissimo e mi hai dato ottimi spunti per risolvere ed approfondire la cosa!!
Per quanto mi riguarda possiamo contrassegnarlo come risolto!
Un saluto
ho finalmente scaricato il tuo file del quale ti ringrazio e posso affermare che adattandolo un attimo ottengo alla perfezione il risultato voluto.
Io ti ringrazio infinitamente Gaetanopr, sei stato gentilissimo e mi hai dato ottimi spunti per risolvere ed approfondire la cosa!!
Per quanto mi riguarda possiamo contrassegnarlo come risolto!
Un saluto
OpenOffice 4.1.5
Window 10 pro
Window 10 pro
Re: [RISOLTO] Spin Button con macro up/down
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10