error en una rutina

06/08/2004 - 19:26 por innerxity | Informe spam
este codigo me da error cuando intenta meter los filtros en la segunda
hoja, se supone k se han escrito varias y k luego va una por una
metiendo los filtros, alguien sabe pork falla?

Dim filtros(8) As String
filtros(0) = "Objeto Nº"
filtros(1) = "Coord. X"
filtros(2) = "Coord. Y"
filtros(3) = "Coord. Z"
filtros(4) = "Elevacion"
filtros(5) = "Capa"
filtros(6) = "Tipo"
filtros(7) = "Color"
filtros(8) = " <-- Filtros"
VB6DLL.insertarfiltros2 filtros, 8, nExcel



Public Sub insertarfiltros2(listafiltros As Variant, nn1 As Integer,
nne As Integer)
Dim xExcel2 As Object
Dim objWorksheet2 As Object
Dim nn2 As Integer
Dim nnex As Integer

Set xExcel2 = GetObject(, "Excel.Application")

For nnex = 1 To nne
Set objWorksheet2 = xExcel2.ActiveWorkbook.Worksheets(nnex)
objWorksheet2.Range("A1").Select <ERROR
xExcel2.Selection.EntireRow.Insert
objWorksheet2.Range("A1:" & Chr(65 + nn1) & "1").Select
xExcel2.Selection.AutoFilter
'la A es 65
For nn2 = 65 To 65 + nn1
objWorksheet2.Range(Chr(nn2) & "1").Select 'empieza desde la A
xExcel2.ActiveCell.FormulaR1C1 = listafiltros(nn2 - 65) 'empieza desde
0
Next nn2
Next nnex

Set xExcel2 = Nothing
Set objWorksheet2 = Nothing
End Sub
 

Leer las respuestas

#1 David Canales
06/08/2004 - 19:29 | Informe spam
Primero selecciona la hoja y despues el rango:

objWorksheet2.Select
Range("A1").Select

Saludos,

David Canales


"IC" wrote in message
news:
este codigo me da error cuando intenta meter los filtros en la segunda
hoja, se supone k se han escrito varias y k luego va una por una
metiendo los filtros, alguien sabe pork falla?

Dim filtros(8) As String
filtros(0) = "Objeto Nº"
filtros(1) = "Coord. X"
filtros(2) = "Coord. Y"
filtros(3) = "Coord. Z"
filtros(4) = "Elevacion"
filtros(5) = "Capa"
filtros(6) = "Tipo"
filtros(7) = "Color"
filtros(8) = " <-- Filtros"
VB6DLL.insertarfiltros2 filtros, 8, nExcel



Public Sub insertarfiltros2(listafiltros As Variant, nn1 As Integer,
nne As Integer)
Dim xExcel2 As Object
Dim objWorksheet2 As Object
Dim nn2 As Integer
Dim nnex As Integer

Set xExcel2 = GetObject(, "Excel.Application")

For nnex = 1 To nne
Set objWorksheet2 = xExcel2.ActiveWorkbook.Worksheets(nnex)
objWorksheet2.Range("A1").Select <ERROR
xExcel2.Selection.EntireRow.Insert
objWorksheet2.Range("A1:" & Chr(65 + nn1) & "1").Select
xExcel2.Selection.AutoFilter
'la A es 65
For nn2 = 65 To 65 + nn1
objWorksheet2.Range(Chr(nn2) & "1").Select 'empieza desde la A
xExcel2.ActiveCell.FormulaR1C1 = listafiltros(nn2 - 65) 'empieza desde
0
Next nn2
Next nnex

Set xExcel2 = Nothing
Set objWorksheet2 = Nothing
End Sub

Preguntas similares