Sviluppare funzionalita su Microsoft Office con VBA trovare il codice fiscale

Login Registrati
Stai vedendo 13 articoli - dal 1 a 13 (di 13 totali)
  • Autore
    Articoli
  • #35257 Score: 0 | Risposta

    Giulio

      Buongiorno. Applicativo Excel. Ho due fogli pazienti e anagrafico. Quando scrivo sulla colonna a del foglio pazienti il codice fiscale il sistema dovrebbe verificare se è esistente sul foglio anagrafico. Se esistente il cursore si dovrebbe posizionare sulla cella libera della colonna b accanto al codice fiscale scritto. se non esistente il sistema si dovrebbe posizionare sulla prima cella libera della colonna a per poi scrivere il codice fiscale nuovo e altri dati. Spero di non aver chiesto una cosa difficile. Distinti saluti. Vi ringrazio per avermi ascoltato.

      #35258 Score: 0 | Risposta

      vecchio frac
      Senior Moderator
        272 pts

        Non è difficile però ti servono due righe di codice VBA. A che livello di confidenza sei messo con questo aspetto dell'utilizzo di Excel?

        Nel foglio di inserimento del codice fiscale intercetti la modifica della colonna appropriata. La macro cerca tale valore nella scheda di anagrafica. A questo punto segue una delle due opzioni che hai compiutamente descritto.

        Scriverti il codice è semplice ma devi assicurarti di essere in grado di padroneggiarlo per eventualmente adattarlo alle tue esigenze non solo attuali ma anche future. 

        Se vuoi intraprendere questa strada, allega un pezzo di file con lo scenario reale (dati fittizi se vuoi ma la struttura deve essere quella d'uso). 

        #35286 Score: 0 | Risposta

        Giulio

          Qualche rudimento di vba c'è l'ho. Ma non in questo caso. Comunque individuato il codice so gestirlo.

          #35287 Score: 0 | Risposta

          vecchio frac
          Senior Moderator
            272 pts

            vecchio frac ha scritto:

            allega un pezzo di file con lo scenario reale (dati fittizi se vuoi ma la struttura deve essere quella d'uso). 

            Mi autocito   

             

            #35289 Score: 0 | Risposta

            giulioc
            Partecipante

              Ti ho inviato l'esempio Buona giornata

              Allegati:
              You must be logged in to view attached files.
              #35292 Score: 0 | Risposta

              albatros54
              Moderatore
                89 pts

                io procederei cosi:

                nel foglio "anagrafico" settere il range di ricerca(range"a2:ultimacella")

                una volta che digito il Codice fiscale nel foglio"pazienti" selezione il foglio"anagrafico" e cerco il codicefiscale digitato, se lo trovo seleziono la cella attiva del foglio"paziente" spostandomi(offsett) di una colonna, altrimenti seleziono l'utima riga libera del foglio"anagrafico" colonna A.

                 

                 

                 

                Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
                Sempre il mare, uomo libero, amerai!
                ( Charles Baudelaire )
                #35294 Score: 0 | Risposta

                vecchio frac
                Senior Moderator
                  272 pts

                  albatros54 ha scritto:

                  io procederei cosi:

                  Sembra corretto. Naturalmente lo faresti via VBA quindi il foglio deve diventare xlsm e vanno attivate le macro.

                  #35311 Score: 0 | Risposta

                  albatros54
                  Moderatore
                    89 pts

                    copia il codice  che ti posto  nell'editor del foglio"pazienti"

                    Option Explicit
                    Private Sub Worksheet_Change(ByVal Target As Range)
                        Static i As Integer
                        Dim Shpazientiultimariga As Integer, Shanagraficoultimariga As Integer
                        Dim Shpazienti As Worksheet
                        Dim Shanagrafico As Worksheet
                        Dim Rnganagrafico As Range
                        Set Shpazienti = Sheets("pazienti")
                        Set Shanagrafico = Sheets("anagrafico")
                        Shpazientiultimariga = Shpazienti.Cells(Rows.Count, 1).End(xlUp).Row
                        Shanagraficoultimariga = Shanagrafico.Cells(Rows.Count, 1).End(xlUp).Row
                    
                    
                        If Intersect(Target, Range("a2:a" & Shpazientiultimariga)) Is Nothing Then Exit Sub
                    
                        Shanagrafico.Select
                    
                        Set Rnganagrafico = Shanagrafico.Range("a2:a" & Shanagraficoultimariga).Find(Target)
                        If Rnganagrafico Is Nothing Then
                            MsgBox "non esiste"
                            Shanagrafico.Cells(Shanagraficoultimariga + 1, 1).Select
                    
                        Else
                            MsgBox Rnganagrafico.Address
                            Shpazienti.Select
                            '
                        End If
                    
                    End Sub
                    

                    dovrebbe fare quello che hai chiesto.

                     

                    Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
                    Sempre il mare, uomo libero, amerai!
                    ( Charles Baudelaire )
                    #35312 Score: 0 | Risposta

                    vecchio frac
                    Senior Moderator
                      272 pts

                      Ciao albatros, 

                      sempre sul pezzo 🙂 Direi che funonzia come richiesto. La variabile Static i è naturalmente superflua, un refuso e infatti non viene utilizzata.

                      Per effetto delle formule inserite da OP (non avrei utilizzato CERCA.VERT ma è una mia mania, io ho la fissa per INDICE e CONFRONTA) è curioso che se in foglio Pazienti si digita "Codice Fiscale", Excel ti segnala giustamente che non esiste (merito del codice di albatros) ma poi senza battere ciglio ricopia l'intestazione (cognome, nome, data di nascita, ecc.) perché giustamente lo vede come un inserimento e quindi CERCA.VERT fa il su dovere 🙂

                       

                      #35314 Score: 0 | Risposta

                      giulioc

                        Perfetto! vi ringrazio immensamente.

                        #35315 Score: 0 | Risposta

                        giulioc

                          Perfetto grazie

                          #35448 Score: 0 | Risposta

                          giulioc
                          Partecipante

                            Buongiorno torno a disturbare, si può inserire un'ulteriore aiutino ovvero il codice fiscale digitato su pazienti che non è presente su anagrafica lo si può ricopiare sull'anagrafica? Grazie ancora della vostra cortesia. 

                            #35452 Score: 0 | Risposta

                            albatros54
                            Moderatore
                              89 pts

                              Nel codice postato in precedenza sostituisci la riga :

                              Shanagrafico.Cells(Shanagraficoultimariga + 1, 1).Select

                              con

                              Shanagrafico.Cells(Shanagraficoultimariga + 1, 1) = Target

                               

                              Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing)
                              Sempre il mare, uomo libero, amerai!
                              ( Charles Baudelaire )
                            Login Registrati
                            Stai vedendo 13 articoli - dal 1 a 13 (di 13 totali)
                            Rispondi a: trovare il codice fiscale
                            Gli allegati sono permessi solo ad utenti REGISTRATI
                            Le tue informazioni: