Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
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