[Risolto] Inserimento dati con macro

Discussioni sull'applicazione per i fogli di calcolo
Rispondi
Ant52
Messaggi: 176
Iscritto il: sabato 18 agosto 2018, 15:38

[Risolto] Inserimento dati con macro

Messaggio da Ant52 »

Buonasera, chiedo scusa se l'argomento è stato, molto probabilmente, già trattato ma non sono riuscito a trovarlo nel forum. Ho registrato una macro in un foglio di calc che calcola il codice fiscale di una persona e lo inserisce in una determinata cella alla pressione del pulsante "Inserim. Cod. Fisc." e il tutto funziona perfettamente quando nella colonna Cod.Fisc. non ci sono celle vuote perchè lo accoda regolarmente. Quando questo inserimento lo faccio in una altra colonna dove i codici fiscali non sono sempre presenti e ci sono numerose celle vuote non funziona più. In pratica va a trovare la prima riga vuota e tenta di introdurre li il codice fiscale mentre io vorrei che si potesse dare l'indicazione del numero di riga dove inserire il dato. Per fare un esempio concreto se ho un elenco di 10 nominativi dei quali solo tre hanno il codice fiscale nelle righe 4 6 e 8 il successivo codice va inserito nella riga n° 11 (e non la 9 come mi succede adesso) e quindi vorrei sapere se si può (e come si fa) indicare nella macro, con una formula o altro, in quale riga deve essere posizionato il dato. Io ritenevo che il solo fatto di posizionarmi con il mouse sulla cella dove voglio inserito il dato fosse sufficiente ma pare che non sia così. Grazie mille a chi mi potrà aiutare a risolvere questo problema.
Ultima modifica di Ant52 il venerdì 17 maggio 2019, 12:23, modificato 1 volta in totale.
OpenOffice 4.1.5 Windows 10
Gaetanopr
Volontario
Volontario
Messaggi: 3291
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Inserimento dati con macro

Messaggio da Gaetanopr »

Ciao dovrebbe essere di facile risoluzione ma occorre il file con la macro e i dati impostati per come hai spiegato
Ant52 ha scritto:Io ritenevo che il solo fatto di posizionarmi con il mouse sulla cella dove voglio inserito il dato fosse sufficiente ma pare che non sia così. Grazie mille a chi mi potrà aiutare a risolvere questo problema.

Codice: Seleziona tutto

oSelRiga = ThisComponent.getCurrentSelection.cellAddress.Row
oSelRiga è la riga della cella sulla quale sei posizionato, se può esserti di aiuto.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Ant52
Messaggi: 176
Iscritto il: sabato 18 agosto 2018, 15:38

Re: Inserimento dati con macro

Messaggio da Ant52 »

Grazie mille per la celerissima risposta. Purtroppo non ho potuto allegare il foglio perchè contiene molti dati. Appena mi sarà possibile lo farò. Ti chiedo un ultimo sforzo: (senza avere visto la macro etc. etc. capisco che non sarà facile) la stringa di macro che mi hai inviato va inserita subito prima del comando "uno: InsertContents" ?
Ancora grazie.
OpenOffice 4.1.5 Windows 10
Gaetanopr
Volontario
Volontario
Messaggi: 3291
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Inserimento dati con macro

Messaggio da Gaetanopr »

Non è così che funziona, per poter modificare una macro bisogna visionarla possibilmente assieme al file su cui lavora.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Ant52
Messaggi: 176
Iscritto il: sabato 18 agosto 2018, 15:38

Re: Inserimento dati con macro

Messaggio da Ant52 »

Chiedo scusa, lo immaginavo. Ho svuotato il file per inviarlo ma non lo allega perchè occupa 502 KB e supera il limite massimo. Come posso fare per inviarlo così com'è? La parte che occupa più spazio sono proprio i fogli che mi servono per il calcolo del codice fiscale e quindi non posso toglierli. Suggerimenti?
OpenOffice 4.1.5 Windows 10
Gaetanopr
Volontario
Volontario
Messaggi: 3291
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Inserimento dati con macro

Messaggio da Gaetanopr »

LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Ant52
Messaggi: 176
Iscritto il: sabato 18 agosto 2018, 15:38

Re: Inserimento dati con macro

Messaggio da Ant52 »

Ho inviato il file all'indirizzo: forum_open_office@libero.it . Grazie
OpenOffice 4.1.5 Windows 10
Gaetanopr
Volontario
Volontario
Messaggi: 3291
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Inserimento dati con macro

Messaggio da Gaetanopr »

Ciao, ho scaricato il file, dovresti spiegarmi i passaggi che fai così possiamo semplificare la macro.
Tu inserisci i dati sul foglio1 ? poi sul foglio COD FISC? non si capisce bene
Ho avviato il pulsante INS COD FISC ha resettato i campi del calcolo del codice fiscale ma non lo ha inserito da nessuna parte
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Ant52
Messaggi: 176
Iscritto il: sabato 18 agosto 2018, 15:38

Re: Inserimento dati con macro

Messaggio da Ant52 »

Ciao. La procedura che ho usato è questa:
- inserisco i dati della persona (cognome,nome.data di nascita,luogo di nascita completo di provincia etc) avendo cura di indicare se Sig. o Sig.ra in quanto questo mi da la possibilità di inserire il campo "Sesso"
- mi posiziono sulla cella corrispondente del cod.fisc. e clicco sul pulsante "INS COD FISC".
Quindi, in pratica, con la macro ho semplicemente registrato il copia/incolla dei vari campi nello schema del foglio "Cod.Fisc." tranne quello della provincia che lo ricava dalla funzione CERCA VERT.
Mi sembra tutto molto semplice e a me funziona perfettamente quando devo accodare i dati ma quando ci sono delle celle vuote nel campo cod.fisc. tenta di accodare il dato all'ultimo che trova e non scrive nulla in quanto con la macro si è posizionato sulla prima cella libera e andando indietro verso sinistra con l'istruzione "Go left" per trovare i dati anagrafici della persona non trova nulla.
Ritengo che si debba aggiungere nella macro o un indirizzamento alla cella in cui sono posizionato o, forse meglio, un controllo sul campo cognome (una IF per esempio) dal quale stabilire che se c'è scritto qualcosa procede con il trasferimento dei dati che ha trovato ma se trova blank deve testare lo stesso campo nella colonna seguente. Tieni però presente che questa stessa operazione la deve ripetere in tutti i campi dove sono presenti dati anagrafici.
Spero di essere stato chiaro. Se hai dubbi fammi sapere. Grazie
OpenOffice 4.1.5 Windows 10
Gaetanopr
Volontario
Volontario
Messaggi: 3291
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Inserimento dati con macro

Messaggio da Gaetanopr »

Ho creato una macro nuova

Codice: Seleziona tutto

Sub CodFsicale
Doc = ThisComponent
Sh = Doc.Sheets.getByName("COD FISC")
Sh1 = Doc.Sheets.getByName("Foglio1")
oSelRiga = ThisComponent.getCurrentSelection.cellAddress.Row
Sh.getCellRangeByName("Cognome").String = Sh1.GetCellbYPosition(1, oSelRiga).String
Sh.getCellRangeByName("Nome").String = Sh1.GetCellbYPosition(2, oSelRiga).String
Sh.getCellRangeByName("Citta").String = Sh1.GetCellbYPosition(5, oSelRiga).String
Sh.getCellRangeByName("Sesso").String = Sh1.GetCellbYPosition(3, oSelRiga).String
Sh.getCellRangeByName("DataNascita").Value = Sh1.GetCellbYPosition(4, oSelRiga).Value
ThisComponent.getCurrentSelection.String = Sh.getCellRangeByName("CodiceFiscale").String
End Sub
Ho crreato 6 nomi definiti, basta posizionarsi sulla riga di riferimento e lanciare la macro
Riallego file nella casella di posta
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Ant52
Messaggi: 176
Iscritto il: sabato 18 agosto 2018, 15:38

Re: Inserimento dati con macro

Messaggio da Ant52 »

Appena riesco a provare il tutto ti faccio sapere. Intanto ti ringrazio moltissimo per la rapidità e la competenza.
OpenOffice 4.1.5 Windows 10
Gaetanopr
Volontario
Volontario
Messaggi: 3291
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Inserimento dati con macro

Messaggio da Gaetanopr »

:super:
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Ant52
Messaggi: 176
Iscritto il: sabato 18 agosto 2018, 15:38

Re: Inserimento dati con macro

Messaggio da Ant52 »

Ho scaricato il file subito perchè ero molto curioso ma purtroppo mi sembra che sia tutto come prima cioè non accoda correttamente quando ci sono celle vuote.
OpenOffice 4.1.5 Windows 10
Gaetanopr
Volontario
Volontario
Messaggi: 3291
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Inserimento dati con macro

Messaggio da Gaetanopr »

Non devi lanciare la macro dal pulsante(è associata ancora la precedente) ho dimenticato ad associare la nuova macro.
Il codice fiscale non viene accodato ma copiato sulla cella dove si è posizionati
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Ant52
Messaggi: 176
Iscritto il: sabato 18 agosto 2018, 15:38

Re: Inserimento dati con macro

Messaggio da Ant52 »

Ti chiedo scusa ma non avevo capito che la macro nuova non era associata al pulsante..... Mi sembra che funzioni perfettamente. Ti ringrazio moltissimo e vorrei sapere come mettere l'OK di risolto. Grazie ancora. Saluti
OpenOffice 4.1.5 Windows 10
patel
Volontario attivo
Volontario attivo
Messaggi: 4016
Iscritto il: venerdì 30 aprile 2010, 8:04
Località: Livorno

Re: Inserimento dati con macro

Messaggio da patel »

riedita il primo post ed aggiungilo in testa al titolo
-------------------
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
Ant52
Messaggi: 176
Iscritto il: sabato 18 agosto 2018, 15:38

Re: Inserimento dati con macro

Messaggio da Ant52 »

Ho provato l'inserimento del codice fiscale negli altri campi ma mi sembra che ci sia qualche problema perchè mi ripete quello del primo campo. Non vorrei avere fatto qualche manovra errata. Puoi dirmi se hai provato l'inserimento in tutti i campi? Grazie.
OpenOffice 4.1.5 Windows 10
Gaetanopr
Volontario
Volontario
Messaggi: 3291
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Inserimento dati con macro

Messaggio da Gaetanopr »

Ciao, a quali altri campi ti riferisci? io ho provato le prime 3 righe...purtroppo non ho più il file a disposizione e dalla casella postale è stato rimosso.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Ant52
Messaggi: 176
Iscritto il: sabato 18 agosto 2018, 15:38

Re: Inserimento dati con macro

Messaggio da Ant52 »

Spostandosi sulla destra ci sono altri 8 campi che potenzialmente possono richiedere l'inserimento del codice fiscale. Quindi non è stato provato in tutti i campi? Se sei disponibile posso inviare nuovamente il file con la mai domani mattina. Fammi sapere. Grazie.
OpenOffice 4.1.5 Windows 10
Gaetanopr
Volontario
Volontario
Messaggi: 3291
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Inserimento dati con macro

Messaggio da Gaetanopr »

Ok, non ho controllato le altre colonne.
Riallega il file che apporto la modifica
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Ant52
Messaggi: 176
Iscritto il: sabato 18 agosto 2018, 15:38

Re: Inserimento dati con macro

Messaggio da Ant52 »

Scusa il disturbo ma vorrei sapere se sei riuscito a scaricare il file. Ci sono problemi? Attendo notizie. Grazie.
OpenOffice 4.1.5 Windows 10
Gaetanopr
Volontario
Volontario
Messaggi: 3291
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Inserimento dati con macro

Messaggio da Gaetanopr »

ciao a questo indirizzo forum_open_office@libero.it non ci sono file
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Ant52
Messaggi: 176
Iscritto il: sabato 18 agosto 2018, 15:38

Re: Inserimento dati con macro

Messaggio da Ant52 »

Lho appena inviato nuovamente. È strano perché l'avevo già fatto ieri alle 9,55. Forse dopo qualche ora vengono rimossi tutti i messaggi. Attendo fiducioso nelle tue capacità. Grazie
OpenOffice 4.1.5 Windows 10
Gaetanopr
Volontario
Volontario
Messaggi: 3291
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Inserimento dati con macro

Messaggio da Gaetanopr »

cambia con questa

Codice: Seleziona tutto

Sub CodFsicale
Doc = ThisComponent
Sh = Doc.Sheets.getByName("COD FISC")
Sh1 = Doc.Sheets.getByName("Foglio1")
oSelRiga = ThisComponent.getCurrentSelection.cellAddress.Row
oSelCol = ThisComponent.getCurrentSelection.cellAddress.Column
Sh.getCellRangeByName("Cognome").String = Sh1.GetCellbYPosition(oSelCol-7, oSelRiga).String
Sh.getCellRangeByName("Nome").String = Sh1.GetCellbYPosition(oSelCol-6, oSelRiga).String
Sh.getCellRangeByName("Citta").String = Sh1.GetCellbYPosition(oSelCol-3, oSelRiga).String
Sh.getCellRangeByName("Sesso").String = Sh1.GetCellbYPosition(oSelCol-5, oSelRiga).String
Sh.getCellRangeByName("DataNascita").Value = Sh1.GetCellbYPosition(oSelCol-4, oSelRiga).Value
ThisComponent.getCurrentSelection.String = Sh.getCellRangeByName("CodiceFiscale").String
End Sub
Mi raccomando la macro funziona solo se mantieni sempre questa struttura nel file, nel senso che se aggiungi delle colonne tra i vari dati anagrafici potrebbe aver bisogno di una modifica.
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Ant52
Messaggi: 176
Iscritto il: sabato 18 agosto 2018, 15:38

Re: Inserimento dati con macro

Messaggio da Ant52 »

Ti ringrazio moltissimo per avere risolto il mio problema. Adesso funziona benissimo in tutti i campi anche in presenza di celle vuote. Vorrei chiarito meglio come si fa a mettere l'OK di Risolto nel post ed inoltre se puoi spiegarmi un paio di cose.
1) se nascondo la colonna dove viene indicato il sesso o i fogli in cui faccio i calcoli del codice fiscale ritengo che la macro non funzioni più e si debba modificare. E' corretto? E come si potrebbe fare in tal caso?
2) l'indirizzamento preciso alla cella in cui sono posizionato col cursore avviene grazie all'istruzione " oSelCol = ThisComponent.getCurrentSelection.cellAddress.Column"? Cioè oltre ad indicare la riga si indica anche la colonna?
3) vedo che indichi di andare indietro, nella riga in cui si è posizionati, di un certo numero di celle per trovare il dato che si vuole copiare (cognome,nome,sesso,data nascita e città), questo vuole dire che la macro che avevo registrato io non serve più e fa tutta l'operazione quella che mi hai inviato e quindi posso eliminarla? Grazie ancora
OpenOffice 4.1.5 Windows 10
Gaetanopr
Volontario
Volontario
Messaggi: 3291
Iscritto il: mercoledì 21 novembre 2012, 20:07

Re: Inserimento dati con macro

Messaggio da Gaetanopr »

Ant52 ha scritto: Vorrei chiarito meglio come si fa a mettere l'OK di Risolto nel post
ecco come fare viewtopic.php?f=2&t=5661

Ti rispondo in ordine
1) Funziona correttamente, solo se aggiungi o togli bisogna modificare.
2) Esatto
3) si, va indietro di tot.colonne quante sono per ricavare il dato di riferimento, ad esempio la colonna del cognome si trova 7 colonne prima rispetto la colonna del codice fiscale, sapendo questo potrai modificare tu stesso la macro in caso di bisogno.Le macro che avevi registrato non servono più
LibreOffice 7.2.2.2 windows 10
Openoffice 4.1.13 su windows 10
Ant52
Messaggi: 176
Iscritto il: sabato 18 agosto 2018, 15:38

Re: [Risolto] Inserimento dati con macro

Messaggio da Ant52 »

Ho già messo [Risolto] nel primo messaggio. Grazie ancora per le preziose spiegazioni
OpenOffice 4.1.5 Windows 10
Rispondi