Ti crei un elenco in una colonna che potrai nascondere es.: colonna N
In L1 crei la convalida (da Menu Dati) e inserendo la voce Elenco (in Consenti) e selezionando in origine N1:Nx (fine elenco)
Poi nel vba del foglio inserisci questo codice
- Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$L$1" Then Exit Sub
TrovaStrCopia
End Sub
La macro va modificata in quanto deve prendere il valore di L1 quindi sarà così
- Codice: Seleziona tutto
Sub TrovaStrCopia()
Set Ws1 = Worksheets("Foglio1")
Set Ws2 = Worksheets("Foglio2")
Ws2.Range("A:I").ClearContents
UR1 = Ws1.Range("A" & Rows.Count).End(xlUp).Row
For RR1 = 2 To UR1
If Len(UCase(Ws1.Range("C" & RR1))) > Len(Replace(UCase(Ws1.Range("C" & RR1)), UCase([L1]), "")) Then
UR2 = Ws2.Range("A" & Rows.Count).End(xlUp).Row + 1
Ws1.Range("A" & RR1 & ":I" & RR1).Copy Destination:=Ws2.Range("A" & UR2)
End If
Next RR1
Ws1.Range("A1:I1").Copy Destination:=Ws2.Range("A1") '<<<< aggiunta riga per copiare la testata
Ws2.Select '<<<<<<<<<<<<<<<<< aggiunta riga per selezionare il foglio di output (foglio2)
End Sub
Allego il file testciao
EDIT ore 10:35 - aggiunte righe per completare dati output (vedi commenti nella macro)