Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: 1mpuls0 en 22 Enero 2013, 17:47 pm



Título: Obtener celdas activas con vb despues de aplicar filtro en excel.
Publicado por: 1mpuls0 en 22 Enero 2013, 17:47 pm
Bien... al parecer mi pregunta anterior era demasiado sencilla (tal vez por eso nadie respondió).

Pero me encontré con algo un poco complicado.

Estoy trabajando con macros y necesito obtener el las celdas seleccionadas tras haber realizado un autofiltro.

Por ejemplo, realizo el filtro por sexo y grupo de edad, las celdas que no cumplieron ese criterio se ocultan.
Al realizar la selección de los datos también se seleccionan las celdas (filas ocultas).

Hay alguna manera que mediante visual basic pueda obtener ya sea los numeros de filas o celdas 34, 103, 172, 241, 310 y 379?


(http://goo.gl/T58gr)

Gracias



Título: Re: Obtener celdas activas con vb despues de aplicar filtro en excel.
Publicado por: Shell Root en 22 Enero 2013, 18:13 pm
Código
  1. ' Masomenos...
  2. For Each cell In Cells_To_Sum
  3.   If cell.Rows.Hidden = False Then
  4.      If cell.Columns.Hidden = False Then
  5.         total = total + cell.Value
  6.      End If
  7.   End If
  8. Next
:http://support.microsoft.com/kb/150363/es


Título: Re: Obtener celdas activas con vb despues de aplicar filtro en excel.
Publicado por: 1mpuls0 en 22 Enero 2013, 19:21 pm
Genial :3

Código
  1. Function Sum_Visible_Cells(Cells_To_Sum As Object)
  2.  
  3.       Application.Volatile
  4.       Dim celdas As String
  5.  
  6.       For Each cell In Cells_To_Sum
  7.           If cell.Rows.Hidden = False Then
  8.               If cell.Columns.Hidden = False Then
  9.                   celdas = celdas & Replace(cell.Row, "$", "") & ", "
  10.               End If
  11.           End If
  12.       Next
  13.  
  14.       Sum_Visible_Cells = celdas
  15.  
  16. End Function
  17.  

Ya lo estoy adaptando xD, solo que necesito hacer un cast de Range a Object o String a Object ._. porque lo utilizo así para tomar el rango seleccionado.

Código
  1. rango = Selection.Address
  2.  


Gracias ;)

Por cierto tu avatar es genial xD siempre me ha causado gracia.