Cercare in diversi fogli e Copiare in un determinato foglio la condizione soddisfatta.

Buongiorno

Avrei la necessità di cercare una condizione in diversi fogli e, quando soddisfatta, venga copiata in diverse colonne, a seconda del foglio.
Con questa macro:

Sub copiarighe()
Sheets("Stat").Select
Range("A:A").AutoFilter Field:=1, Criteria1:="=" & Range("Foglio1!B1")
Range("C:C").Copy Destination:=Range("Foglio1!D5")
Selection.AutoFilter
Range("A1").Select
End Sub

Riesco a cercarlo nel foglio stat e copiare la condizione di B1 a partire dalla cella D5 nel Foglio1.
Ora avendo 10 fogli nominati stat, stat1, stat2, stat3, etc... vorrei che per ogni foglio, in cui il valore di B1 viene trovato, venisse riportato in Foglio1 per ogni colonna: stat da D5 in basso, stat1 da E5 in basso, stat2 da F5 in basso.... e cosi' via

Ringrazio in anticipo chi cerchera' di aiutarmi =)
Risposta
Risposta
Buongiorno

Avrei la necessità di cercare una condizione in diversi fogli e, quando soddisfatta, venga copiata in diverse colonne, a seconda del foglio.
<cut>
Ora avendo 10 fogli nominati stat, stat1, stat2, stat3, etc... vorrei che per ogni foglio, in cui il valore di B1 viene trovato, venisse riportato in Foglio1 per ogni colonna: stat da D5 in basso, stat1 da E5 in basso, stat2 da F5 in basso.... e cosi' via

Ringrazio in anticipo chi cerchera' di aiutarmi =)


Questa dovrebbe fare quanto chiedi(o quanto ho capito):

 

Public Sub m()

    Dim sh As Worksheet
    Dim sh1 As Worksheet
    Dim lCol As Long
   
    Set sh1 = ThisWorkbook.Worksheets("Foglio1")
   
    Application.ScreenUpdating = False
   
    With sh1
   
        For Each sh In ThisWorkbook.Worksheets
       
            If InStr(sh.Name, "stat") Then
           
                If Replace(sh.Name, "stat", "") = "" Then
                    lCol = 4
                Else
                    lCol = CInt(Replace(sh.Name, "stat", "")) + 4
                End If
               
                sh.Range("A:A").AutoFilter Field:=1, _
                    Criteria1:="=" & .Range("B1").Value
                sh.Range("C:C").Copy Destination:=.Cells(5, lCol)
           
            End If
        Next
   
        .Range("A1").Select
   
    End With
   
    Application.ScreenUpdating = True
   
    Set sh = Nothing
    Set sh1 = Nothing
   
End Sub

 

Qui trovi il file che ho utilizzato per l'esempio:

http://www.maurogsc.eu/esempiforum13/filtrofoglidiversi.zip

--
Mauro Gamberini
Microsoft© MVP (Excel)
http://www.maurogsc.eu

La risposta è risultata utile?

Siamo spiacenti che questo non sia stato utile.

Ottimo. Grazie per il tuo feedback.

Quanto sei soddisfatto di questa risposta?

Grazie per il feedback, ci aiuta a migliorare il sito.

Quanto sei soddisfatto di questa risposta?

Grazie per il tuo feedback.

 
 

Informazioni domanda


Ultimo aggiornamento 6 ottobre 2021 Visualizzazioni 134 Si applica a: