[Risolto] Costruzione preventivo
[Risolto] Costruzione preventivo
Buongiorno
sono a chiedervi un aiuto; mi sto cimentando con le macro ma dopo aver letto un bel po di post sul forum non ne vengo a capo.
Mi spiego:
dal file allegato vorrei utilizzare un dataform per inserire i dati della riga 6 del foglio dett_ocu per poi trascriverli nei campi corrispondenti del foglio prev_ocu poterli registrare e passare con il nuovo inserimento al record successivo.
Potete darmi una mano
grazie mille
sono a chiedervi un aiuto; mi sto cimentando con le macro ma dopo aver letto un bel po di post sul forum non ne vengo a capo.
Mi spiego:
dal file allegato vorrei utilizzare un dataform per inserire i dati della riga 6 del foglio dett_ocu per poi trascriverli nei campi corrispondenti del foglio prev_ocu poterli registrare e passare con il nuovo inserimento al record successivo.
Potete darmi una mano
grazie mille
- Allegati
-
- Prova.ods
- (19.34 KiB) Scaricato 132 volte
Ultima modifica di Thunder il martedì 23 luglio 2019, 17:57, modificato 1 volta in totale.
Openoffice 3.2 su Windows 10
Re: Costruzione preventivo
Se ho capito bene cosa vuoi fare, ho iniziato a scriverti una macro funzionante.
Per farla funzionare devi inserire i dati in dett_ocu
La macro inserisce i dati in prev_ocu e stampa il foglio...uno per ogni paziente.
La macro ovviamente te l'ho lasciata mezza da finire così fai pratica.
E' semplice...basta che continui a scrivere i dati come le righe che ho già scritto.
Per farla funzionare devi inserire i dati in dett_ocu
La macro inserisce i dati in prev_ocu e stampa il foglio...uno per ogni paziente.
La macro ovviamente te l'ho lasciata mezza da finire così fai pratica.
E' semplice...basta che continui a scrivere i dati come le righe che ho già scritto.
- Allegati
-
- Prova [2].ods
- (19.25 KiB) Scaricato 151 volte
Apache OpenOffice 4.1.5 su Windows 10
Se hai risolto il problema, ricordati di aggiungere [RISOLTO]: viewtopic.php?f=9&t=5661
Se hai risolto il problema, ricordati di aggiungere [RISOLTO]: viewtopic.php?f=9&t=5661
Re: Costruzione preventivo
Ciao Eramad
in primis grazie infinite per la risposta.
Il mio obbiettivo è innanzitutto imparare ad utilizzare il linguaggio basic per riuscire, non dico a padroneggiare macro di alto livello ma almeno per riuscire a gestire qualche piccolo lavoretto.
Allora quello che hai fatto è interessante però io cerco un modo per inserire i dati tramite maschera per il foglio DETT_OCU partendo con l'inserimento del 2 paziente nella riga successiva per poi come hai fatto tu riportare i dati, del primo o del secondo oterzo e cosi via, nel preventivo effettivo del foglio prev_ocu.
Penso di aver inteso cosa hai scritto in macro ma quel i = 7 a cosa starebbe?
Grazie ancora
in primis grazie infinite per la risposta.
Il mio obbiettivo è innanzitutto imparare ad utilizzare il linguaggio basic per riuscire, non dico a padroneggiare macro di alto livello ma almeno per riuscire a gestire qualche piccolo lavoretto.
Allora quello che hai fatto è interessante però io cerco un modo per inserire i dati tramite maschera per il foglio DETT_OCU partendo con l'inserimento del 2 paziente nella riga successiva per poi come hai fatto tu riportare i dati, del primo o del secondo oterzo e cosi via, nel preventivo effettivo del foglio prev_ocu.
Penso di aver inteso cosa hai scritto in macro ma quel i = 7 a cosa starebbe?
Grazie ancora
Openoffice 3.2 su Windows 10
Re: Costruzione preventivo
non è molto chiaroThunder ha scritto: dal file allegato vorrei utilizzare un dataform per inserire i dati della riga 6 del foglio dett_ocu per poi trascriverli nei campi corrispondenti del foglio prev_ocu poterli registrare e passare con il nuovo inserimento al record successivo.
-------------------
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
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
Re: Costruzione preventivo
Ciao Patel
In pratica il preventivo viene compilato nel foglio dett_ocu, essendoci tante colonne in cui si dovranno inserire i dati per evitare casini vorrei farlo tramite maschera, fatto questo vorrei richiamerò nel modulo preventivo prev_ocu in modo da stamparli.
Devo necessariamente mantenere un storico in dett_ocu e la possibilità di richiamare e stampare il preventivo del paziente 1, 2 o 3.
Spero di essermi spiegato grazie mille
In pratica il preventivo viene compilato nel foglio dett_ocu, essendoci tante colonne in cui si dovranno inserire i dati per evitare casini vorrei farlo tramite maschera, fatto questo vorrei richiamerò nel modulo preventivo prev_ocu in modo da stamparli.
Devo necessariamente mantenere un storico in dett_ocu e la possibilità di richiamare e stampare il preventivo del paziente 1, 2 o 3.
Spero di essermi spiegato grazie mille
Openoffice 3.2 su Windows 10
Re: Costruzione preventivo
Prepara la prima maschera che si chiama Finestra di Dialogo, posta il file e ti facciamo un esempio di utilizzo
-------------------
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
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
Re: Costruzione preventivo
Ciao Patel è qui che non so partire.
Non riesco a creare una userform dinamico per inserire i dati del foglio dett_ocu nel senso che le colonne potrebbero variare a seconda della specialità (in questo caso è oculistica successivamente ne vorrei costruire un altro chirurgico e così via ma utilizzando fogli diversi).
Una volta inseriti i dati del paziente vorrei passare alla riga successiva inserendo un nuovo paziente in un nuovo record. Questo per l'inserimento del paziente poi sul foglio prev_ocu vorrei fare quello che ha fatto Eramad ma avendo la possibilità di richiamare un paziente specifico
Grazie mille
PS in tutto questo colgo l'occasione per cercare di imparare questo fantastico mondo delle macro
Non riesco a creare una userform dinamico per inserire i dati del foglio dett_ocu nel senso che le colonne potrebbero variare a seconda della specialità (in questo caso è oculistica successivamente ne vorrei costruire un altro chirurgico e così via ma utilizzando fogli diversi).
Una volta inseriti i dati del paziente vorrei passare alla riga successiva inserendo un nuovo paziente in un nuovo record. Questo per l'inserimento del paziente poi sul foglio prev_ocu vorrei fare quello che ha fatto Eramad ma avendo la possibilità di richiamare un paziente specifico
Grazie mille
PS in tutto questo colgo l'occasione per cercare di imparare questo fantastico mondo delle macro
- Allegati
-
- Prova 1.ods
- (20.19 KiB) Scaricato 136 volte
Openoffice 3.2 su Windows 10
Re: Costruzione preventivo
Buongiorno
cercando nel forum ho trovato questo file che potrebbe, riadattandolo, soddisfare il mio caso per l'inserimento dei dati del paziente
cercando nel forum ho trovato questo file che potrebbe, riadattandolo, soddisfare il mio caso per l'inserimento dei dati del paziente
- Allegati
-
- Arch Fert definitivo.ods
- (23.4 KiB) Scaricato 137 volte
Openoffice 3.2 su Windows 10
Re: Costruzione preventivo
Usando LibreOffice e un massimo di 18 campi (voci intestazione colonna) potresti semplicemente ricorrere a:
Menu > Dati > Formulario
(..prima occorre però posizionarsi su una delle voci d'intestazione delle varie colonne…).
Così facendo si aprirebbe il relativo form di compilazione con le impostazioni predefinite.
Abbastanza semplice e pratico da gestire.
Nel tuo file hai però più di trenta “campi” (“Colonne”) di dati per ogni “record” (“Riga”).
La soluzione precedente quindi non sarebbe attuabile.
Visualizzare e gestire una trentina di voci in modo dinamico in "finestre di dialogo" (similmente al file: Arch Fert definitivo.ods) non sarebbe poi così semplice.
Un'alternativa più semplice potrebbe essere quella di dedicare alla procedura di inserimento dati uno specifico foglio in cui implementare una “Maschera personalizzata … dinamica” come nell'esempio che segue:
Selezioni il "Reparto" interessato (oculistica, cardiologia, …) e la maschera si autocompila con le voci d'intestazione presente nei rispettivi fogli in cui dovranno essere memorizzati i dati.
Viene preimpostato automaticamente numero di record.
Compili quanto serve … e se decidi di archiviare i dati inseriti verranno accodati nel rispettivo foglio d'interesse.
Menu > Dati > Formulario
(..prima occorre però posizionarsi su una delle voci d'intestazione delle varie colonne…).
Così facendo si aprirebbe il relativo form di compilazione con le impostazioni predefinite.
Abbastanza semplice e pratico da gestire.
Nel tuo file hai però più di trenta “campi” (“Colonne”) di dati per ogni “record” (“Riga”).
La soluzione precedente quindi non sarebbe attuabile.
Visualizzare e gestire una trentina di voci in modo dinamico in "finestre di dialogo" (similmente al file: Arch Fert definitivo.ods) non sarebbe poi così semplice.
Un'alternativa più semplice potrebbe essere quella di dedicare alla procedura di inserimento dati uno specifico foglio in cui implementare una “Maschera personalizzata … dinamica” come nell'esempio che segue:
Selezioni il "Reparto" interessato (oculistica, cardiologia, …) e la maschera si autocompila con le voci d'intestazione presente nei rispettivi fogli in cui dovranno essere memorizzati i dati.
Viene preimpostato automaticamente numero di record.
Compili quanto serve … e se decidi di archiviare i dati inseriti verranno accodati nel rispettivo foglio d'interesse.
- Allegati
-
- Test - Maschera con voci variabili per la compilazione dei rispettivi archivi di dati.ods
- (18.87 KiB) Scaricato 123 volte
Re: Costruzione preventivo
WOW fantastico
Mi hai letto nel pensiero.
Per la parte dell'inserimento paziente è perfetto, adesso cerco di adattare il tutto alle mie esigenze (se riesco) in modo che ne approfitto per imparare qualcosina.
A tal proposito i valori + 80 e +64 nella formula =SE($B$3="";"";INDIRETTO("$" & $B$3 & "." & CODICE.CARATT(RIF.RIGA(A10)+64) & "6")) cosa indicano? Ho visto che alcune volte hai usato 64 e altre 80
Per quanto riguarda la compilazione del preventivo nel foglio prev_ocu è possibile fare l'opposto, nel senso che inserendo il reparto, il cognome del paziente si compilino i campi appositi del preventivo?
Ultima cosa per utilizzare Menu > Dati > Formulario senza passare dal formulario è possibile abilitarla direttamente al da pulsante macro?
Grazie infinite
Mi hai letto nel pensiero.
Per la parte dell'inserimento paziente è perfetto, adesso cerco di adattare il tutto alle mie esigenze (se riesco) in modo che ne approfitto per imparare qualcosina.
A tal proposito i valori + 80 e +64 nella formula =SE($B$3="";"";INDIRETTO("$" & $B$3 & "." & CODICE.CARATT(RIF.RIGA(A10)+64) & "6")) cosa indicano? Ho visto che alcune volte hai usato 64 e altre 80
Per quanto riguarda la compilazione del preventivo nel foglio prev_ocu è possibile fare l'opposto, nel senso che inserendo il reparto, il cognome del paziente si compilino i campi appositi del preventivo?
Ultima cosa per utilizzare Menu > Dati > Formulario senza passare dal formulario è possibile abilitarla direttamente al da pulsante macro?
Grazie infinite
Openoffice 3.2 su Windows 10
Re: Costruzione preventivo
… spero di essere comprensibile …Thunder ha scritto:i valori + 80 e +64 nella formula =SE($B$3="";"";INDIRETTO("$" & $B$3 & "." & CODICE.CARATT(RIF.RIGA(A10)+64) & "6")) cosa indicano? Ho visto che alcune volte hai usato 64 e altre 80
La rappresentazione della voci d'inserimento nella “maschera/FoglioInserimenti” è “verticale”.
Le corrispondenti voci da acquisire dalla riga d'intestazione del foglio corrispondente sono “orrizzontali”.
La formula ricostruisce l'indirizzo della cella di corrispondenza di tale foglio (onde acquisirne il dato contenuto).
Le lettere dalla A alla Z sono ricavabili utilizzando a partire con CODICE.CARATT(65) per la lettera A e incrementando il numero progressivamente fino a 90 per la lettera Z.
In cella A5 della maschera utilizzato + 64 (che sommato al numero di riferimento riga di A1) da 65 (il codice carattere della lettera A)
Replicando A5 (copia/incolla/trascina) fino ad A20 il riferimento riga cambia incrementando automaticamente il codice carattere fino a 80 (il codice carattere della lettera P).
Nella cella E5 si dovrà ricavare il codice carattere 81 corrispondente alla lettera Q (alfabeticamente successiva alla lettera P) ecco quindi il numero 80 che sommato al riferimento riga di A1 da 81
Replicando E5 (copia/incolla/trascina) fino ad E14 il riferimento riga cambia incrementando automaticamente il codice carattere fino a 90 (il codice carattere della lettera Z)
Oltre la colonna Z le intestazioni di colonna assumono progressivamente AA AB AC AD AE AF …
Ecco il perché nella maschera inserimenti da cella E15 fino ad E20 la formula cambia il numero il 64 onde ripristinare l'automatismo per impostare il codice carattere corrispondente alla seconda delle due lettere della colonna di riferimento (mentre per la prima delle due che è uguale a A viene già fissata nella formula stessa con il concatenamento & ".A" &
Tutto questo per avere un certo automatismo nel recuperare il codice carattere di corrispondenza ma volendo si poteva inserire lo stesso manualmente a partire da 65 anzichè ricavarlo da CODICE.CARATT(RIF.RIGA(A1)+64) e così via per le altre celle.
Ogni formula di cui sopra porta come concatenamento finale & “6” che serve a far corrispondere poi il tutto al riferimento della riga 6 contenete le voci d'intestazione che vengono richiamate.
Si può fare ma occorre considerare che potrebbero emergere casi di omonimia potenziale di Cognome, Cognome e Nome (data di nascita diversa quindi codici fiscali diversi) e anche di Cognome Nome CodiceFiscale (se il paziente si è rivolto più volte a quel reparto/struttura) mentre sarebbe univoco il numero di Record di registrazione nel foglio/reparto specificato …) ….Thunder ha scritto:Per quanto riguarda la compilazione del preventivo nel foglio prev_ocu è possibile fare l'opposto, nel senso che inserendo il reparto, il cognome del paziente si compilino i campi appositi del preventivo?
Sono attuabili soluzioni di filtraggio dati “a cascata” …. in maschera “preventivo” o in quella di “inserimento” o ancora usando i filtri direttamente nel foglio dati archiviati (oculistica, …) ove poi selezionare il record da richiamare in maschera preventivo ...
Se possibile non so come impostarne il codice.Thunder ha scritto: per utilizzare Menu > Dati > Formulario senza passare dal formulario è possibile abilitarla direttamente al da pulsante macro?
Il registratore di macro integrato non registra la sequenza di apertura dei pochi passaggi necessari che sono:
- posizionare il cursore del mouse su una delle voci d'intestazione del foglio di archiviazione dati;
- Menu > Dati > Formulario
Re: Costruzione preventivo
Ho creato una macro che si aziona al variare della cella B6 del foglio prev_ocu, viene visualizzata una finestra di dialogo con l'elenco dei pazienti del reparto scelto, basta selezionarne uno e verrà compilato il preventivo, ho eliminato tutte le celle unite, le descrizioni vengono riportate nella colonna A e i dati nella colonna C.Thunder ha scritto: Per quanto riguarda la compilazione del preventivo nel foglio prev_ocu è possibile fare l'opposto, nel senso che inserendo il reparto, il cognome del paziente si compilino i campi appositi del preventivo?
Naturalmente puoi aggiungere tutti i reparti che vuoi, basta modificare l'elenco della cella B6
Saluti
- Allegati
-
- Test_finestra_dialogo_variabile_per_preventivo.ods
- (26.72 KiB) Scaricato 107 volte
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Costruzione preventivo
Grazie mille
Fantastica!!!
Mi avete letto nel pensiero, provo ad assemblare il tutto.
A dopo
PS: Grazie veramente tanto a tutti
Fantastica!!!
Mi avete letto nel pensiero, provo ad assemblare il tutto.
A dopo
PS: Grazie veramente tanto a tutti
Openoffice 3.2 su Windows 10
Re: Costruzione preventivo
Eccomi
ho rimpaginato un pò il tutto e vorrei chiedervi questo:
per la parte inserimenti, quella che ha fatto lucky63, penso di aver fatto tutto nel modo corretto anche se:
- la macro non registra l'ultima casella che compilo (non sempre)
- dato che ci sono degli importi che saranno sempre fissi (tipo quelli del foglio oculistica cataratta) avrei pensato di importarli nella maschera inserimenti utilizzando la stessa formula =SE($B$6="";"";INDIRETTO("$" & $B$6 & "." & CODICE.CARATT(RIF.RIGA(A1)+64) & "7")) cambiando la riga di importazione dati con la 7 in modo che al primo record imposto sempre PROVA PROVA per il recupero dei dati fissi.
Per quanto riguarda il preventivo parte fatta da Gaetanopr non riesco a capire alcune cose tipo:
- la prima è come faccia ad associare la macro alla cella nel caso del file allegato E4
- non capisco il passaggio quando definisci di copiare i dati nella colonna A e B.
Per il resto che dirvi complimenti ancora a tutti
ho rimpaginato un pò il tutto e vorrei chiedervi questo:
per la parte inserimenti, quella che ha fatto lucky63, penso di aver fatto tutto nel modo corretto anche se:
- la macro non registra l'ultima casella che compilo (non sempre)
- dato che ci sono degli importi che saranno sempre fissi (tipo quelli del foglio oculistica cataratta) avrei pensato di importarli nella maschera inserimenti utilizzando la stessa formula =SE($B$6="";"";INDIRETTO("$" & $B$6 & "." & CODICE.CARATT(RIF.RIGA(A1)+64) & "7")) cambiando la riga di importazione dati con la 7 in modo che al primo record imposto sempre PROVA PROVA per il recupero dei dati fissi.
Per quanto riguarda il preventivo parte fatta da Gaetanopr non riesco a capire alcune cose tipo:
- la prima è come faccia ad associare la macro alla cella nel caso del file allegato E4
- non capisco il passaggio quando definisci di copiare i dati nella colonna A e B.
Per il resto che dirvi complimenti ancora a tutti
- Allegati
-
- Prova.ods
- (25.09 KiB) Scaricato 89 volte
Openoffice 3.2 su Windows 10
Re: Costruzione preventivo
Ti mancano alcuni passaggi:Thunder ha scritto: Per quanto riguarda il preventivo parte fatta da Gaetanopr non riesco a capire alcune cose tipo:
- la prima è come faccia ad associare la macro alla cella nel caso del file allegato E4
- non capisco il passaggio quando definisci di copiare i dati nella colonna A e B.
1) Associare la macro "Sub GridOnDialog(Target)" all'evento Contenuto modificato del foglio "Prev" facendo tasto dx del mouse sul foglio - Eventi foglio e fai l'associazioone della macro.
2) Non hai creato la finestra di dialogo (Dialog1) come ho fatto io nell'esempio che avevo allegato
3) questa è la parte che compila le colonne A e C
Codice: Seleziona tutto
For i = 1 To gridmodel.ColumnModel.ColumnCount - 1
Foglio.getcellbyposition(0, rigades).String = gridmodel.ColumnModel.getColumn(i).Title & " :"
If gridmodel.GridDataModel.getRowData(s)(i) <> "" Then
'if IsNumeric(gridmodel.GridDataModel.getRowData(s)(i) ) then msgbox gridmodel.GridDataModel.getRowData(s)(i)
Foglio.getcellbyposition(2, rigades).String = gridmodel.GridDataModel.getRowData(s)(i)
End If
rigades = rigades + 1
Next i
Codice: Seleziona tutto
Foglio.getcellbyposition(1, rigades).String
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Costruzione preventivo
1) ho imparato anche questo non sapevo che si potesse usare questo opzione
2) come faccio non ne ho mai fatti?
2) come faccio non ne ho mai fatti?
Openoffice 3.2 su Windows 10
Re: Costruzione preventivo
Basta cercare sul forum o studiare la guida di openoffice
https://wiki.openoffice.org/wiki/IT/Doc ... de/Dialogs
https://wiki.openoffice.org/wiki/IT/Doc ... de/Dialogs
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Costruzione preventivo
Sono riuscito ad inserire il dialog ma contrariamente a tuo non mi da la possibilità di scorrere i dati, sai darmi una dritta
Grazie mille
Grazie mille
- Allegati
-
- Preventivi.ods
- (21.19 KiB) Scaricato 86 volte
Openoffice 3.2 su Windows 10
Re: Costruzione preventivo
Io avevo eliminato le celle unite e tu invece le hai unite nuovamente, se vuoi scrivere nella colonna C quantomeno questa non devi unirla alle colonne A-B, nel file che riallego i dati li riporto nella colona D che non è unita.Gaetanopr ha scritto:... ho eliminato tutte le celle unite, le descrizioni vengono riportate nella colonna A e i dati nella colonna C.
La finestra di dialogo dopo averla creata puoi spostarla a piacimento e ingrandirla o meno, nel tuo caso và ingrandita in modo tale da visualizzare la barra di scorrimento.
- Allegati
-
- Preventivi.ods
- (24.97 KiB) Scaricato 105 volte
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10
Re: Costruzione preventivo
vero scusa ma sto imparando.
Al momento devo assemblare per bene il tutto e per questa fase penso sia tutto.
Un'ultima cosa sto costruendo un file per la liquidazione correlata al preventivo; all'apertura del nuovo file liquidazioni vorrei importare automaticamente i dati dei fogli Oculistica cataratte, oculistica ricoveri e cosi via, ovviamente nei fogli corrispondenti, in modo che ad ogni nuova apertura si possa fare un aggiornamento automatico.
Come faccio a mettere il risolto?
PS grazie veramente a tutti per la collaborazione e la disponibilità
Al momento devo assemblare per bene il tutto e per questa fase penso sia tutto.
Un'ultima cosa sto costruendo un file per la liquidazione correlata al preventivo; all'apertura del nuovo file liquidazioni vorrei importare automaticamente i dati dei fogli Oculistica cataratte, oculistica ricoveri e cosi via, ovviamente nei fogli corrispondenti, in modo che ad ogni nuova apertura si possa fare un aggiornamento automatico.
Come faccio a mettere il risolto?
PS grazie veramente a tutti per la collaborazione e la disponibilità
- Allegati
-
- Liquidazioni.ods
- (7.7 KiB) Scaricato 105 volte
Openoffice 3.2 su Windows 10
Re: Costruzione preventivo
viewtopic.php?f=2&t=5661Thunder ha scritto:Come faccio a mettere il risolto?
Per il file liquidazioni sul forum trovi diverse discussioni che trattano l'argomento, devi cercare come effettuare una copia tra due documenti diversi, se non ci riesci apri un nuovo post.
Saluti
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Openoffice 4.1.13 su windows 10