Ciao Pos Paris e benvenuto
In
questa discussione c'è qualcosa che può fare al caso tuo in maniera semplice ed efficace
Altrimenti puoi fare anche in quest'altra maniera:
Nel foglio dove hai l'elenco (lista a tendina), ho immaginato in A1 del foglio2
inserisci questo codice VBE direttamente nel foglio
- Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$1" Then
Call Compila
End If
End Sub
(dove A1 è la cella della lista)
poi in un modulo inserisci questa macro
- Codice: Seleziona tutto
Sub Compila()
Rows("2:1000").Select
Selection.ClearContents
Range("A1").Select
Ur = Worksheets("Foglio1").Range("A1").End(xlDown).Row
NR = 1
For I = 1 To Ur
If Worksheets("Foglio2").Range("A1").Value = Worksheets("Foglio1").Range("A" & I).Value Then
Sheets("Foglio1").Select
Rows(I & ":" & I).Select
Selection.Copy
Sheets("Foglio2").Select
Rows(NR & ":" & NR).Select
ActiveSheet.Paste
NR = NR + 1
End If
Next I
Sheets("Foglio1").Select
Application.CutCopyMode = False
Range("A1").Select
Sheets("Foglio2").Select
Application.CutCopyMode = False
Range("A1").Select
End Sub
Chiaramente dovrai mettere i nomi dei tuoi fogli al posto di Foglio1 (il foglio dei dati) e Foglio2 (il foglio della lista)
A parità di cognome avrai tante righe per quanti cognomi uguali saranno trovati nel foglio dati.
Avvertenza: il codice
Rows("2:1000").Select
Selection.ClearContents
Cancella le righe da 2 a 1000 del foglio2 (in quanto l'elenco è in A1).
Se il tue elenco è nella riga 2 dovrai mettere
Rows("3:1000").Select
Selection.ClearContents
Fai sapere
Ciao