Ricerca dato esistente in un file esterno

Anonimo
2019-08-21T10:42:34+00:00

Ciao a tutti,

ho due file excel (Cartella1 e Cartella2);

in Cartella1, nella colonna D (a partire dalla riga 2 fino alla riga 2780), sono presenti indirizzi email;

in Cartella2, nella colonna C (a partire dalla riga 2), saranno presenti i nuovi indirizzi email;

Io vorrei che nel momento, in Cartella2 scrivo un indirizzo email, se presente anche in Cartella1, esca un messaggio che dice "questo indirizzo email esiste già" (con numero di riga e colonna), in caso contrario non deve uscire niente.

Grazie mille in anticipo della disponibiltà e buona continuazione.

Microsoft 365 e Office | Excel | Per la casa | Windows

Domanda bloccata. Questa domanda è stata eseguita dalla community del supporto tecnico Microsoft. È possibile votare se è utile, ma non è possibile aggiungere commenti o risposte o seguire la domanda.

0 commenti Nessun commento
Risposta accettata dall'autore della domanda
Anonimo
2019-08-21T11:39:23+00:00

Ciao Sol39,

ho due file excel (Cartella1 e Cartella2);

in Cartella1, nella colonna D (a partire dalla riga 2 fino alla riga 2780), sono presenti indirizzi email;

in Cartella2, nella colonna C (a partire dalla riga 2), saranno presenti i nuovi indirizzi email;

Io vorrei che nel momento, in Cartella2 scrivo un indirizzo email, se presente anche in Cartella1, esca un messaggio che dice "questo indirizzo email esiste già" (con numero di riga e colonna), in caso contrario non deve uscire niente.

  • Fai clic dx sulla linguetta del foglio di interesse del file Cartella2
  • Seleziona l'opzione Visualizza Codice dal **** menu contestuale risultante
  • Incolla il seguente codice:

 '=========>>

Option Explicit

'--------->>

Private Sub Worksheet_Change(ByVal Target As Range)

    Dim WB As Workbook

    Dim SH As Worksheet

    Dim Rng As Range, Rng2 As Range, rCell As Range

    Dim Res As Variant

    Dim sStr As String

    Const sCartella As String = "Cartella1.xlsm"               '<<=== Modifica

    Const sFoglio As String = "Sheet1"                 '<<=== Modifica

    Const sIntervallo_Email As String = "D2:D2780"        '<<=== Modifica

    Const sColonna_Nuove_Email As String = "C"             '<<=== Modifica

    Set Rng = Intersect(Me.Columns(sColonna_Nuove_Email), Target)

    If Not Rng Is Nothing Then

        Set WB = Workbooks(sCartella)

        Set SH = WB.Sheets(sFoglio)

        Set Rng2 = SH.Range(sIntervallo_Email)

        For Each rCell In Rng.Cells

            With rCell

                sStr = .Value

                Res = Application.Match(sStr, Rng2, 0)

                If Not IsError(Res) Then

                    Call MsgBox( _

                         Prompt:="L'indirizzo " & sStr _

                         & " si trova nella cella " _

                         & Rng2.Cells(Res).Address(External:=True), _

                         Buttons:=vbInformation, _

                         Title:="REPORT")

                End If

            End With

        Next rCell

    End If

End Sub

'<<=========

  • Alt+Q per chiudere l'editor di VBA e tornare a Excel.
  • Salva il file con l'estensione xlsm.

===

Regards,

Norman

La risposta è stata utile?

1 persona ha trovato utile questa risposta.
0 commenti Nessun commento

2 risposte aggiuntive

Ordina per: Più utili
  1. Anonimo
    2019-08-21T12:20:39+00:00

    Ciao Sol39,

    dirti che sei un genio è ben poco!

    Mi hai salvato la giornata.... grazie 100000000000

    Prego! :-)

    Alla prossima.

    ===

    Regards,

    Norman

    La risposta è stata utile?

    0 commenti Nessun commento
  2. Anonimo
    2019-08-21T12:14:15+00:00

    Ciao Norman,

    dirti che sei un genio è ben poco!

    Mi hai salvato la giornata.... grazie 100000000000

    Saluti,

    Sol39

    La risposta è stata utile?

    0 commenti Nessun commento