Quando Michael esegue un’operazione “Trova tutto” in Excel, il programma mostra utilmente un elenco di tutte le celle contenenti tutto ciò che sta cercando.

Michael vorrebbe copiare quell’elenco di indirizzi di cella in un altro foglio di lavoro, quindi si chiede se esiste un modo per copiare l’elenco negli Appunti in modo da poterlo incollare in un foglio di lavoro.

Esistono alcuni modi per eseguire questa operazione e la maggior parte di essi prevede l’uso di macro. Prima di passare agli approcci basati su macro, tuttavia, diamo un’occhiata al modo in cui puoi accedere agli indirizzi usando intervalli denominati e il Name Manager:

  1. Usa FindAll come prima, ma non chiudere la finestra di dialogo Trova e sostituisci.

  2. Nell’elenco di indirizzi che ti viene mostrato, scorri fino in fondo, tieni premuto il tasto Maiusc e fai clic sull’ultima corrispondenza. Excel seleziona tutte le celle corrispondenti.

  3. Premere Esc per chiudere la finestra di dialogo Trova e sostituisci. Le celle corrispondenti sono ancora tutte selezionate.

  4. Digita un nome nella casella Nome (appena a sinistra della barra della formula e appena sopra la cella A1). Questo crea un intervallo denominato che consiste di tutte le celle selezionate.

  5. Visualizza la scheda Formule della barra multifunzione.

  6. Fare clic sullo strumento Name Manger. Excel visualizza la finestra di dialogo di Name Manager. (Vedi figura 1.)

  7. Fare clic sul nome creato nel passaggio 4.

  8. L’elenco delle celle si troverà nella casella Riferito a, nella parte inferiore della finestra di dialogo.

A questo punto puoi copiare le informazioni nella casella Si riferisce a e incollarle in quello che vuoi (incluso un altro foglio di lavoro). Dovrai massaggiare un po ‘i dati dopo averli incollati, poiché l’elenco è proprio questo: un elenco seriale di indirizzi di celle.

Ovviamente, questo influisce sulla tua cartella di lavoro, poiché crea un intervallo denominato. Se lo fai più volte, avrai più intervalli denominati creati.

Questo, ovviamente, può diventare rapidamente ingombrante se è necessario eseguire l’attività abbastanza spesso. È qui che entrano in gioco le soluzioni macro. Quello che segue è un esempio di una macro che cercherà un valore specifico e quindi inserirà l’indirizzo di ogni cella contenente quel valore in un altro foglio di lavoro.

Sub CellAdressList()

Dim c1 As String     Dim nxt As String

Sheets("Sheet1").Select     Range("A1").Select     Cells.Find(What:="qrs", After:=ActiveCell, _       LookIn:=xlValues, LookAt:=xlWhole, _       SearchOrder:=xlByRows, SearchDirection:=xlNext, _       MatchCase:=False, SearchFormat:=False).Activate     c1 = ActiveCell.Address     Sheets("Sheet2").Select     Range("A1").Select     Range("A1").Value = c1     Do Until nxt = c1         Sheets("Sheet1").Select         Cells.FindNext(After:=ActiveCell).Activate         nxt = ActiveCell.Address         Sheets("Sheet2").Select         ActiveCell.Offset(1, 0).Select         ActiveCell.Value = nxt     Loop     ActiveCell.Value = ""

End Sub

La macro fa alcune ipotesi. Innanzitutto, si presume che si stiano cercando informazioni nel foglio di lavoro denominato Sheet1. In secondo luogo, si presume che si desidera che l’elenco di indirizzi venga inserito nel foglio di lavoro denominato Sheet2. Infine, si presume che si stia cercando il valore “qrs” all’interno di Sheet1. Tutti questi elementi della macro possono essere modificati, se lo si desidera.

Per qualcosa di leggermente più flessibile, considera la seguente macro. Si presume che tu abbia già selezionato tutte le celle che contengono il valore desiderato. (In altre parole, è necessario eseguire i passaggi da 1 a 3 dei passaggi all’inizio di questo suggerimento.) È quindi possibile eseguire la macro.

Sub CopyFindAllSelection()

Dim outcell As Range     Dim c As Range

Set outcell = Range("Sheet2!A1")

For Each c In Selection         outcell.Value = c.Address         Set outcell = outcell.Offset(1, 0)

Next End Sub

Il risultato è che gli indirizzi delle celle selezionate vengono inseriti nel foglio di lavoro Sheet2. Questa macro è un po ‘più flessibile perché ti consente di trovare qualsiasi cosa in qualsiasi foglio di lavoro. L’unica parte “hard coded”

è il foglio di lavoro (Sheet2) in cui vengono inseriti gli indirizzi.

_Nota: _

Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (13581) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.