› Excel e gli applicativi Microsoft Office › Confronto tra due file aperti per la ricerca di doppioni in colonne diverse
-
AutoreArticoli
-
Buongiorno a tutti,
gentilmente avrei bisogno del vostro aiuto per risolvere il problema seguente...
Ho due file excel entrambi aperti (Master1 e Master2); in Master1, nella colonna E2:E1337, c'è una lista di indirizzi email, mentre in Master2 la colonna che conterrà gli indirizzi email sarà la colonna C2:C...; quello che vorrei fare è questo: se in Master2 inserirò un indirizzo email uguale a un altro indirizzo email di Master1 mi dovrà uscire un messaggio che dice "attenzione, questa email esiste già nell'altro file in riga .... colonna ...." per poter vedere se effettivamente esiste altrimenti "questo è nuovo".
Avete qualche suggerimento su come procedere? Spero di aver chiarito in tal caso chiedete pure
Ringrazio tutti per l'attenzione e buona continuazione
Ciao
io farei così.
Anzichè scrivere l'indirizzo in cella lo farei scrivere in un input box poi con una macro usando un find oppure un ciclo fai la verifica se incluso nel file Master e se non esiste lo includi e scrivi in master 2
Ciao
Luca
Nell'evento Selection_Change del foglio Master2 inserisci un codice VBA di controllo sull'esistenza nel Master1.
La prima cosa che mi viene in mente è che puoi utilizzare un ciclo For/Next per confrontare gli indirizzi, oppure il metodo Find del Range che contenga l'elenco degli indirizzi.
Se esiste già annulli l'inserimento nella cella Target.
Ciao e grazie per aver risposto.
gibra, come funziona il metodo for..next per la ricerca del dato? Mi faresti qualche esempio?
Grazie mille
Ciao
il ciclo for .... next usa una variabile che assume tutti i valori oppure tutte le entità definite.
For indice = 1 to 10 msgbox indice Next For Each Miacella in Range("A1", "C5") msgbox Miacella.value NextNei due esempi sopra riportati ti ho mostrato come funziona il ciclo.
Nel primo caso la variabile indice assume tutti i valori tra 1 e 10
Nel secondo caso lsa variabile miacella vale ciascuna delle celle nel range definito.
trovato= false with workbooks("Master1).Sheets("Folgio ConElenco") for each CellaW in .Range("B5", .Cells(Rows.count, 2).end(xlup)) if CellaW.value=indirizzodaverificare msgbox "trovato" trovato=true 'altre azioni se esiste exit for end if next end with if not trovato thrn 'altre azioni se non trovato end ifCiao con il metodo find dovrebbe essere più veòloce
Sub pippo() Dim var Dim trovato var = "indirizzodaverificare" Set trovato = workbooks("Master1).Sheets("Folgio ConElenco").Range("B2", Cells(Rows.Count, 2).End(xlUp)).Find(What:=var, LookAt:=xlWhole) If Not trovato Is Nothing Then MsgBox "trovato in riga " & trovato.Row Else MsgBox "non trovato" End If End SubHo due file excel entrambi aperti (Master1 e Master2)
Ciao a tutti,
Gret, se non lo fai per comodità tua non ha senso tenere i due file aperti, basta che tieni aperto quello su cui devi scrivere gli indirizzi, sarà il codice che aprirà e chiuderà il file senza che tu te ne accorga, con un'istruzione del genere:
Set Master2 = Workbooks.Open(Master1.Path & "\" & " Master2.xlsx ") -
AutoreArticoli
