Pagina 2 di 3
Re: Macro apre Form Dati
Inviato: lunedì 7 novembre 2016, 18:25
da patel
cliccando sui vari campi puoi vedere nella finestra delle proprietà se sono campi numerici o di testo e li puoi cambiare. Di questo devi tenere conto anche nella macro (vedi commenti)
Codice: Seleziona tutto
Private Sub cmdWriteCell
dim data as date
dim Cognome as String ' Var. testo
dim VENDITE as Currency, SERVIZIO1@, SERVIZIO2@
dim POS@, CONTANTI@, NONRISCOSSO@
' --- acquisizione dati dalla maschera
Cognome = dlg.getControl("TextField1").text ' LEGGO IL VALORE INSERITO DALL'UTENTE come testo
data = dlg.getControl("DateField1").text ' LEGGO IL VALORE INSERITO DALL'UTENTE come testo
VENDITE = dlg.getControl("NumericField1").value ' LEGGO IL VALORE INSERITO DALL'UTENTE come numero
SERVIZIO1@ = dlg.getControl("NumericField2").value ' LEGGO IL VALORE INSERITO DALL'UTENTE come numero
SERVIZIO2@ = dlg.getControl("NumericField3").value ' LEGGO IL VALORE INSERITO DALL'UTENTE
POS@ = dlg.getControl("NumericField4").value ' LEGGO IL VALORE INSERITO DALL'UTENTE
CONTANTI@ = dlg.getControl("NumericField5").value ' LEGGO IL VALORE INSERITO DALL'UTENTE
NONRISCOCCO@ = dlg.getControl("NumericField6").value ' LEGGO IL VALORE INSERITO DALL'UTENTE
' ------------------- ricerca dell'ultima riga
Sheet = ThisComponent.Sheets(0)
c = Sheet.createCursor
c.gotoEndOfUsedArea(false)
LastRow = c.RangeAddress.EndRow + 2
' ---------- riempimento della prima riga vuota
Sheet.getCellRangeByName("A" & LastRow).value = data
Sheet.getCellRangeByName("C" & LastRow).Value = VENDITE
Sheet.getCellRangeByName("D" & LastRow).Value = SERVIZIO1
Sheet.getCellRangeByName("E" & LastRow).Value = SERVIZIO2
Sheet.getCellRangeByName("F" & LastRow).Value = POS
Sheet.getCellRangeByName("G" & LastRow).Value = CONTANTI
Sheet.getCellRangeByName("H" & LastRow).Value = NONRISCOCCO
Sheet.getCellRangeByName("I" & LastRow).Value = Cognome ' qui è sbagliato perché value significa numero devi cambiare value con string
End sub
Re: Macro apre Form Dati
Inviato: lunedì 7 novembre 2016, 18:44
da sanraff
Hai ragione, infatti dopo alcuni tentativi ci sono arrivato anch'io solo però non ho capito una cosa,
1) Volendo fare accettare nel campo testo solo lettere e non numeri come posso fare?
2) Una volta cliccato sul tasto "Conferma" e volendo inserire nuovi dati, invece di chiudere e riaprire la maschera è possibile creare un sistema dove si mette a pulito tutto e ritorna il fuoco sul campo data?.
grazie
Re: Macro apre Form Dati
Inviato: lunedì 7 novembre 2016, 18:47
da patel
1) non lo so fare
2) basta aggiungere in fondo una serie di righe come questa
Codice: Seleziona tutto
dlg.getControl("TextField1").text = ""
dlg.getControl("NumericField1").text = ""
col campo data per ultimo, ma è anche inutile perché devi comunque cliccare sul calendario
Re: Macro apre Form Dati
Inviato: lunedì 7 novembre 2016, 19:48
da sanraff
Fatto test
La pulizia la fa, però il cursore sul campo data non ritorna.
Per il punto due, aspetto l'intervento di qualcun altro dopodiché metto risolto
Grazie cmq per il tuo prezioso aiuto
Re: Macro apre Form Dati
Inviato: lunedì 7 novembre 2016, 19:50
da sanraff
Chiedo scusa, mi son confuso, volevo dire per il punto uno
grazie
Re: Macro apre Form Dati
Inviato: lunedì 7 novembre 2016, 20:12
da patel
per riposizionare il fuoco
dlg.getControl("DateField1").setfocus()
per la prima domanda vedi
viewtopic.php?f=9&t=7873&sid=dd756fc342 ... fa463bb0ee
Re: Macro apre Form Dati
Inviato: martedì 8 novembre 2016, 21:32
da sanraff
Ciao patel, in base al tuo ultimo post ho fatto test tutto ok, solo che mentre facevo delle prove ho creato una tabella e mi sono accorto che i dati vengono inseriti al di fuori di questa.
Ho provato a cercare qualcosa sulla guida di Basic però non ho capito ugualmente come trascrivere la corretta riga di comando
E' possibile avere un ulteriore aiuto?, in allegato metto file per test
grazie
Re: Macro apre Form Dati
Inviato: mercoledì 9 novembre 2016, 12:00
da patel
il codice che hai usato per trovare l'ultima riga non funziona su tabelle con la griglia, devi usare questo
Codice: Seleziona tutto
LastRow = LastRowInColonna(Sheet,1) + 2
......
Function LastRowInColonna(oSheet As Object, Col As Long) As Long
Dim c As Object, oRangePiena As Object, LastRow As Long
c = oSheet.createCursor
c.gotoEndOfUsedArea(false)
LastRow = c.RangeAddress.EndRow
oRangePiena = oSheet.getCellRangeByPosition(Col, 0, Col, LastRow).queryContentCells(1+2+4).RangeAddresses
If Ubound(oRangePiena) < 0 Then
LastRowInColonna = - 1
Else
LastRowInColonna = oRangePiena(Ubound(oRangePiena)).EndRow
End if
End Function
Re: Macro apre Form Dati
Inviato: sabato 12 novembre 2016, 15:29
da sanraff
Buonasera patel, ho fatto test e sono andato leggermente avanti con questo file di esempio che mi sono inventato per capire come inserire e gestire i dati all'interno di una maschera di dialogo; infatti ho creato una maschera per la modifica ed una per la visualizzazione dei dati.
Tramite una combobox, vorrei richiamare i dati già inseriti, con la possibilità di visualizzarli oppure di modificarli.
Facendo una ricerca in rete, ho trovato un file di esempio simile, ho cercato di adattarlo al mio però non mi funziona.
In allegato riporto quello che sono riuscito a fare solo per la parte della modifica dei dati ( che però non funziona ), mentre per il "visualizza" non so come impostarla a meno ché, forse si potrebbe impostare la macro come quella realizzata per "modifica" omettendo il tasto conferma.
E' possibile avere un ulteriore aiuto?, grazie
Re: Macro apre Form Dati
Inviato: sabato 12 novembre 2016, 17:55
da patel
non fai abbastanza attenzione
Codice: Seleziona tutto
sub riempicombobox
Dim oDoc
Dim oSheet
Dim oCell
Dim a As String
oDoc = ThisComponent ' necessario
oSheet = oDoc.sheets(0) ' necessario
oComboBox.removeItems(0,oComboBox.getItemCount())
For i = 3 to 100 ' i dati iniziano dalla quarta riga
oCell = oSheet.getCellByPosition(1, i) ' la colonna con i nomi è la B
a = oCell.String
if a <> "" then
oComboBox.addItem(a, dlg.getControl("ComboBox1").ItemCount) ' List
end if
next i
End sub
Re: Macro apre Form Dati
Inviato: sabato 12 novembre 2016, 19:46
da sanraff
patel ha scritto:non fai abbastanza attenzione
Hai perfettamente ragione, ma questo è dovuto alla mia inesperienza
cmq nella sub text che assegno alla "combobox1 del dialog Modifica" mi da errore su questa stringa:
MyCounter = dlg.getControl("ComboBox1").selectedItemPos + 2
e non mi permette di proseguire.
Per quanto riguarda la procedura per il "visualizza" era giusta la mia intuizione?
sanraff ha scritto:mentre per il "visualizza" non so come impostarla a meno ché, forse si potrebbe impostare la macro come quella realizzata per "modifica" omettendo il tasto conferma.
ancora, grazie per il tuo supporto
Re: Macro apre Form Dati
Inviato: domenica 13 novembre 2016, 9:13
da patel
Il controllo combo non ha la proprieta selecteditem, ma solo text, quindi non puoi ottenere il numero di riga ma solo l'elemento selezionato, quindi per calcolare la riga occorre qualcosa del genere
Codice: Seleziona tutto
sub text
oDoc = ThisComponent
oSheet = oDoc.sheets(0) ' <<<< non dimenticartelo
item = oComboBox.text
For x = 0 to oComboBox.ItemCount - 1
If oComboBox.Items(x) = item Then
MyCounter = x+4
exit for
end if
next
dlg.getControl("TextField1").Text = oSheet.getCellRangeByName("B" & MyCounter).String 'Cognome ' <<<< quando una cosa funziona perché cambiarla ?
........
In alternativa potresti usare una listbox al posto della combo, la listbox dispone di selecteditem e selecteditempos.
N.B tieni presente quanto hai già fatto nelle sub di inserimento già funzionanti e collaudate
Re: Macro apre Form Dati
Inviato: domenica 13 novembre 2016, 18:19
da sanraff
ciao patel, senza questa tua macro e spiegazione, non ci sarei mai arivato e voglio continuare ad adottare la soluzione per la combobox.
Nel frattempo sono andato un pò avanti ed ho completato la parte per la visualizzazione dei dati, però facendo test, mi sono accorto che c'è ancora qualcosa che non va segue
1) Macro Apri Inserisci: il controllo che ho messo sull'inserimento dei dati non funziona correttamente, forse al posto del costrutto "If", ci vuole "Case", però non lo so scrivere
2) Macro Apri Modifica: non mi permette di modificare i dati, il tasto "Conferma" a chi lo deve associare perché avvenga questo?
3) Macro Apri Visualizza: è l'unica che mi funziona come vorrei, tranne per il fatto che i dati inerenti all'orario e la data, li vorrei posizionati al centro anzichè a sinistra; ho provato a cambiare le impostazioni da proprietà ma non funziona.
Poi volevo provare a fare una cosa presa come spunto da una tua antecedente macro scritta in un altro post, mi riferisco a rendere visibile e non visibile un campo, solo che io invece vorrei abilitare o disabilitare un campo, mi spiego:
nella macro apri modifica, l'unico campo abilitatato deve essere quello della combobox, poi dopo la scelta, i campi vengono abilitati tutti per rendere possibile la modifica.
Se mi spieghi come si scrive la stringa, poi io riprendendo la tua già proposta macro, potrei provare a scrivere la macro, così faccio pratica.
Ancora grazie per questo tuo prezioso aiuto
Re: Macro apre Form Dati
Inviato: domenica 13 novembre 2016, 19:11
da XLUPOGRIGIOX
Ciao a tutti,scusate se mi intrometto,ma sanraff se invece di usare 3 diversi dialoghi,non ne usi uno e poi in base ai pulsanti che premi o alle operazioni che devi fare cambi step o rendi visibili o invisibili determinati pulsanti?
Re: Macro apre Form Dati
Inviato: domenica 13 novembre 2016, 19:26
da patel
sanraff ha scritto:
1) Macro Apri Inserisci: il controllo che ho messo sull'inserimento dei dati non funziona correttamente, forse al posto del costrutto "If", ci vuole "Case", però non lo so scrivere
non ho capito di cosa parli
sanraff ha scritto:
2) Macro Apri Modifica: non mi permette di modificare i dati, il tasto "Conferma" a chi lo deve associare perché avvenga questo?
la devi scrivere la sub per la conferma, ad es.
Codice: Seleziona tutto
sub ScriviModifiche
oSheet.getCellRangeByName("B" & MyCounter).String = dlg.getControl("TextField1").Text
........
sanraff ha scritto:
Se mi spieghi come si scrive la stringa, poi io riprendendo la tua già proposta macro, potrei provare a scrivere la macro, così faccio pratica.
per nascondere un campo
Re: Macro apre Form Dati
Inviato: domenica 13 novembre 2016, 20:40
da sanraff
ciao XLUPOGRIGIOX, sei il benvenuto, però ti stai rivolgendo ad uno che per il momento sta imparando ad usare e gestire le macro, infatti se hai seguito un pò tutti questi post, ti sarai reso conto che patel mi sta dando una grandissima mano.
Ad ogni modo se a te non ti scoccia insegnarmi quest'altro metodo senza stravolgere il lavoro fin qui fatto ben venga, significa che mi darai la possibilità di imparare nuove cose.
Ritornando a te patel, se apri la macro "apri inserisci", all'interno ho messo un costruttto IF sul controllo dei campi che se non vengono tutti riempiti in fase di inserimento, lancia un messaggio di avviso. IL problema è che questa funzione non viene eseguita correttamente, infatti anche se i campi cono tutti riempiti e clicco sul tasto "conferma", il sistema mi lancia ugualmente il messaggio di avviso e non ho capito dove sbaglio.
2) La macro per eseguire la modifica ci provo a scriverla io dietro tuo suggerimento e poi vediamo
3) Macro "Apri Visualizza", come faccio a posizionare la visualizzazione dei dati in modo centrale all'etichetta e non spostato a sinistra?
grazie
Re: Macro apre Form Dati
Inviato: domenica 13 novembre 2016, 21:46
da XLUPOGRIGIOX
Ciao sanraff,usando le tue macro ho creato un unico modulo chiamato XLUPOX che apre il dialogo visualizza modificato da me.
Per aprirlo basta che clicchi sul pulsante creadialog XLUPOX.
Questo è solo uno spunto per te,per migliorare di più soprattutto grazie a Patel
Fammi sapere come ti sembra
Re: Macro apre Form Dati
Inviato: lunedì 14 novembre 2016, 7:45
da patel
sanraff ha scritto:
Ritornando a te patel, se apri la macro "apri inserisci", all'interno ho messo un costruttto IF sul controllo dei campi che se non vengono tutti riempiti in fase di inserimento, lancia un messaggio di avviso.
tu fai il controllo prima di assegnare alle variabili nome cognome ... i contenuti dei vari controlli, questo lo devi fare dopo
sanraff ha scritto:
3) Macro "Apri Visualizza", come faccio a posizionare la visualizzazione dei dati in modo centrale all'etichetta e non spostato a sinistra?
grazie
non so farlo
@lupo, l'ho notato anche io, ma mi sono astenuto dal farlo presente per non mettere troppa carne al fuoco, in effetti ci sono molte ripetizioni, mi riservavo di farlo notare alla fine del percorso.
Re: Macro apre Form Dati
Inviato: lunedì 14 novembre 2016, 20:34
da sanraff
ciao XLUPOGRIGIOX, ho visto il tuo lavoro, che dire è bellissimo però sicuramente non ai livelli di un principiante come me
Magari quando avrò finito il mio, come dice giustamente patel, emigrerò sul tuo così darò un aspetto sicuramente più accattivante.
Tornando a noi tu saresti in grado di risolvermi questo problema??
patel ha scritto:Macro "Apri Visualizza", come faccio a posizionare la visualizzazione dei dati in modo centrale all'etichetta e non spostato a sinistra?
grazie
patel ha scritto:non so farlo
grazie
Nel frattempo io sono andato avanti, ho scritto meglio il costrutto "If" nella macro "Apri Inserimento", poiché per come l'avevo fatto prima non funzionava correttamente e non si trattava solo della posizione, era proprio scritto male.
Poi sono riuscito a scrivere la macro per la modifica dei dati, però qui ho due problemi che non ho capito come risolverli, mi spiego partendo dal principio
1) Con la procedura "Inserisci i dati", il cognome e nome vengono riportati
in maiuscolo, perché è così che voglio nella tabella, ed il calcolo delle ore viene dopo l'acquisizione, viene svolto correttamente.
2) Se richiamo i dati dalla maschera "Modifica", e faccio un cambiamento al nome oppure cognome, la correzione avviene però viene riscritta in minuscolo e non maiuscolo, poi se faccio una correzione in qualsiasi campo "Ore", nella tabella viene riportato un formato diverso e mi sballo tutti calcoli "vedi ultima riga del file messo in allegato per fare test". E' tutto il pomeriggio che ci sbatto la testa ma non ho capito come risolvere la cosa

