error en tiempo de ejecucion
Publicado por diego (6 intervenciones) el 11/06/2007 17:17:06
Buenas tardes,
Tengo un archivo excel en el cual en cada registro se copian los valores de unas determinadas celdas de una plantilla que rellenan varios departamento con unos datos.
Pues bien,me he creado una macro en el cual voy al directorio donde estan todas las plantillas y cargo el valor de esos campos en mi excel.El problema es que en las plantillas hay campos que pasan de los 255 caracteres y entonces voy a tener que meter ese valor en varias celdas.
Aqui viene el problema,he metido el tratamiento de esta casuística y me da el error 1004 no entiendo porque.El codigo es este.
Private Sub Workbook_Open()
Dim i As Integer
Dim f As String
Dim f2 As String
Dim Directorio As String
Dim c As Collection
Set c = New Collection
Directorio = "\\NES004900-005\ATI_DesaComun\Desarrollo\SEGUIMIENTO DE PROYECTOS - JESÚS PABLO\Seguimiento Proyectos\Seguimiento_070601\"
f = Dir(Directorio, 7)
f2 = "[" & f & "]Informe'!"
c.Add (f2)
Do While f <> ""
f = Dir()
f2 = "[" & f & "]Informe'!"
c.Add (f2)
Loop
For i = 1 To c.Count - 1
Cells(i + 1, 1).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R2C11"
Cells(i + 1, 2).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R3C5"
Cells(i + 1, 3).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R2C5"
Cells(i + 1, 4).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R8C2"
If Len(Cells(i + 1, 4).Value) >= 255 Then
Cells(i + 1, 3).FormulaR1C1 = "=extrae('" & Directorio & c.Item(i) & "R8C2;255;255)"
End If
Cells(i + 1, 5).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R5C4"
Cells(i + 1, 6).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R9C8"
Cells(i + 1, 7).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R10C8"
Cells(i + 1, 8).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R10C8"
Cells(i + 1, 9).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R12C8"
Cells(i + 1, 10).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R13C8"
Cells(i + 1, 11).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R9C11"
Cells(i + 1, 12).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R10C11"
Cells(i + 1, 13).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R16C2"
Cells(i + 1, 14).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R16C6"
Cells(i + 1, 15).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R18C2"
Cells(i + 1, 16).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R18C10"
Cells(i + 1, 17).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R21C2"
Cells(i + 1, 18).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R21C7"
Cells(i + 1, 19).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R24C2"
Cells(i + 1, 20).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R24C7"
Cells(i + 1, 21).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R29C3"
Cells(i + 1, 22).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R30C3"
Cells(i + 1, 23).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R31C3"
Next
Set c = Nothing
End Sub
Me falla en la linea
Cells(i + 1, 3).FormulaR1C1 = "=extrae('" & Directorio & c.Item(i) & "R8C2;255;255)"
Tengo un archivo excel en el cual en cada registro se copian los valores de unas determinadas celdas de una plantilla que rellenan varios departamento con unos datos.
Pues bien,me he creado una macro en el cual voy al directorio donde estan todas las plantillas y cargo el valor de esos campos en mi excel.El problema es que en las plantillas hay campos que pasan de los 255 caracteres y entonces voy a tener que meter ese valor en varias celdas.
Aqui viene el problema,he metido el tratamiento de esta casuística y me da el error 1004 no entiendo porque.El codigo es este.
Private Sub Workbook_Open()
Dim i As Integer
Dim f As String
Dim f2 As String
Dim Directorio As String
Dim c As Collection
Set c = New Collection
Directorio = "\\NES004900-005\ATI_DesaComun\Desarrollo\SEGUIMIENTO DE PROYECTOS - JESÚS PABLO\Seguimiento Proyectos\Seguimiento_070601\"
f = Dir(Directorio, 7)
f2 = "[" & f & "]Informe'!"
c.Add (f2)
Do While f <> ""
f = Dir()
f2 = "[" & f & "]Informe'!"
c.Add (f2)
Loop
For i = 1 To c.Count - 1
Cells(i + 1, 1).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R2C11"
Cells(i + 1, 2).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R3C5"
Cells(i + 1, 3).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R2C5"
Cells(i + 1, 4).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R8C2"
If Len(Cells(i + 1, 4).Value) >= 255 Then
Cells(i + 1, 3).FormulaR1C1 = "=extrae('" & Directorio & c.Item(i) & "R8C2;255;255)"
End If
Cells(i + 1, 5).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R5C4"
Cells(i + 1, 6).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R9C8"
Cells(i + 1, 7).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R10C8"
Cells(i + 1, 8).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R10C8"
Cells(i + 1, 9).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R12C8"
Cells(i + 1, 10).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R13C8"
Cells(i + 1, 11).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R9C11"
Cells(i + 1, 12).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R10C11"
Cells(i + 1, 13).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R16C2"
Cells(i + 1, 14).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R16C6"
Cells(i + 1, 15).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R18C2"
Cells(i + 1, 16).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R18C10"
Cells(i + 1, 17).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R21C2"
Cells(i + 1, 18).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R21C7"
Cells(i + 1, 19).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R24C2"
Cells(i + 1, 20).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R24C7"
Cells(i + 1, 21).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R29C3"
Cells(i + 1, 22).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R30C3"
Cells(i + 1, 23).FormulaR1C1 = "='" & Directorio & c.Item(i) & "R31C3"
Next
Set c = Nothing
End Sub
Me falla en la linea
Cells(i + 1, 3).FormulaR1C1 = "=extrae('" & Directorio & c.Item(i) & "R8C2;255;255)"
Valora esta pregunta


0