Excel - Copiar datos de una tabla, segun varios criterios

 
Vista:
sin imagen de perfil
Val: 78
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Copiar datos de una tabla, segun varios criterios

Publicado por Toni (39 intervenciones) el 24/10/2019 22:35:47
Buenas de nuevo

Estoy intentado crear una rutina que copie en la celda B10 de la hoja GRAELLA los datos filtrados de una tabla situada en la hoja MATRICULAS, segun el valor del filtro GRAELLA.C3.

Para ello creo la siguiente rutina:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
Private Sub Worksheet_Change(ByVal Target As Range)
 
    If Target.Address = "$C$3" Then
 
        'Define variables
            Dim c As String
            c = Sheets("GRAELLA").Cells(3, 3).Value
 
        'Borra los datos existentes en GRAELLA
            Sheets("GRAELLA").Select
            Range("B10").Select
            Range("B10", "B26").Value = Null
 
        'Efectua los filtros en la hoja MATRICULES
            Sheets("MATRICULES").Select
            Selection.AutoFilter
            Sheets("MATRICULES").AutoFilter Field:=11, Criteria1:=c
            Sheets("MATRICULES").AutoFilter Field:=53, Criteria1:="Actiu"
 
        'Selecciona y copia
            Sheets("MATRICULES").Range("G2", Range("G2").End(xlDown)).Copy
 
        'Copia los datos en GRAELLA
            ActiveSheet.Paste
 
        'Desactiva la selección i el filtro
            Application.CutCopyMode = False
            Selection.AutoFilter
    End If
 
End Sub

El error lo encuento en la linea 17: "Error 448. No se encontró el argumento con nombre".
Me parece haber seguido bien las instrucciones que he ido encontrando en la web. Donde me equivoco?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 78
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Copiar datos de una tabla, segun varios criterios

Publicado por Toni (39 intervenciones) el 25/10/2019 13:43:59
Finalmente pude conseguir lo que deseaba.
Dejo aqui debajo la rutina, para servicio de todos, y también por si alguien quiere darme su opinión para mejorarla.

Muchas gracias

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Private Sub Worksheet_Change(ByVal Target As Range)
 
    If Target.Address = "$C$3" Then
 
        'Evita el parpadeo
            Application.ScreenUpdating = False
 
        'Define variables
            Dim c As String
            c = Sheets("GRAELLA").Cells(3, 3).Value
 
        'Desprotege GRAELLA i Borra los datos existentes en el rango
            ActiveSheet.Unprotect ("SolSolet")
            Range("B10", "B26").Value = Null
 
        'Efectua los filtros en la hoja MATRICULES y los copia en memòria
            Sheets("MATRICULES").Select
            If ActiveSheet.FilterMode = True Then ActiveSheet.ShowAllData
            ActiveSheet.ListObjects("T_MatrículesSet19").Range.AutoFilter Field:=11, Criteria1:=c
            ActiveSheet.ListObjects("T_MatrículesSet19").Range.AutoFilter Field:=53, Criteria1:="Actiu"
            Sheets("MATRICULES").Range("G2", Selection.End(xlDown)).Copy
 
        'Copia los datos en GRAELLA
            Worksheets("GRAELLA").Range("B10").PasteSpecial xlPasteValues
 
        'Desactiva la selección i el filtro
            Sheets("MATRICULES").Select
            Application.CutCopyMode = False
            ActiveSheet.ShowAllData
            Sheets("GRAELLA").Select
            Range("C3").Select
 
        'Protege GRAELLA y Crea l'area d'impresió
            ActiveSheet.Protect ("SolSolet")
            Range("A1:AH31").Select
            ActiveSheet.PageSetup.PrintArea = "$A$1:$AH$31"
    End If
 
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar