Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Cerca codice fiscale

Ultimo Aggiornamento: 13/07/2017 22:08
Post: 21
Registrato il: 19/06/2016
Città: MILANO
Età: 44
Utente Junior
2010
OFFLINE
12/07/2017 20:43

Amici,

vorrei creare un pulsante (macro) dove l'ho disegnato ovvero nel primo foglio di lavoro, che attivato, cerca i codici fiscali dei soggetti disposti negli altri fogli e se lo trova rimanda l'utente al foglio direttamente.

Mi serve perchè devo inviarlo alla clientela di Studio ma non vorrei che perdessero tempo e poi magari neanche lo sanno usare.

Quindi ho pensato che con un cerca trova un po' più automatizzato tutto può diventare più semplice.

Se riuscite a darmi una mano, vi allego il relativo file e vi ringrazio anticipatamente.

[SM=x423023] [SM=x423023] [SM=x423023]
Post: 3.361
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
ONLINE
12/07/2017 23:33

Ciao Michele

Prova con la macro che vedi sotto

vb
Sub trovaCF()
Dim i As Integer
Dim rng As Range
Dim CF As String
On Error Resume Next
CF = InputBox("Immettere il Codice fiscale", "Ricerca Codice Fiscale")
If CF = "" Then Exit Sub
Application.ScreenUpdating = False
For i = 2 To Sheets.Count
With Sheets(i).Range("A:A")
            Set rng = .Find(What:=CF, _
                            After:=.Cells(.Cells.Count), _
                            LookIn:=xlValues, _
                            LookAt:=xlWhole, _
                            SearchOrder:=xlByRows, _
                            SearchDirection:=xlNext, _
                            MatchCase:=False)
            If Not rng Is Nothing Then
               Sheets(rng.Parent.Name).Activate
            End If
        End With
Next i
Application.ScreenUpdating = True
End Sub


Non sapendo come volessi inserire il CF al lancio della macro viene visualizzata.

Ti allego il file.

Alfredo
Post: 509
Registrato il: 16/08/2015
Città: CORDENONS
Età: 67
Utente Senior
Excel 2016-32bit Win11
OFFLINE
13/07/2017 00:06

Un saluto a tutti.

Vedo che ormai arrivo tardi ma considerato che anch'io ho bozzato una macro da agganciare al pulsante la riporto.
Però rimane un dubbio, ma gli utilizzatori sapranno attivare l'uso delle macro in Excel ?
Option Explicit

Sub Cerca_In_Fogli()

    Dim cf As Variant
    Dim trova As Range
    Dim sht As Worksheet
    
    cf = Application.InputBox("Indica il Codice Fiscale da cercare", "Cerca")
    If cf = False Then                          'se Annullo o Chiudo abbandona macro
        Exit Sub
    End If
    If cf = "" Then                             'se il campo vuoto abbandona macro
        MsgBox "Non hai indicato il Codice Fiscale da cercare", vbExclamation
        Exit Sub
    End If
    For Each sht In Worksheets
        If sht.Name <> "Istruzioni" Then        'escludi il primo foglio
            sht.Select                          'attiva il foglio da controllare
            Set trova = Range("A:A").Find(cf, LookIn:=xlValues, LookAt:=xlPart) 'cerca nella colonna dei codici fiscali
            If Not trova Is Nothing Then        'se trovo il codice procedi
                trova.Select                    'seleziona cella trovata
                Exit Sub                        'termina macro
            End If
        End If
    Next sht
    MsgBox "Codice Fiscale non trovato !", vbExclamation

End Sub
[Modificato da rollis13 13/07/2017 00:09]

______________________________________________________________
C'è chi fa le COSE a CASO e chi fa CASO alle COSE (Ignoto)
Post: 21
Registrato il: 19/06/2016
Città: MILANO
Età: 44
Utente Junior
2010
OFFLINE
13/07/2017 07:48

Cerca CF
Grazie Ragazzi !!!

Rollis solleva un dubbio sull'apertura della macro, bisogna attivarle mi sembra o no.

[SM=x423051] [SM=x423051] [SM=x423051] [SM=x423051] [SM=x423051] [SM=x423051] [SM=x423028]
Post: 3.362
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
ONLINE
13/07/2017 08:32

E se non le attivi come fai ad eseguirle?

Se uno chiede una macro si presuppone che ce le abbia attivate.

Alfredo
Post: 22
Registrato il: 19/06/2016
Città: MILANO
Età: 44
Utente Junior
2010
OFFLINE
13/07/2017 10:08

Ok per l' attivazione.

Oggi però in fase di prova è sorto un altro problema sollevato da un cliente

Su Excel 2017 non funziona, mi spiego una volta che si digita il codice fiscale è lo trova ti rimanda solo nel foglio dove l'ha trovato ma non mi indica qual'è

Su Excel 2010 invece mi trova il codice fiscale e me lo identifica con un tratteggio continuo

La domanda è come poter migliorare in caso si abbiano più versioni excel?

E' possibile inserire nella macro stessa che se lo trova ti colora la riga di riferimento oppure ti scrive l'ho trovato è il seguente....

[SM=x423023] [SM=x423023] [SM=x423023]

Post: 3.364
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
ONLINE
13/07/2017 12:15

Michele per quanto riguarda l'evidenziazione della riga sostituisci il codice precedente con questo

vb
Sub trovaCF()
Dim i As Integer
Dim rng As Range
Dim CF As String
On Error Resume Next
CF = InputBox("Immettere il Codice fiscale", "Ricerca Codice Fiscale")
If CF = "" Then Exit Sub
Application.ScreenUpdating = False
For i = 2 To Sheets.Count
Sheets(i).Cells.Interior.ColorIndex = xlNone
With Sheets(i).Range("A:A")
            Set rng = .Find(What:=CF, _
                            After:=.Cells(.Cells.Count), _
                            LookIn:=xlValues, _
                            LookAt:=xlWhole, _
                            SearchOrder:=xlByRows, _
                            SearchDirection:=xlNext, _
                            MatchCase:=False)
            If Not rng Is Nothing Then
               Sheets(rng.Parent.Name).Activate
               rng.EntireRow.Interior.ColorIndex = 6
            End If
        End With
Next i
Application.ScreenUpdating = True
End Sub


Quanto ai malfunzionamenti che rilevi (e che io non ho) avendo solo Excel 2013 non posso fare prove e non posso risponderti.

Alfredo
Post: 23
Registrato il: 19/06/2016
Città: MILANO
Età: 44
Utente Junior
2010
OFFLINE
13/07/2017 15:19

Grazieeeeeee Alfredo ora funziona!! [SM=x423062] [SM=x423062] [SM=x423062] [SM=x423017] [SM=x423017] [SM=x423017]

Un'altra "pippa" degli utenti è questa, quando non trova il CF la macro non dice ad esempio "Codice fiscale non trovato" è sottointeso.

Ma qualcuno mi ha fatto notare che non vedendo alcun messaggio pensa non funzioni.

E' possibile dire nella macro quando non trova il CF : " Codice Fiscale non trovato"
Post: 3.366
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
ONLINE
13/07/2017 15:52

Sostituisci la vecchia macro con questa

vb
Sub trovaCF()
Dim i As Integer
Dim rng As Range
Dim CF As String
On Error Resume Next
CF = InputBox("Immettere il Codice fiscale", "Ricerca Codice Fiscale")
If CF = "" Then Exit Sub
Application.ScreenUpdating = False
For i = 2 To Sheets.Count
Sheets(i).Cells.Interior.ColorIndex = xlNone
With Sheets(i).Range("A:A")
            Set rng = .Find(What:=CF, _
                            After:=.Cells(.Cells.Count), _
                            LookIn:=xlValues, _
                            LookAt:=xlWhole, _
                            SearchOrder:=xlByRows, _
                            SearchDirection:=xlNext, _
                            MatchCase:=False)
            If Not rng Is Nothing Then
               Sheets(rng.Parent.Name).Activate
               rng.EntireRow.Interior.ColorIndex = 6
               Else
               MsgBox "Codice fiscale non trovato"
            End If
        End With
Next i
Application.ScreenUpdating = True
End Sub


Alfredo
Post: 24
Registrato il: 19/06/2016
Città: MILANO
Età: 44
Utente Junior
2010
OFFLINE
13/07/2017 17:08

Grazie Alfredo

[SM=x423017] [SM=x423017]
Post: 1.468
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
13/07/2017 17:23

Re:
Fiore.Michele, 13/07/2017 15.19:

.....Un'altra "pippa" degli utenti.....qualcuno mi ha fatto notare che non vedendo alcun messaggio pensa non funzioni....



Vedrai che "qualcun altro" ti farà notare che i CF trovati restano evidenziati e se la ricerca di un nuovo CF porta nello stesso foglio in cui ci sono altri CF evidenziati, "l'utente resterà disorientato" anche se viene selezionata la relativa riga.

Te lo dico solo perché conosco bene "la razza utenti..." eh..eh..eh
[SM=x423037]

saluti
Domenico
Win 10 - Excel 2016
Post: 3.367
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
ONLINE
13/07/2017 18:44

Scusa Domenico mi puoi spiegare meglio?

Con questa istruzione

vb
Sheets(i).Cells.Interior.ColorIndex = xlNone


elimino le precedenti evidenziazioni.

Perché dici:

"Vedrai che "qualcun altro" ti farà notare che i CF trovati restano evidenziati e se la ricerca di un nuovo CF porta nello stesso foglio in cui ci sono altri CF evidenziati"?

Mi son perso qualcosa?

Alfredo
Post: 1.472
Registrato il: 06/04/2013
Utente Veteran
2010
OFFLINE
13/07/2017 19:06

Alfredo....perdono!!! [SM=x423054] non l'avevo visto...mannaggia quelli anziani!! [SM=x423055]

scusami

cari saluti


Domenico
Win 10 - Excel 2016
Post: 3.369
Registrato il: 21/06/2013
Città: NAPOLI
Età: 70
Utente Master
Excel 365
ONLINE
13/07/2017 19:23

Re:
dodo47, 13/07/2017 19.06:

Alfredo....perdono!!! [SM=x423054] non l'avevo visto...mannaggia quelli anziani!! [SM=x423055]

scusami

cari saluti





Ma se andiamo a braccetto [SM=x423028]

Temevo di aver fatto una qualche "cappellata" (cosa non difficile [SM=g27828] )

Un caro saluto anche a te.



Alfredo
Post: 3
Registrato il: 30/05/2017
Città: AOSTA
Età: 62
Utente Junior
2013
OFFLINE
13/07/2017 22:08

Ciao a tutti,
e che dire di quelli che ti fanno notare che con cinque MsgBox consecutivi anche se viene trovato il codice inserito, "l'utente resterà disorientato". [SM=x423059]

Nonostante le mie competenza con VBA sia inversamente proporzionale all'esperienza con utenti disorientati, ho provato a rimediare, a scopo autodidattico.
Sono ovviamente graditi suggerimenti e critiche.


Option Explicit

Sub trovaCF2 ()
Dim trovato As Boolean
Dim I As Long
Dim CF As String
Dim CodicePresente As Range

CF = InputBox("Immettere il Codice fiscale", "Ricerca Codice Fiscale")
If CF = "" Then Exit Sub
Application.ScreenUpdating = False
For I = 2 To Sheets.Count
Sheets(I).Cells.Interior.ColorIndex = xlNone

     Set CodicePresente = Sheets(I).Cells.Find(CF, LookIn:=xlValues, LookAT:=xlWhole)
    If Not CodicePresente Is Nothing Then
        Sheets(I).Select
        CodicePresente.Activate
        CodicePresente.EntireRow.Interior.ColorIndex = 6
        trovato = True
    End If
Next I
    If trovato = False Then
        MsgBox "Codice fiscale non presente!", vbExclamation
    End If
    Application.ScreenUpdating = True
End Sub

Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 11:07. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com