error argumento no valido

03/05/2005 - 22:57 por fredy | Informe spam
hola grupo... este es un codigo que copie del foro para graficas en
formulario con office-web-components pero al ejecutarlo me sale error en la
linea

.Cells(Fila - 6, Col - 1) = Dato

argumento no valido

el codigo completo es :

Sub Actualiza()
Dim Fila As Byte, _
Col As Byte, _
Dato As Variant, _
Cc As Object

With Spreadsheet1
.Cells(1, 1) = "Fecha"
.Cells(1, 2) = "Uno"
.Cells(1, 3) = "Dos"

For Col = 2 To 4
For Fila = 8 To 25
Dato = Worksheets("Informe").Cells(Fila, Col)
.Cells(Fila - 6, Col - 1) = Dato
If Col = 2 Then
.Cells(Fila - 6, Col - 1).NumberFormat = "d-mmm-yy"
Else
.Cells(Fila - 6, Col - 1).NumberFormat = "0.00"
End If
Next
Next
End With
With ChartSpace1
.Clear
Set Cc = .Constants
Set .DataSource = Me.Spreadsheet1
.Charts.Add
With .Charts(0)
' tipo de gráfico
.Type = Cc.chChartTypeLine
' añado los nombres de las series
.SetData Cc.chDimSeriesNames, 0, "b1:c1"
' añado las distintas series
.SeriesCollection(0).SetData Cc.chDimValues, 0, "b2:b17"

.SeriesCollection.Add
.SeriesCollection(1).SetData Cc.chDimSeriesNames, 0, "c1"
.SeriesCollection(1).SetData Cc.chDimValues, 0, "c2:c17"
' rango del eje X
.SetData Cc.chDimCategories, 0, "a2:a17"

End With
End With
End Sub
 

Leer las respuestas

#1 Héctor Miguel
04/05/2005 - 04:50 | Informe spam
hola, fredy !

... un codigo que copie del foro para graficas en formulario con office-web-components
... al ejecutarlo me sale error en la linea
.Cells(Fila - 6, Col - 1) = Dato
argumento no valido



revisa si algo de lo siguiente pudiera darte 'luz' para encontrar la 'causa'
si cualquier duda [o informacion adicional]... comentas?
saludos,
hector.

[es probable que] los datos 'reales' que manejas para el 'pase' al owc spreadsheet1 no 'coinciden' -?-
la parte 'central' del codigo que estas usando/copiando son las lineas...
With Spreadsheet1
[... codigo intermedio ...]
For Col = 2 To 4
For Fila = 8 To 25
Dato = Worksheets("Informe").Cells(Fila, Col)
.Cells(Fila - 6, Col - 1) = Dato
[... codigo intermedio ...]



-> y el codigo esta 'asumiendo' que los datos que se van a traspasar al owc spreadsheet1 'vienen de...'
la hoja 'Informes' y estan en el rango de celdas 'B8:D25' [para lo cual...]
el bucle interior 'avanza' por las filas 8 a 25 ->For Fila = 8 To 25<-
el bucle exterior 'avanza' por las columnas 'B' a 'D' [2 a 4] -> For Col = 2 To 4<-
-> por lo cual, una vez 'depositados' en el owc spreadsheet1... van a quedar en el rango 'A2:C19'
es decir... SEIS filas Y UNA columna 'menos' [o mas arriba/atras] que en el rango 'original'
es por eso que cada dato copiado de su celda 'original' -> Dato = Worksheets("Informe").Cells(Fila, Col)
es 'depositado' [with spreadsheet1] mas 'atrasadito' -> .Cells(Fila - 6, Col - 1) = Dato
=> aunque despues 'se pasa' al owc' chartspace1 SOLO de las filas 2 a 17 <= -???-

Preguntas similares