Buon Anno anche a te e... Benvenuto nel Forum
Crea un foglio che chiamerai "ElencoEd" (oppure rinomina il Foglio3)
Nel VBA (Modulo) inserisci l'intero codice che crea due macro e una chiave Pubblica
- Codice: Seleziona tutto
Public EditoreS As String
Sub CreaElencoEditori()
Application.ScreenUpdating = False
Worksheets("ElencoEd").Select
Columns("A:A").ClearContents
RE = 1
righe = Worksheets("Foglio1").Range("D2").CurrentRegion.Rows.Count
For RR = 2 To righe
If Worksheets("Foglio1").Cells(RR, 4).Value <> Worksheets("Foglio1").Cells(RR + 1, 4).Value Then
Worksheets("ElencoEd").Cells(RE, 1).Value = Worksheets("Foglio1").Cells(RR, 4).Value
RE = RE + 1
End If
Next RR
Application.ScreenUpdating = True
End Sub
Sub CompilaFoglio2()
Application.ScreenUpdating = False
Worksheets("Foglio2").Select
Cells.Clear
RE = 1
righe = Worksheets("Foglio1").Range("D2").CurrentRegion.Rows.Count
For RR = 1 To righe
If RR = 1 Then
Sheets("Foglio1").Rows(RR & ":" & RR).Copy Destination:=Sheets("Foglio2").Rows(RE & ":" & RE)
GoTo Salta
End If
If Worksheets("Foglio1").Cells(RR, 4).Value = EditoreS Then
Sheets("Foglio1").Rows(RR & ":" & RR).Copy Destination:=Sheets("Foglio2").Rows(RE & ":" & RE)
Application.CutCopyMode = False
Salta:
RE = RE + 1
End If
Next RR
Columns("A:K").Select
Columns("A:K").EntireColumn.AutoFit
Range("A1").Select
Application.ScreenUpdating = True
End Sub
Nel VBA del foglio ElencoEd metterai questo codice
- Codice: Seleziona tutto
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address <> "$D$1" Then Exit Sub
EditoreS = [D1]
Call CompilaFoglio2
End Sub
In D1 del foglio creerai una convalida dell'area A1:A2000
Nascondi, se vuoi, la Colonna A del foglio "ElencoED"
Crea una forma alla quale assegnerai la macro "CreaElencoEditori"
A questo punto puoi utilizzare il programma
Con il pulsante creato aggiorni l'elenco Editori e ad ogni variazione della cella D1 (tramite l'elenco creato) avrai nel foglio2 tutte le righe del foglio1 appartenenti all'editore da te scelto
Comunque
allego il file completo
Fai sapere
Ciao