Problema con macro para pegar datos en celdas con filtro

Tengo una macro que autofiltra una columna de una hoja. Lo que quiero es que después de filtrar me pegue el valor de otra celda en una columna ya autofiltrada.

Tengo este código y lo que necesito es lo que pongo entre comillas, pegar en la columna K que esta filtrada el valor de la hoja "datos", columna "L", y así durante
'todo el bucle. Cada vez que sigue con el bucle el valor de la columna "L" puede ser diferente por eso he hecho un filtro. Agradezco la ayuda de antemano!

Sub autofiltrar()
Set lact = Sheets("ListadoActual"): Set datos = Sheets("DatosEmpresas")
vl1 = lact.Range("A" & Rows.Count).End(xlUp).Row
vl2 = datos.Range("A" & Rows.Count).End(xlUp).Row
For x = 4 To vl2
cod = datos.Range("B" & x)
lact.Range("E1:E" & vl1).AutoFilter Field:=1, Criteria1:=cod
' quiero pegar en la columna K que esta filtrada el valor de la hoja "datos", columna "L", y así durante
' todo el bucle
Next x
End Sub
1

1 respuesta

Respuesta
2

Al final buscando y buscando he conseguido adaptar un código que he encontrado. Se ha quedado así:

Dim rngData As Range
Set lact = Sheets("ListadoActual"): Set datos = Sheets("DatosEmpresas")
Range("A1").Select
vl1 = lact.Range("A" & Rows.Count).End(xlUp).Row
vl2 = datos.Range("A" & Rows.Count).End(xlUp).Row
For x = 4 To vl2
cod = datos.Range("B" & x)
lact.Range("A1:U" & vl1).AutoFilter Field:=5, Criteria1:=cod
Set rngData = lact.AutoFilter.Range.SpecialCells(xlCellTypeVisible)
With rngData
      For i = 1 To .Areas.Count
         Debug.Print .Areas(i).Address
      Next
End With
If i = 2 Then
Else
lact.Range("F2:F" & vl1) = datos.Range("A" & x)
lact.Range("K2:K" & vl1) = datos.Range("L" & x)
lact.Range("P2:P" & vl1) = datos.Range("M" & x)
End If
Next x
If ActiveSheet.FilterMode Then ActiveSheet.ShowAllData

La macro tiene en cuenta si al hacer autofiltro no encuentra datos, entonces no pega nada. De todos modos gracias a todos quienes habéis leído el post, lo cierto es que lo que pedía es algo muy rebuscado y particular.

Moisés.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas