You are here:Home-Domande su Excel VBA e MACRO-Cerca Nominativo e copia dati in altro file
Cerca Nominativo e copia dati in altro file2020-05-17T08:04:58+02:00

Home Forum Domande su Excel VBA e MACRO Cerca Nominativo e copia dati in altro file

Visualizzazione 11 filoni di risposte
  • Autore
    Post
    • Avataraqquila2
      Partecipante
        Post totali: 87

        Ciao a tutti gli utenti, BySal, Kriss_9951, SID etc..
        Volevo realizzare questo processo, con macro vba:
        ho i dati sul file “nomi Master.xls, con tante righe per ogni nominativo.
        Al lancio della macro ( che risiede su un file vuoto) si apre una msgbox di scelta che mi chiede di inserire un nominativo da cercare: “ Inserire nome da cercare”
        Per Es. scelgo “Nome106”
        Potrebbero esserci più righe con Nome106, che differiscono tra loro per il dato contenuto in Rep ( colonna G) cioè uno è Nome106 – Rep8 ( riga 151-152)  l’altro è Nome106 -Rep14 ( riga 394 dell’esempio)
        Il risultato della ricerca sarà che mi propone due nominativi: 1) Nome106 Rep8 2) Nome106 Rep14
        Faccio la scelta, per esempio Nome106 Rep8, che avrà quindi due righe con dati ( riga 151 e 152 es.), che sono discriminate dalla Colonna I ( 1 o 2 )
        A questo punto mi deve copiare i dati riferiti alla riga con colonna I =1 (riga 152 es.) (sono 12, uno per ogni mese,  quindi quelli colorati in rosso ( ci possono essere numeri o anche celle vuote) e incollarli in un altro file, che scelgo da percorso con menù di scelta ( per ora usiamo l’esempio “Report master.xls” ) andando prima a ricercare la riga che si riferisce allo stesso nominativo (Colonna B ) (quindi nell’esempio Riga 14) e incollarli in orizzontale dalla cella M14 ( gennaio) sino alla Cella X14 (dicembre)
        Se non trova il nome ( in colonna B) lo crea, ex novo, in coda agli altri già presenti .
        A questo punto, in analogia, deve selezionare, sempre dal file  “nomi Master.xls” i dati riferiti alla riga con colonna I =2 (riga 151 es.) (sono 12, uno per ogni mese,  quindi quelli colorati in verde)  e incollarli nello stesso file di prima “Report master.xls” andando prima a ricercare la riga che si riferisce allo stesso nominativo (Colonna B ) (quindi nell’esempio Riga 14) e incollarli in orizzontale, questa volta  dalla cella AA14 ( gennaio) sino alla Cella AL14 (dicembre)
        A questo punto finisce il ciclo, salva il file e ricomincia con domanda :” Vuoi cercare un altro nome?” Se si, ricomincia il ciclo, se no, chiude tutto.
        Non so se la spiegazione sia chiara, spero di si…. forse guardando il file è più chiaro!
        Un saluto a tutti! allego i file di esempio
        aqquila2

      • Avataraqquila2
        Partecipante
          Post totali: 87
        • Avataraqquila2
          Partecipante
            Post totali: 87
          • BySalvBySalv
            Amministratore del forum
              Post totali: 783

              Ciao Aqquila2, vedi se va bene, i 2 file vanno nella stessa cartella, apri il file nomi e fai doppioclick sul foglio in una parte qualsiasi, si apre una mascherina fai la scelta del nome nel combobox, sotto si vedono tutte le occorrenze che ci sono con il nome, seleziona la voce che vuoi trasferire ed avviene il trasferimento, ti avvisa ad operazione conclusa.

              i nuovi dati vengono aggiunti a quelli esistenti quindi attenzione a non immettere i dati 2 volte altrimenti dovrò inserire un controllo che il dato è già stato trasferito, al momento non esiste questo controllo.
              Inoltre il file “report” non ho dato una scelta del file quindi è solo quello

              Ciao By Sal (8-D

              ecco il file

              http://www.filedropper.com/aqquila2

               

              Ciao By Sal (8-)
              se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

              • Avataraqquila2
                Partecipante
                  Post totali: 87

                  ciao BySal!
                  Grazie! ho provato il codice e succede questo:
                  Facendo doppio click va in debug sulla riga del codice di foglio1:
                  ActiveSheet.Shapes.Range(Array(“Group 1”)).Select
                  Se apro la macro manualmente mi va in debug sul codice in Modulo1:
                  ActiveSheet.Shapes.Range(Array(“Group 1”)).Select
                  Invece sul file Report Master vedo che la copia dei dati avviene su due righe ( Nome111 utlizza due righe ( la riga 37 e 38). Dovrebbe invece copiare sulla stessa riga.

                  Se il Nome111 esiste già ( come in esempio) non deve copiare su nuova riga ma utilizzare quella.

                  Ciao! Grazie!

                  aqquila2

                   

              • BySalvBySalv
                Amministratore del forum
                  Post totali: 783

                  Ciao ecco il file, ho creato una userform visto che non funzionava con il doppioclick, ho inserito un pulsante vicino ad intestazioni.

                  ed ho fatto anche in modo che se esiste la voce non crea un nuovo record.

                  ma attenzione se ci sono dati vecchi li sovrascrive con i nuovi.
                  il file report Master già ce l’hai

                  Ciao By Sal (8-D

                  il file
                  http://www.filedropper.com/nomimaster

                  Ciao By Sal (8-)
                  se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

                  • Avataraqquila2
                    Partecipante
                      Post totali: 87

                      ciao Bysal,

                      provato il codice e va bene !! :good:

                      Per il “sovrascrivi” si può metter un alert che avvisi ” vuoi sovrascrivere?”; se si sovrascrive , se no esce

                      Una cosa invece ritengo indispensabile:  cioè la macro dovrebbe risiedere in un file vuoto e al lancio chiedere quale file voglio analizzare, e analogamente chiedere dove voglio copiare i dati.

                      Questo perchè nella realtà ho tanti file da analizzare e devo selezionare di volta in volta la destinazione.

                      Ti ringrazio!!

                      ciao

                      aqquila2

                  • BySalvBySalv
                    Amministratore del forum
                      Post totali: 783

                      Ciao Aqquila2, il problema principale è il layout, tutti i file di cui stiamo parlando hanno la stessa impostazione?, cioè i dati sia del master dati che del master report si trovano nelle stesse posizioni, altrimenti non è possibile, si deve pensare a qualcosa di diverso.

                      Ciao By Sal (8-D

                      Ciao By Sal (8-)
                      se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

                      • Avataraqquila2
                        Partecipante
                          Post totali: 87

                          ciao!,

                          nella realtà il file Nomi Master è un file che ci viene inviato periodicamente dall’esterno, con aggionamenti periodici, senza modificare l’architettura del file. Però, come ho fatto ora, devo copiare tutti i dati “veri” sul file Nomi Master; oppure copiare l’intera macro sul file vero! ( non saprei come però!!)

                          Invece la destinazione dei dati copiati ho pensato di splittarli in vari file ( uno per ogni nome di REP!_ saranno circa 15) che tra di loro mantengono sempre la stessa architettura. ( per me è meglio 15 file di 30/35 record che un unico file da 400).  Ecco perchè pensavo ad una msgbox che chieda ” in quale file vuoi copiare? ” ; mi apre il percorso di scelta, scelgo il file giusto e avvia la copia.!

                          Grazie ciao!

                          aqquila2

                           

                      • BySalvBySalv
                        Amministratore del forum
                          Post totali: 783

                          Ciao Aqquila2, ecco il file, ti ho modificato la macro, basta solo questo file.

                          allora procedi in questo modo, la prima cosa crea i nuovi File “Report” chiamandoli “Rep1 Master”, “Rep2 Master”, “Rep3 Master”, etc…, logicamente li pulirai dei dati dei mesi oppure li lasci fai come vuoi, l’importante che stiano tutti nella stessa cartella insieme al file “Nomi Master” altrimenti non riesce a trovarli.

                          quando ti arriva il file “Nomi Master” o crei un nuovo foglio da inserire in prima posizione oppure cancelli i dati e li copi nel foglio, a questo punto procedi normalmente al trasferimento dei dati.

                          quando fai la scelta come vedi nella mascherina compare anche “Rep1”, quindi quando fai la scelta del dato da passare la macro apre il file “Repx Master” dove la x sta per 1-2-3-etc.. e scrive i dati.

                          se ci sono dati esistenti ti avvisa con un messaggio se dici “No” chiude il file e non fa niente se invece confermi sovrascrive i dati.

                          potevo anche controllare solamente il dato mensile tralasciando quello dei mesi precedenti, ma questa è un altra cosa.

                          ecco il file ti ho aggiunto anche alcuni report di esempio.
                          http://www.filedropper.com/aqquila3

                          Ciao By Sal (8-D

                          Ciao By Sal (8-)
                          se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

                          • Avataraqquila2
                            Partecipante
                              Post totali: 87

                              ciao BySal

                              ho testato la nuova versione!

                              Ho iniziato a personalizzre i file. Qualche giorno di prove e ti dirò.

                              Per ora tutto ok :good:

                              Grazie ancora !

                              aqquila2

                              p.s.

                              Una curiosità ( non è influente!) :

                              Se il nominativo non è presente nel file Repx Master lo crea ex novo , però nella colonna Periodo invece di “ANNO 2019″ inserisce un ” fastidioso” ANNO/C 2019. Non son riuscito a capire quel /C da dove origini!!

                            • Avataraqquila2
                              Partecipante
                                Post totali: 87

                                ciao

                                allora, ho testato sui file la macro e va benissimo!!

                                Per concludere si può introdurre una formula che trasforma i valori  0 in 0,20 ?

                                ciao !!!

                                aqquila2

                                 

                            • BySalvBySalv
                              Amministratore del forum
                                Post totali: 783

                                Ciao Aqquila2, ho modificato la macro vedi se adesso va bene, ma attenzione dovunque trova 0 lo trasforma in 0,20.

                                fai le prove perche non l’ho testato

                                ciao By Sal (8-D

                                http://www.filedropper.com/nomimaster_1

                                Ciao By Sal (8-)
                                se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

                                • Avataraqquila2
                                  Partecipante
                                    Post totali: 87

                                    Ciao Sal

                                    ho finalmente potuto testare il nuovo pezzo di xcodice per trasformare lo zero in 0,20

                                    Ho notato questo: se è un nuovo inserimento ( nominativo non presente in Report allora correttamente trascrive 0,20 invece che 0.

                                    Se invece il nominativo è già presente in Report ( anche senza valori) allora trascrive lo zero come prima!

                                    L’ho provato diverse volte ed ho riscontrato questo!

                                    ciao

                                    aqquila2

                                     

                                • BySalvBySalv
                                  Amministratore del forum
                                    Post totali: 783

                                    Ciao però non ho capito se vabene o meno che scrive lo zero, io non ho previsto che in caso valore mancante anche lo zero cioè cella vuota deve sempre inserire 0.20

                                    ciao By Sal (8-D

                                    Ciao By Sal (8-)
                                    se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

                                    • Avataraqquila2
                                      Partecipante
                                        Post totali: 87

                                        ciao Sal

                                        il dato mancante ( cella vuota) va bene come viene gestita ora; (la cella rimane vuota)

                                        In tutti gli altri casi, dove il valore riportato in Cella è 0, allora deve avvenire la trasformazione in 0,20

                                        Lo fa correttamente solo se deve inserire come nuovo nominativo.

                                        Se invece il nominativo già c’è, allora non converte da 0 a 0,20, ma rimane 0

                                        ciao!!

                                        aqquila2

                                    • BySalvBySalv
                                      Amministratore del forum
                                        Post totali: 783

                                        Ciao Aqquila2, ecco il file con la modifica scusa il ritardo , ho avuto problemi

                                        Ciao By Sal  (8-D

                                        http://www.filedropper.com/nomimaster_2

                                         

                                        Ciao By Sal (8-)
                                        se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

                                        • Avataraqquila2
                                          Partecipante
                                            Post totali: 87

                                            ciao Sal e grazie!

                                            ho testato “velocemente” il nuovo codice però continua a scaricare correttamente ( con 0 trasformato in 0,20) se si tratta di nuovo nome, ma continua a scrivere 0 se nome già esistente o se sovrascrive)

                                            domani farò altre prove !!

                                            ciao

                                            aqquila2

                                        • BySalvBySalv
                                          Amministratore del forum
                                            Post totali: 783

                                            Farò anche io delle prove ho solo cambiato il codice e non ho fatto alcuna prova, potrà anche darsi che ti ho ripassato quello vecchio, nel caso rinomino il file.

                                            Ciao By sal (8-D

                                            Ciao By Sal (8-)
                                            se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

                                            • Avataraqquila2
                                              Partecipante
                                                Post totali: 87

                                                ciao Sal

                                                ho fatto altre prove ma confermo quello che ti ho segnalato prima:

                                                se è nuovo inserimento allora mi converte o in 0,20

                                                Se nome già presente o se sovrascrivo allora lascia lo 0

                                                ciao!

                                                aqquila2

                                            • BySalvBySalv
                                              Amministratore del forum
                                                Post totali: 783

                                                Ciao Aqquila2 ecco il file, credo di aver risolto il problema, ti ho anche sistemato “Ann0 C/2019” riportava male l’anno.

                                                ecco il file

                                                http://www.filedropper.com/nomimaster2

                                                Ciao By Sal (8-D

                                                 

                                                 

                                                 

                                                Ciao By Sal (8-)
                                                se ti piace la soluzione aiuta a sostenere il Forum con una DONAZIONE a piacere, Grazie

                                                • Avataraqquila2
                                                  Partecipante
                                                    Post totali: 87

                                                    ciao Sal

                                                    ok, provato e va bene!!

                                                    Grazie come sempre!! :good:

                                                    ciao!

                                                    aqquila2

                                              Visualizzazione 11 filoni di risposte
                                              • Devi essere connesso per rispondere a questo topic.