Excel - Error en rango con dos variables dinámicas

 
Vista:

Error en rango con dos variables dinámicas

Publicado por Iván (2 intervenciones) el 30/05/2019 11:29:25
Buenos días.

Mi consulta es la siguiente:

Tengo un libro del cual quiero copiar un rango, con los valores de fila y columnas dinámicos (ya que es posible que se vayan añadiendo más) y pegarlo en otro libro.

La única celda que conozco es la de inicio (la(4, 2)), la última es la que es variable.

Por lo tanto no puedo definir ese rango con la función Range("FILA:COLUMNA"), y utilizo el formato: Range(Cells(FILA, COLUMNA), Cells(FILA, COLUMNA)), y en este es donde me sale un mensaje de error ("1004" error definido por la aplicación o el objeto).

Os adjunto mi macro ya avanzada para que lo podais ver mejor:


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Private Sub PUC_Click()
Dim codAño As Integer
Dim encontrado As Boolean
Dim i As Integer
Dim j As Integer
 
    'Asignamos el valor de fechaestudio
    fechaestudio = Range("C4").Value
    'Asignamos el valor de fechaFICHERO para el nombre del fichero
    fechaFICHERO = Range("C6").Value
    MsgBox ("fecha estudio: " & fechaFICHERO)
 
Dim RutArchivo
RutArchivo = ThisWorkbook.Path & "/"
 
Workbooks.Open (RutArchivo & "Incidencias PUC.xlsx")
Workbooks("Incidencias PUC.xlsx").Worksheets("TABLARESUMEN").Activate
 
'Nos posicionamos en el origen de la información
Sheets("TABLARESUMEN").Range("B4").Select
 
'Recorremos el origen de datos
i = 0
Do While ActiveCell <> ""
    ActiveCell.Offset(1, 0).Select
    i = i + 1
Loop
 
Sheets("TABLARESUMEN").Range("B4").Select
 
 
j = 0
Do While ActiveCell <> ""
    ActiveCell.Offset(0, 1).Select
    j = j + 1
    Loop
MsgBox "Fila: " & i + 1
MsgBox "Columna: " & j + 1
Sheets("TABLARESUMEN").Activate
ActiveSheet.Range(Cells(4, 2), Cells(i + 1, j + 1)).Select
Selection.Copy

El problema está en lo que está subrayado y en negrita.

Les agradezco cualquier solución que me puedan aportar.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Error en rango con dos variables dinámicas

Publicado por Antoni Masana (2474 intervenciones) el 30/05/2019 16:10:26
He probado el código y no veo razón para que de el error.

Solo he realizado un par de cambios el primero para optimizar.

Es segundo es el más curioso y creo que por ahí puede estar el fallo, el primer bucle cuenta las filas de datos, si tienes tres filas de datos, i vale 3 al salir del bucle ¿seleccionas desde la fila 4 a la fila 4? ¿o debes seleccionar de la 4 a la 6?

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Private Sub PUC_Click()
    Dim codAño As Integer
    Dim encontrado As Boolean
    Dim i As Integer
    Dim j As Integer
    Dim RutArchivo
 
    'Asignamos el valor de fechaestudio
    fechaestudio = Range("C4").Value
    'Asignamos el valor de fechaFICHERO para el nombre del fichero
    fechaFICHERO = Range("C6").Value
    MsgBox ("fecha estudio: " & fechaFICHERO)
 
    RutArchivo = ThisWorkbook.Path & "/"
 
    Workbooks.Open (RutArchivo & "Incidencias PUC.xlsx")
    Workbooks("Incidencias PUC.xlsx").Worksheets("TABLARESUMEN").Activate
 
    Sheets("TABLARESUMEN").Activate
 
    Range("B4").Select
    i = 0
    Do While ActiveCell <> ""
        ActiveCell.Offset(1, 0).Select
        i = i + 1
    Loop
 
    Range("B4").Select
    j = 0
    Do While ActiveCell <> ""
        ActiveCell.Offset(0, 1).Select
        j = j + 1
    Loop
 
    MsgBox "Fila: " & i + 3
    MsgBox "Columna: " & j + 1
 
    ActiveSheet.Range(Cells(4, 2), Cells(i + 3, j + 1)).Select
    Selection.Copy


Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error en rango con dos variables dinámicas

Publicado por Iván (2 intervenciones) el 31/05/2019 08:23:25
Lo he probado con las modificaciones que me has puesto y me sigue saliendo el mismo error en el mismo sitio.

1
ActiveSheet.Range(Cells(4, 2), Cells(i + 3, j + 1)).Select
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Antoni Masana
Val: 4.908
Oro
Ha mantenido su posición en Excel (en relación al último mes)
Gráfica de Excel

Error en rango con dos variables dinámicas

Publicado por Antoni Masana (2474 intervenciones) el 31/05/2019 12:34:14
Yo he probado desde la linea 19 y simulado el fichero incidencias o lo que creo es el fichero.
A menos que sea una tontería que en una versión de Excel funciona y en otra no es el fichero.
Si me puedes enviar uno que falle te miro porque puede fallar. Si lo prefieren puede enviarlo a mi correo. Ver cabecera.

Pero antes prueba estas macros

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Sub Prueba_1()
     Dim i as Integer, j as Integer
     i=4
     j=2
    ActiveSheet.Range(Cells(4, 2), Cells(i + 3, j + 1)).Select
End Sub
 
Sub Prueba_2()
    ActiveSheet.Range(Cells(4, 2), Cells(4 + 3, 2 + 1)).Select
End Sub
 
Sub Prueba_3()
     Dim i as Integer, j as Integer
     i=7
     j=3
    ActiveSheet.Range(Cells(4, 2), Cells(i, j)).Select
End Sub

Las tres hacen exactamente lo mismo y sospecho que la primera debería darte error, a mi no me lo da, las otras dos no. Ya me contaras.



Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar