Pagina 1 di 1
[Risolto]MSG BOX
Inviato: venerdì 30 dicembre 2022, 11:30
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
Re: MSG BOX
Inviato: venerdì 30 dicembre 2022, 11:43
da Gaetanopr
Ciao Alelon ci sei mancato
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
Re: MSG BOX
Inviato: venerdì 30 dicembre 2022, 12:02
da Alelon
Ciao gaetano....anche tu mi sei mancato
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.
Re: MSG BOX
Inviato: venerdì 30 dicembre 2022, 12:19
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.
Re: MSG BOX
Inviato: venerdì 30 dicembre 2022, 12:39
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.
Re: MSG BOX
Inviato: venerdì 30 dicembre 2022, 13:12
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?
Re: MSG BOX
Inviato: venerdì 30 dicembre 2022, 15:37
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 questo
viewtopic.php?t=11922 altrimenti ci prendi in giro
Re: MSG BOX
Inviato: venerdì 30 dicembre 2022, 15:51
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 .......
Re: MSG BOX
Inviato: venerdì 30 dicembre 2022, 15:55
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.
Re: MSG BOX
Inviato: venerdì 30 dicembre 2022, 16:00
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
Re: MSG BOX
Inviato: venerdì 30 dicembre 2022, 16:13
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.
Re: MSG BOX
Inviato: venerdì 30 dicembre 2022, 16:25
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.
Re: MSG BOX
Inviato: venerdì 30 dicembre 2022, 16:39
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
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.
Re: MSG BOX
Inviato: venerdì 30 dicembre 2022, 16:57
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..
Re: MSG BOX
Inviato: venerdì 30 dicembre 2022, 17:06
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
Re: MSG BOX
Inviato: venerdì 30 dicembre 2022, 18:01
da Alelon
Editato: Citazione post precedente soppressa perchè inutille (Admin) |
Non ci credo!
Re: MSG BOX
Inviato: venerdì 30 dicembre 2022, 19:39
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
Re: MSG BOX
Inviato: venerdì 30 dicembre 2022, 20:39
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.
Re: MSG BOX
Inviato: venerdì 30 dicembre 2022, 21:30
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
Re: MSG BOX
Inviato: venerdì 30 dicembre 2022, 21:38
da Alelon
Scusami, in effetti è vero, se torno al primo foglio , non posso modificare il prezzo.
Re: MSG BOX
Inviato: sabato 31 dicembre 2022, 12:28
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)
Re: MSG BOX
Inviato: sabato 31 dicembre 2022, 15:52
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
Re: MSG BOX
Inviato: sabato 31 dicembre 2022, 16:30
da Alelon
da completare......
nel foglio 3 creero una lista di accessori da aggiungere.
grazie di cuore per la gentilezza.TANTA!!