FuncionesExcel.bas

  1. Attribute VB_Name = "FuncionesExcel"
  2. Option Explicit
  3.  
  4. Public Function borrarTabla(rango As Range) As Boolean
  5. rango.CurrentRegion.Offset(1).Clear
  6. borrarTabla = True
  7. End Function
  8.  
  9.  
  10. Public Function agregarFilaTabla(ByVal rango As Range, ParamArray valores()) As Boolean
  11.  
  12. Dim celda As Range
  13. Dim indice As Integer
  14.  
  15. Set rango = rango.CurrentRegion
  16. Set rango = rango.Resize(1).Offset(rango.Rows.Count)
  17.  
  18. indice = LBound(valores)
  19. For Each celda In rango.Cells
  20. If indice > UBound(valores) Then Exit Function
  21. celda.Value = valores(indice)
  22. indice = indice + 1
  23. Next
  24. agregarFilaTabla = True
  25.  
  26. End Function
  27.  
  28. Public Function direccionOrigenFila(ByVal rango As Range) As String
  29. 'Retorna la dirección de una tabla para asignarlo a la
  30. ' propiedad RowSource de un cuadro combinado
  31. 'Calcula el número de filas que se necesitan y no tiene en cuenta
  32. ' la primera fila de títulos
  33.  
  34. Dim filas As Long
  35.  
  36. filas = rango.CurrentRegion.Rows.Count - 1 'No contar fila de títulos
  37. Set rango = rango.Resize(filas).Offset(1)
  38.  
  39. direccionOrigenFila = rango.Worksheet.Name & "!" & rango.Address
  40.  
  41. End Function
  42.  
  43.  
  44. Public Function buscarRango(ByVal buscado As String, ByVal rango As Range) As Long
  45. 'Retorna el número de celda dentro del rango que tiene el valor buscado
  46. 'Ejemplo: ? buscarrango("address", worksheets("Clientes").rows(1))
  47.  
  48. Dim celda As Range
  49. Dim contador As Long
  50.  
  51. For Each celda In rango.Cells
  52. contador = contador + 1
  53. If Compara(celda.Value, buscado) Then
  54. buscarRango = contador
  55. Exit Function
  56. End If
  57. Next
  58. buscarRango = 0
  59.  
  60. End Function
  61.  
  62.  
  63. Public Function buscarRangoAproximado(ByVal buscado As String, ByVal rango As Range) As Long
  64. 'Retorna el número de celda dentro del rango que contiene el valor buscado
  65. 'Ejemplo: ? buscarRangoAproximado("comidas",Worksheets("Clientes").columns(2)) --> 9
  66.  
  67. Dim celda As Range
  68. Dim contador As Long
  69.  
  70. For Each celda In rango.Cells
  71. contador = contador + 1
  72. If Contiene(celda.Value, buscado) Then
  73. buscarRangoAproximado = contador
  74. Exit Function
  75. End If
  76. Next
  77. buscarRangoAproximado = 0
  78.  
  79. End Function
  80.  

Proinf.net