.
Poi volevo implementare la maschera "Modifica" di un nuovo tasto che ho chiamato "Nuova Ricerca", in realtà quest'ultimo dovrebbe funzionare in questo modo:
1) Faccio la prima ricerca ed al di là che modifico qualcosa, dopo aver cliccato sul tasto "Conferma", il tasto "Nuova Ricerca" viene abilitato.
2) Cliccando adesso su questo tasto dovrei attivare una funzione nella nuova macro chiamata "refresh" che oltre a rimettermi a pulito tutti i campi, mi dia la possibilità di richiamare nella "combobox Ricerca" i dati cambiati antecedentemente. Al momento questa cosa viene realizzata chiudendo e riaprendo la maschera, mentre mi farebbe piacere realizzarla in quest'altro modo.
Per il momento sono riuscito a realizzare solo il primo punto, per il secondo è possibile sapere come si fa.
Grazie
Re: Macro apre Form Dati
Inviato: lunedì 14 novembre 2016, 20:51
da patel
sanraff ha scritto:
2) Se richiamo i dati dalla maschera "Modifica", e faccio un cambiamento al nome oppure cognome, la correzione avviene però viene riscritta in minuscolo e non maiuscolo...
basta confrontare le 2 macro. in quella dell'inserimento hai utilizzato UCASE
sanraff ha scritto:
1) Faccio la prima ricerca ed al di là che modifico qualcosa, dopo aver cliccato sul tasto "Conferma", il tasto "Nuova Ricerca" viene abilitato.
2) Cliccando adesso su questo tasto dovrei attivare una funzione nella nuova macro chiamata "refresh" che oltre a rimettermi a pulito tutti i campi, mi dia la possibilità di richiamare nella "combobox Ricerca" i dati cambiati antecedentemente. Al momento questa cosa viene realizzata chiudendo e riaprendo la maschera, mentre mi farebbe piacere realizzarla in quest'altro modo.
non ho capito bene, io vedo che dopo aver cliccato su conferma non c'è bisogno di uscire ma è possibile fare una nuova ricerca tramite combo
Re: Macro apre Form Dati
Inviato: martedì 15 novembre 2016, 11:30
da sanraff
Ciao patel, l'avevo fatto il confronto fra le due macro, però in quella riferita alla "macro modifica" non so dove va piazzato correttamenre "UCase", infatti prima di riscrivere al forum avevo fatto un paio di tentativi ma tutti andati a non buon fine.
Poi come faccio a risolvere questa cosa non di poco conto?
sanraff ha scritto:2) Se richiamo i dati dalla maschera "Modifica", e faccio un cambiamento al nome oppure cognome, la correzione avviene però viene riscritta in minuscolo e non maiuscolo, poi se faccio una correzione in qualsiasi campo "Ore", nella tabella viene riportato un formato diverso e mi sballo tutti calcoli "vedi ultima riga del file messo in allegato per fare test". E' tutto il pomeriggio che ci sbatto la testa ma non ho capito come risolvere la cosa
E per finire
patel ha scritto:1) Faccio la prima ricerca ed al di là che modifico qualcosa, dopo aver cliccato sul tasto "Conferma", il tasto "Nuova Ricerca" viene abilitato.
2) Cliccando adesso su questo tasto dovrei attivare una funzione nella nuova macro chiamata "refresh" che oltre a rimettermi a pulito tutti i campi, mi dia la possibilità di richiamare nella "combobox Ricerca" i dati cambiati antecedentemente. Al momento questa cosa viene realizzata chiudendo e riaprendo la maschera, mentre mi farebbe piacere realizzarla in quest'altro modo.
patel ha scritto:non ho capito bene, io vedo che dopo aver cliccato su conferma non c'è bisogno di uscire ma è possibile fare una nuova ricerca tramite combo
Mi spiego meglio
Ammettiamo di aver cambiato il nome e cognome della seconda riga. Dopo aver modificato i parametri, cliccato sul tasto "Conferma" e lasciato aperta la maschera, se vado a ricercare dalla combobox i dati modificati, all'interno trovo in memoria sempre quelli vecchi e non quelli nuovi.
Esempio, io richiamo il nome minny e lo modifico con pluto, se non chiudo e riapro la maschera, nella combobox resta in memoria minny, quindi non mi dà la possibilità di capire se la modifica è stata acquisita, a meno che io non vado a ricercarla nella tabella sottostante, però immaginati di dover scorrere la visualizzazione di più di cento nomi, mi sembra una soluzione improponibile; quindi avevo pensato di creare un pulsante "Nuova Ricerca" e di adoperarlo per il "refresh", però non so come si scrive la macro.
Se non sono stato chiaro, prova a fare test, così ti rendi meglio conto, grazie
Re: Macro apre Form Dati
Inviato: martedì 15 novembre 2016, 12:53
da patel
sanraff ha scritto:l'avevo fatto il confronto fra le due macro, però in quella riferita alla "macro modifica" non so dove va piazzato correttamenre "UCase", infatti prima di riscrivere al forum avevo fatto un paio di tentativi ma tutti andati a non buon fine.
hai provato così ?
Codice: Seleziona tutto
sub ScriviModifiche
oDoc = ThisComponent
oSheet = oDoc.sheets(0)
oSheet.getCellRangeByName("B" & MyCounter).String = UCASE(dlg.getControl("TextField1").Text)
oSheet.getCellRangeByName("D" & MyCounter).String = UCASE(dlg.getControl("TextField2").Text)
oSheet.getCellRangeByName("F" & MyCounter).String = dlg.getControl("DateField1").Text
oSheet.getCellRangeByName("H" & MyCounter).String = dlg.getControl("TimeField1").Text
oSheet.getCellRangeByName("I" & MyCounter).String = dlg.getControl("TimeField2").Text
oSheet.getCellRangeByName("M" & MyCounter).String = dlg.getControl("TimeField3").Text
oSheet.getCellRangeByName("N" & MyCounter).String = dlg.getControl("TimeField4").Text
call riempicombobox
questa ti aggiorna anche la combo senza bisogno di uscire
Re: Macro apre Form Dati
Inviato: martedì 15 novembre 2016, 15:27
da sanraff
Ciao patel, si avevo provato in quel modo, commettendo l'errore di non posizionare correttamente le parentesi tonde, quindi il sistema mi dava errore
Per quanto riguarda l'istruzione "call riempicombobox", avevo provato ad inserirla nella sub del nuovo pulsante "Nuova Ricerca", solo che cliccando su di esso, invece di fare il refresh, mi chiudeva la maschera di dialogo, quindi ho tolto l'istruzione e sono andato a tentativi, ma con scarsi risultati.
Adesso dovrei risolvere solo questo problema
sanraff ha scritto:2) ..... poi se faccio una correzione in qualsiasi campo "Ore", nella tabella viene riportato un formato diverso e mi sballa tutti i calcoli "vedi ultima riga del file messo per fare test"
.
Hai qualche suggerimento in merito per risolvere il problema??.
Io ho già provato a modificare la formattazione all'interno della tabella, però se faccio così non mi prende correttamente i dati dalla maschera "Inserisci", se invece allineo quest'ultimi con la tabella, non mi prende bene quelli della maschera modifica.
grazie
Re: Macro apre Form Dati
Inviato: martedì 15 novembre 2016, 16:10
da patel
a me non lo fa però uso Libre office, fai attenzione che nella maschera del pomeriggio ora ingresso e ora uscita sono invertite
Re: Macro apre Form Dati
Inviato: martedì 15 novembre 2016, 17:41
da patel
modifica così
Codice: Seleziona tutto
sub ScriviModifiche
oDoc = ThisComponent
oSheet = oDoc.sheets(0)
oSheet.getCellRangeByName("B" & MyCounter).String = UCASE(dlg.getControl("TextField1").Text)
oSheet.getCellRangeByName("D" & MyCounter).String = UCASE(dlg.getControl("TextField2").Text)
oSheet.getCellRangeByName("F" & MyCounter).value = cdate(dlg.getControl("DateField1").Text)
oSheet.getCellRangeByName("H" & MyCounter).value = cdate(dlg.getControl("TimeField1").Text)
oSheet.getCellRangeByName("I" & MyCounter).value = cdate(dlg.getControl("TimeField2").Text)
oSheet.getCellRangeByName("M" & MyCounter).value = cdate(dlg.getControl("TimeField3").Text)
oSheet.getCellRangeByName("N" & MyCounter).value = cdate(dlg.getControl("TimeField4").Text)
call riempicombobox
Re: Macro apre Form Dati
Inviato: martedì 15 novembre 2016, 19:50
da sanraff
Bravissimo, adesso funziona, ma pensa te, hai capito cosa vuol dire avere una persona che ti spiega le cose?, tu insegni ed io apprendo per adesso e per il futuro, da solo non sarei riuscito a fare niente
Un'ultima cosa e poi metto risolto
Nella macro modifica, ho messo tanti "disabilita a Cognome, Nome ecc.. "
Domanda la stessa cosa come posso scriverla in una sola sub con il costrutto "If" oppure "Select"?, io ho provato però quando passo da un campo testo all'altro si blocca tutto mentre se lo associo ad ogni singola macro chiaramente funziona.
Cosa voglio ottenere
Dopo aver modificato il dato nella casella, quando passo in un'altra casella con il tasto "tab", quella in cui ho modificato il dato si deve disabilitare in automatico.
Al momento questa cosa funziona perché come ho detto prima, ad ogni casella ho associato la sua macro ( per il momento solo a Cognome e Nome, poi provvederò ad estendere la cosa).
E' possibile ottenere la stessa cosa scrivendo solo una sub?
grazie
Re: Macro apre Form Dati
Inviato: mercoledì 16 novembre 2016, 7:52
da patel
non capisco a cosa ti serve disabilitare i campi, normalmente si disabilitano i pulsanti, comunque non credo si possa fare con una sola sub.
Il bello delle maschere è che puoi saltare a modificare dove vuoi e se sbagli ci ritorni sopra.
E' la prima volta che mi cimento seriamente in un form abbastanza completo e quindi sto imparando anch'io insieme a te, quindi non ti peritare a fare domande.Il prossimo passo dovrebbe essere quello di seguire il consiglio di Lupogrigio e fare una modulo unico con solo 2 form in modo da eliminare le sub ridondanti.
Re: Macro apre Form Dati
Inviato: mercoledì 16 novembre 2016, 9:33
da Gaetanopr
sanraff ha scritto:
Dopo aver modificato il dato nella casella, quando passo in un'altra casella con il tasto "tab", quella in cui ho modificato il dato si deve disabilitare in automatico.
Al momento questa cosa funziona perché come ho detto prima, ad ogni casella ho associato la sua macro ( per il momento solo a Cognome e Nome, poi provvederò ad estendere la cosa).
E' possibile ottenere la stessa cosa scrivendo solo una sub?
grazie
La macro l'hai associata all'evento Testo modificato, quindi non credo ti funzioni, in quanto alla prima lettera modificata viene disabilitato il controllo.
Ti faccio pure notare che la macro da te usata presenta le prime due righe che sono alquanto inutili, fai riferimento al documento e al foglio, questo non occorre per disabilitare il campo di testo
Sub Disabilita_Cognome
oDoc = ThisComponent
oSheet = oDoc.sheets(0)
dlg.getControl("TextField1").Enable = false
end sub
patel ha scritto:...., comunque non credo si possa fare con una sola sub.
Si può fare, ma come detto da patel non è funzionale affatto, se vuoi ritornare su un campo già trattato ti tocca chiudere la finestra di dialogo e riaprila.
Comunque allego ugualmente il file con la macro per disabilitare i controlli "DisabilitaCtl" associata all'evento "perdita del punto focale".
Anch'io creerei un unico Form funzionante a Step, ma al momento credo tu debba ancora digerire bene quello imparato fino adesso.
Per altre problematiche sei pregato di aprire nuovi post con titoli più specifici e inerenti.
Re: Macro apre Form Dati
Inviato: mercoledì 16 novembre 2016, 12:02
da patel
Bisogna riconoscere che non si trovano spesso utenti desiderosi di apprendere come sanraff, la maggior parte sono interessati solo alla soluzione
Re: Macro apre Form Dati
Inviato: mercoledì 16 novembre 2016, 12:15
da Gaetanopr
Concordo, oltretutto i suoi post sono sempre interessanti.