Buenos días a tod@s,
Resulta que tengo una hoja con más de 10,000 renglones. Obtengo datos por medio de algunas fórmulas como sumaproducto y sumar.si, por ello requiero definir nombres de rangos que son dinámicos para después utilizarlos. En la hoja tengo 4 columnas y las filtro por medio de la columna "C" y con el resultado del filtro y para cada rubro defino dos rangos dinámicos, uno para la columna "A" y otro para la columna "D".
Hice una macro pero como los datos son variables, no sé como hacer que detecte donde comienza cada rango. Anexo código vba con lo que quiero hacer. ¿Podrían ayudarme o darme algunas ideas?
Muchas Gracias!
Resulta que tengo una hoja con más de 10,000 renglones. Obtengo datos por medio de algunas fórmulas como sumaproducto y sumar.si, por ello requiero definir nombres de rangos que son dinámicos para después utilizarlos. En la hoja tengo 4 columnas y las filtro por medio de la columna "C" y con el resultado del filtro y para cada rubro defino dos rangos dinámicos, uno para la columna "A" y otro para la columna "D".
Hice una macro pero como los datos son variables, no sé como hacer que detecte donde comienza cada rango. Anexo código vba con lo que quiero hacer. ¿Podrían ayudarme o darme algunas ideas?
Excel 2007 | ||||||
---|---|---|---|---|---|---|
A | B | C | D | |||
1 | REV | N pers. | CC-n. | Importe | ||
2 | 2449000 | 244 | 9000 | $ 8,888.03 | ||
3 | 10879000 | 1087 | 9000 | $ 8,295.50 | ||
4 | 10929000 | 1092 | 9000 | $ 8,295.50 | ||
5 | 11089000 | 1108 | 9000 | $ 3,713.00 | ||
6 | 20359000 | 2035 | 9000 | $ 8,888.03 | ||
7 | 1387439014 | 138743 | 9014 | $ 500.00 | ||
8 | 1388599014 | 138859 | 9014 | $ 600.00 | ||
9 | 1389099014 | 138909 | 9014 | $ 700.00 | ||
10 | 1389179014 | 138917 | 9014 | $ 800.00 | ||
11 | 123265/P02 | 123265 | /P02 | $ 4,383.00 | ||
12 | 123299/P02 | 123299 | /P02 | $ 7,477.50 | ||
13 | 123505/P02 | 123505 | /P02 | $ 3,703.50 | ||
14 | 184586/P03 | 184586 | /P03 | $ 3,679.50 | ||
15 | 184587/P03 | 184587 | /P03 | $ 6,421.51 | ||
16 | 184589/P03 | 184589 | /P03 | $ 6,421.50 | ||
17 | 184608/P03 | 184608 | /P03 | $ 3,679.50 | ||
18 | 130666999D | 130666 | 999D | $ 401.75 | ||
19 | 130757999D | 130757 | 999D | $ 401.75 | ||
20 | 130781999D | 130781 | 999D | $ 401.75 | ||
21 | 4027559A01 | 402755 | 9A01 | $ 381.87 | ||
22 | 4027609A01 | 402760 | 9A01 | $ 423.93 | ||
23 | 4006499A02 | 400649 | 9A02 | $ 1,059.83 | ||
24 | 4025879A02 | 402587 | 9A02 | $ 1,909.33 | ||
25 | 1858339A04 | 185833 | 9A04 | $ 394.77 | ||
SAP SB ORG |
Code:
Sub Macro5()
'
' Se selecciona el filtro por la columna C
Range("C1").Select
Selection.AutoFilter
' Se filtra por el criterio 9000
ActiveSheet.Range("$A$1:$D$6023").AutoFilter Field:=3, Criteria1:="9000"
' A partir del resultado del filtro se nombran los rangos dinamicos para las columnas A y D
Range("A2:A6").Select
Application.Goto Reference:="_9000"
Range("D2:D6").Select
Application.Goto Reference:="_9000IMP"
' Se filtra por el criterio 9014
ActiveSheet.Range("$A$1:$D$6023").AutoFilter Field:=3, Criteria1:="9014"
' A partir del resultado del filtro se nombran los rangos dinamicos para las columnas A y D
Range("A7:A10").Select
Application.Goto Reference:="_9014"
Range("D7:D10").Select
Application.Goto Reference:="_9014IMP"
' Se filtra por el criterio /P02
ActiveSheet.Range("$A$1:$D$6023").AutoFilter Field:=3, Criteria1:="/P02"
' A partir del resultado del filtro se nombran los rangos dinamicos para las columnas A y D
Range("A11:A13").Select
Application.Goto Reference:="_P02"
Range("D11:D13").Select
Application.Goto Reference:="_P02IMP"
End Sub
Muchas Gracias!