Pagina 1 di 1

[Risolto] Inserimento dati con macro

Inviato: lunedì 13 maggio 2019, 17:07
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.

Re: Inserimento dati con macro

Inviato: lunedì 13 maggio 2019, 17:11
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.

Re: Inserimento dati con macro

Inviato: lunedì 13 maggio 2019, 19:42
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.

Re: Inserimento dati con macro

Inviato: martedì 14 maggio 2019, 9:36
da Gaetanopr
Non è così che funziona, per poter modificare una macro bisogna visionarla possibilmente assieme al file su cui lavora.

Re: Inserimento dati con macro

Inviato: martedì 14 maggio 2019, 15:10
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?

Re: Inserimento dati con macro

Inviato: martedì 14 maggio 2019, 15:16
da Gaetanopr

Re: Inserimento dati con macro

Inviato: mercoledì 15 maggio 2019, 9:10
da Ant52
Ho inviato il file all'indirizzo: forum_open_office@libero.it . Grazie

Re: Inserimento dati con macro

Inviato: mercoledì 15 maggio 2019, 12:26
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

Re: Inserimento dati con macro

Inviato: mercoledì 15 maggio 2019, 14:20
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

Re: Inserimento dati con macro

Inviato: mercoledì 15 maggio 2019, 15:23
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

Re: Inserimento dati con macro

Inviato: mercoledì 15 maggio 2019, 15:38
da Ant52
Appena riesco a provare il tutto ti faccio sapere. Intanto ti ringrazio moltissimo per la rapidità e la competenza.

Re: Inserimento dati con macro

Inviato: mercoledì 15 maggio 2019, 15:43
da Gaetanopr
:super:

Re: Inserimento dati con macro

Inviato: mercoledì 15 maggio 2019, 15:49
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.

Re: Inserimento dati con macro

Inviato: mercoledì 15 maggio 2019, 15:52
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

Re: Inserimento dati con macro

Inviato: mercoledì 15 maggio 2019, 16:02
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

Re: Inserimento dati con macro

Inviato: mercoledì 15 maggio 2019, 16:44
da patel
riedita il primo post ed aggiungilo in testa al titolo

Re: Inserimento dati con macro

Inviato: mercoledì 15 maggio 2019, 22:13
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.

Re: Inserimento dati con macro

Inviato: mercoledì 15 maggio 2019, 22:43
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.

Re: Inserimento dati con macro

Inviato: giovedì 16 maggio 2019, 0:06
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.

Re: Inserimento dati con macro

Inviato: giovedì 16 maggio 2019, 0:11
da Gaetanopr
Ok, non ho controllato le altre colonne.
Riallega il file che apporto la modifica

Re: Inserimento dati con macro

Inviato: venerdì 17 maggio 2019, 9:58
da Ant52
Scusa il disturbo ma vorrei sapere se sei riuscito a scaricare il file. Ci sono problemi? Attendo notizie. Grazie.

Re: Inserimento dati con macro

Inviato: venerdì 17 maggio 2019, 10:01
da Gaetanopr
ciao a questo indirizzo forum_open_office@libero.it non ci sono file

Re: Inserimento dati con macro

Inviato: venerdì 17 maggio 2019, 10:11
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

Re: Inserimento dati con macro

Inviato: venerdì 17 maggio 2019, 10:20
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.

Re: Inserimento dati con macro

Inviato: venerdì 17 maggio 2019, 11:59
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

Re: Inserimento dati con macro

Inviato: venerdì 17 maggio 2019, 12:11
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ù

Re: [Risolto] Inserimento dati con macro

Inviato: venerdì 17 maggio 2019, 12:24
da Ant52
Ho già messo [Risolto] nel primo messaggio. Grazie ancora per le preziose spiegazioni