[Risolto]MSG BOX

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

[Risolto]MSG BOX

Messaggio da Alelon »

Domandina.......
intanto buongiorno a tutti.
Mi dite come si crea un msg box?
vorrei che scegliendo uno specifico testo, da un menu a tendina ( dati/validita) apparisse un msg box.
Grazie
Ultima modifica di Alelon il lunedì 2 gennaio 2023, 19:29, modificato 1 volta in totale.
OpenOffice 4.1.13
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: MSG BOX

Messaggio da Gaetanopr »

Ciao Alelon ci sei mancato :D
Proprio come hai scritto tu, ti dò un consiglio, prima di aprire argomenti consulta la guida in linea di OpenOffice/LibreOffice, oppure fai una ricerca sul forum dove troverai molte risposte.
Se avessi cercato sulla guida in linea avresti trovato questo
https://help.libreoffice.org/7.2/it/tex ... _id3156442
Però il messaggio compare solo in caso di errore, se invece vuoi farlo apparire al selezionare di un determinato valore devi ricorrere ad una macro sfruttando l'evento modificato che ben conosci :super:
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Alelon
Messaggi: 245
Iscritto il: venerdì 12 novembre 2021, 19:46

Re: MSG BOX

Messaggio da Alelon »

Ciao gaetano....anche tu mi sei mancato :D
ora ci smanetto un po e ti faccio sapere....
all'evento contenuto modificato, ho gia associata la macro che mi hai dato tu, per nascondere righe e colonne......
come faccio per associare la seconda macro?
Ps: ti ho scritto in pvt.
OpenOffice 4.1.13
Alelon
Messaggi: 245
Iscritto il: venerdì 12 novembre 2021, 19:46

Re: MSG BOX

Messaggio da Alelon »

allego un file
vorrei che se si sceglie "essenza lignea" appaia in msg box che pigiando ok rimandi al foglio 2, per controllare il costo e eventualmente modificarlo.
PS: il documento lo devo ancora completare.
Allegati
configuratore armadioprova.ods
(19.3 KiB) Scaricato 72 volte
OpenOffice 4.1.13
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: MSG BOX

Messaggio da patel »

Alelon ha scritto: venerdì 30 dicembre 2022, 12:02 all'evento contenuto modificato, ho gia associata la macro che mi hai dato tu, per nascondere righe e colonne......
come faccio per associare la seconda macro?
Come già detto in altre discussioni, la macro associata deve essere una sola, in questa dovrai inserire degli IF in modo da scegliere l'azione da fare in base alla voce selezionata.
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Alelon
Messaggi: 245
Iscritto il: venerdì 12 novembre 2021, 19:46

Re: MSG BOX

Messaggio da Alelon »

Perdonami ma non capisco....
Me se all'evento contenuto modificato associo questa futura macro, quella che ho già associata,come faccio a farla funzionare?
OpenOffice 4.1.13
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: MSG BOX

Messaggio da Gaetanopr »

Alelon ha scritto: venerdì 30 dicembre 2022, 13:12 Perdonami ma non capisco....
Me se all'evento contenuto modificato associo questa futura macro, quella che ho già associata,come faccio a farla funzionare?
Rispondendo in questo modo ci devi spiegare perchè hai messo risolto a questoviewtopic.php?t=11922 altrimenti ci prendi in giro
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Alelon
Messaggi: 245
Iscritto il: venerdì 12 novembre 2021, 19:46

Re: MSG BOX

Messaggio da Alelon »

patel ha scritto: venerdì 30 dicembre 2022, 12:39
Alelon ha scritto: venerdì 30 dicembre 2022, 12:02 all'evento contenuto modificato, ho gia associata la macro che mi hai dato tu, per nascondere righe e colonne......
come faccio per associare la seconda macro?
Come già detto in altre discussioni, la macro associata deve essere una sola, in questa dovrai inserire degli IF in modo da scegliere l'azione da fare in base alla voce selezionata.
Per questo!
Non prendo in giro nessuno.
Se mi si dice che deve essere una sola .......
OpenOffice 4.1.13
Alelon
Messaggi: 245
Iscritto il: venerdì 12 novembre 2021, 19:46

Re: MSG BOX

Messaggio da Alelon »

È stato un malinteso.
Tanto è vero che se guardi il file che ho allegato, ci sono 2 macro . La seconda temporaneamente disabilitata tramite gli apici.
OpenOffice 4.1.13
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: MSG BOX

Messaggio da patel »

Una cosa del genere

Codice: Seleziona tutto

Sub evento(Target) 
    If Not Target.supportsService("com.sun.star.sheet.SheetCell") then exit sub
    Sh = Target.getSpreadsheet()
    oCellT() = Split(Target.AbsoluteName, ".")
    oCellTarget = oCellT(1)
    If oCellTarget = "$F$10" Or oCellTarget = "$I$10" Then
       If Sh.getCellRangeByName("$F$10").String = "Battente" And Sh.getCellRangeByName("$I$10").String = "Premiapri" Then 
          Visibile = False
       else 
          Visibile =  True
       End if         
       for i = 11 to 13       
          Sh.Columns(i).IsVisible = Visibile
       next i 
       Sh.Rows(21).IsVisible = Visibile
     End if 
     ' -------- qui la nuova condizione ---------- senza avere 2 macro  
     If oCellTarget = "$C$10"  And Sh.getCellRangeByName("$C$10").String = "Essenza lignea" Then 
        ' la tua mgbox <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
     End if  
End Sub
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: MSG BOX

Messaggio da Gaetanopr »

Non hai bisogno di una macro nella macro per nascondere la riga 21, non ha senso ripetere lo stesso codice 2 volte, ti basta aggiungere le cose da fare una dopo l'altra

Codice: Seleziona tutto

for i = 11 to 13       
          Sh.Columns(i).IsVisible = Visibile
       next i 
       Sh.Rows(21).IsVisible = Visibile
patel infatti ti ha corretto il codice inserendo la nuova istruzione dopo il ciclo for per nascondere le colonne, inoltre se la riga da nascondere è una sola ti basta indicarla senza l'uso di un ciclo.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Alelon
Messaggi: 245
Iscritto il: venerdì 12 novembre 2021, 19:46

Re: MSG BOX

Messaggio da Alelon »

Gaetanopr ha scritto: venerdì 30 dicembre 2022, 16:13 Non hai bisogno di una macro nella macro per nascondere la riga 21, non ha senso ripetere lo stesso codice 2 volte, ti basta aggiungere le cose da fare una dopo l'altra

Codice: Seleziona tutto

for i = 11 to 13       
          Sh.Columns(i).IsVisible = Visibile
       next i 
       Sh.Rows(21).IsVisible = Visibile
patel infatti ti ha corretto il codice inserendo la nuova istruzione dopo il ciclo for per nascondere le colonne, inoltre se la riga da nascondere è una sola ti basta indicarla senza l'uso di un ciclo.
Una cosa mi era riuscita!!!!!
Ne ero orgoglioso.
credevo di aver risolto una cosa complicata....
immaginavo comunque che quello che avevo fatto era un po un esagerazione.
ma visto che funzionava non ho voluto chiedere.
OpenOffice 4.1.13
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: MSG BOX

Messaggio da Gaetanopr »

Ti spiego meglio la macro
-

Codice: Seleziona tutto

If oCellTarget = "$F$10" Or oCellTarget = "$I$10" Then
la variabile oCellTarget è la cella che viene modificata e che genera l'evento, significa: Se oCellTarget = "$F$10 oppure oCellTarget = "$I$10" fai quello che segue.
- Una volta verificatosi le ipotesi, si procede con quanto segue.
- Nel tuo caso va a verificare se la cella

Codice: Seleziona tutto

Sh.getCellRangeByName("$F$10").String = "Battente"
e se la cella

Codice: Seleziona tutto

And Sh.getCellRangeByName("$I$10").String = "Premiapri" 
allora se la verifica è positiva il codice a seguire va a nascondere le colonne e le righe altrimenti le visualizza.
Se per la stessa condizione devi eseguire diverse istruzioni la condizione o le condizioni ti basta indicarle solo una volta e a cascata scrivere il codice per le cose da fare.
- Nel caso del msgbox la condizione è diversa dalla prima quindi occorre un’altra verifica

Codice: Seleziona tutto

If oCellTarget = "$C$10"  And Sh.getCellRangeByName("$C$10").String = "Essenza lignea" Then
e in caso positivo si eseguono tutte le istruzioni del caso.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Alelon
Messaggi: 245
Iscritto il: venerdì 12 novembre 2021, 19:46

Re: MSG BOX

Messaggio da Alelon »

Questa tua risposta per me e' preziosa ....
grazie per la pazienza che hai nei miei confronti...
Ho inserito la msg box.
ma non ho idea del codice da scrivere per far si che pigiando ok ,si venga rimandati al foglio 2.
se mi dai un input magari ci provo..
Allegati
configuratore armadioprova.ods
(19.37 KiB) Scaricato 54 volte
OpenOffice 4.1.13
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: MSG BOX

Messaggio da Gaetanopr »

Alelon ha scritto: venerdì 30 dicembre 2022, 16:57 ma non ho idea del codice da scrivere per far si che pigiando ok ,si venga rimandati al foglio 2.
se mi dai un input magari ci provo..[attachment=0]configuratore armadioprova.ods
Come detto prima, usa il forum come motore di ricerca queste tue domande sono state trattate tante volte, ti aiuto... cerca setActiveSheet.
Attendiamo file funzionante
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Alelon
Messaggi: 245
Iscritto il: venerdì 12 novembre 2021, 19:46

Re: MSG BOX

Messaggio da Alelon »

 Editato: Citazione post precedente soppressa perchè inutille (Admin) 
Non ci credo!
Allegati
configuratore armadi.ods
(19.84 KiB) Scaricato 64 volte
OpenOffice 4.1.13
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: MSG BOX

Messaggio da Gaetanopr »

Funziona, ma non ci siamo, non hai ascoltato i miei consigli e quelli di patel, hai ripetuto 2 volte la stessa verifica

Codice: Seleziona tutto

 If oCellTarget = "$C$10"  And Sh.getCellRangeByName("$C$10").String = "Essenza lignea" Then
questo lo hai scritto due volte, quando io invece ti avevo detto ↓
Gaetanopr ha scritto: venerdì 30 dicembre 2022, 16:39 Se per la stessa condizione devi eseguire diverse istruzioni la condizione o le condizioni ti basta indicarle solo una volta e a cascata scrivere il codice per le cose da fare.
- Nel caso del msgbox la condizione è diversa dalla prima quindi occorre un’altra verifica

Codice: Seleziona tutto

If oCellTarget = "$C$10"  And Sh.getCellRangeByName("$C$10").String = "Essenza lignea" Then
e in caso positivo si eseguono tutte le istruzioni del caso.
Hai usato una macro registrata che va bene pure, ma prova ad usare il metodo setActiveSheet
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Alelon
Messaggi: 245
Iscritto il: venerdì 12 novembre 2021, 19:46

Re: MSG BOX

Messaggio da Alelon »

Va bene...
Un passettino alla volta.
2 cose...: Se volessi,una volta dato ok,tornare automaticamente,al foglio 1?

La seconda: non riesco ad aggiungere un foglio , pigiando TX dx in basso a sx, non mi dà la possibilità di aggiungere....
Dipende dalla macro? Non credo.
Grazie.
OpenOffice 4.1.13
Gaetanopr
Volontario
Volontario
Messaggi: 3316
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: MSG BOX

Messaggio da Gaetanopr »

Alelon ha scritto: venerdì 30 dicembre 2022, 20:39 Va bene...
Un passettino alla volta.
2 cose...: Se volessi,una volta dato ok,tornare automaticamente,al foglio 1?
Certe tue domande non le capisco....allo stesso modo di come sei riuscito ad andare al foglio2 anche se non capisco la logica, se spunta la msgbox e vai al secondo foglio a cosa serve ritornare immediatamente al primo foglio.....
Alelon ha scritto: venerdì 30 dicembre 2022, 20:39 La seconda: non riesco ad aggiungere un foglio , pigiando TX dx in basso a sx, non mi dà la possibilità di aggiungere....
Dipende dalla macro? Non credo.
Grazie.
Togli la protezione al documento
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Alelon
Messaggi: 245
Iscritto il: venerdì 12 novembre 2021, 19:46

Re: MSG BOX

Messaggio da Alelon »

Scusami, in effetti è vero, se torno al primo foglio , non posso modificare il prezzo.
OpenOffice 4.1.13
Alelon
Messaggi: 245
Iscritto il: venerdì 12 novembre 2021, 19:46

Re: MSG BOX

Messaggio da Alelon »

Buongiorno ...ci sto sbattendo la testa da una mattinata...ma niente,non riesco.
vorrei duplicare la macro che rimanda al foglio 2.
cio'e' vorrei che se in un altra cella scrivo "pippo" mi rimandi al foglio 2.( prima che voi mi mandate......Grazie)
OpenOffice 4.1.13
patel
Volontario attivo
Volontario attivo
Messaggi: 4030
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: MSG BOX

Messaggio da patel »

Supponendo che l'atra cella sia Z1

Codice: Seleziona tutto

Sub evento(Target) 
    If Not Target.supportsService("com.sun.star.sheet.SheetCell") then exit sub
    Sh = Target.getSpreadsheet()
    oCellT() = Split(Target.AbsoluteName, ".")
    oCellTarget = oCellT(1)
    If oCellTarget = "$F$10" Or oCellTarget = "$I$10" Then
       If Sh.getCellRangeByName("$F$10").String = "Battente" And Sh.getCellRangeByName("$I$10").String = "Premiapri" Then 
          Visibile = False
       else 
          Visibile =  True
       End if         
       for i = 11 to 13       
          Sh.Columns(i).IsVisible = Visibile
       next i 
       Sh.Rows(21).IsVisible = Visibile
     End if 
     ' -------- qui la seconda condizione ------  
     If oCellTarget = "$C$10"  And Sh.getCellRangeByName("$C$10").String = "Essenza lignea" Then 
        ' la tua mgbox e il codice per andare sul foglio2<<<<<<<<<<<<<<<<<<
     End if  
     ' -------- qui la terza condizione   
     If oCellTarget = "$Z$1"  And Sh.getCellRangeByName("$Z$1").String = "PIPPO" Then 
        ' copi il codice per andare sul foglio2 <<<<<<<<<<<<<<
     End if  

End Sub
-------------------
Libre Office 7.5.3.2 su Windows 11
allega un file di esempio, guadagnerai tempo tu e lo farai risparmiare a chi ti aiuta
Alelon
Messaggi: 245
Iscritto il: venerdì 12 novembre 2021, 19:46

Re: MSG BOX

Messaggio da Alelon »

da completare......
nel foglio 3 creero una lista di accessori da aggiungere.
grazie di cuore per la gentilezza.TANTA!!
configuratore armadi.ods
(34 KiB) Scaricato 75 volte
OpenOffice 4.1.13
Rispondi