Jump to content

Error al modificar un Fichero Excel desde otro libro (el objeto no admite esta propiedad o método)


Recommended Posts

Hola,

Tengo un fichero donde hice una macro para exportar los datos de las Hojas 1 y 2  a otro libro. Los copia desde la columna A y en el libro destino se pegan a partir de la B. Hasta ahí todo bien.

Luego vía InputBox desde esa macro añado el mes a la columna A de ese libro destino pero se me para aquí:

For i = 2 To .UsedRange.Rows(.UsedRange.Rows.Count).Row

Funciona perfectamente si ejecuto ese código para modificar en el mismo libro, pero no para hacerlo en uno externo.

Dice que no admite esa propiedad o método. He probado de muchas maneras pero no doy con la solución. Os adjunto un fichero de ejemplo (al final de la macro después de exportar los datos de la hoja 1 y 2 estaría el código donde me salta el error). 

Mil gracias de antemano.

eJ_MODIFICARXLS.xlsm

Link to comment
Share on other sites

Checa este cambio:

        filas = Range(Selection, Selection.End(xlDown)).Rows.Count
        For i = 2 To filas
            If Worksheets("Hoja1").Cells(i, 1) = "" Then
            Worksheets("Hoja1").Cells(i, "A").Value = mes
            End If
             
             
             If Worksheets("Hoja2").Cells(i, 1) = "" Then
             Worksheets("Hoja2").Cells(i, "A").Value = mes
             End If
         Next
 

Link to comment
Share on other sites

10 minutes ago, Janlui said:

Checa este cambio:

        filas = Range(Selection, Selection.End(xlDown)).Rows.Count
        For i = 2 To filas
            If Worksheets("Hoja1").Cells(i, 1) = "" Then
            Worksheets("Hoja1").Cells(i, "A").Value = mes
            End If
             
             
             If Worksheets("Hoja2").Cells(i, 1) = "" Then
             Worksheets("Hoja2").Cells(i, "A").Value = mes
             End If
         Next
 

Gracias, Janlui! Pues ahora ya no se me para ;). Pero no rellena nada en la columna mes (A) del libro destino. Ya sabes, lo que escribo en el inputbox. Algo se me escapa...no sé qué es.

Link to comment
Share on other sites

8 minutes ago, Janlui said:

Ejemplo... si pones mes 6, donde debe de poner la información en Milibro... puedes hacer esto manual con el mes 6 y subir este archivo?

 

Gracias! Ahí lo adjunto. Es el mismo libro de antes, solo que con tu cambio y acabo de hacer lo que me has dicho poniendo un 6 en el inputbox. Los datos exportados aparecen en el libro destino MILIBRO, pero el 6 del inputbox no se marca en la primera columna. Tampoco lo encuentro en el libro que te adjunto, por si se estuviera grabando erróneamente en otra parte...

 

 

eJ_MODIFICARXLS.xlsm

Link to comment
Share on other sites

2 minutes ago, Maria_80 said:

Gracias! Ahí lo adjunto. Es el mismo libro de antes, solo que con tu cambio y acabo de hacer lo que me has dicho poniendo un 6 en el inputbox. Los datos exportados aparecen en el libro destino MILIBRO, pero el 6 del inputbox no se marca en la primera columna. Tampoco lo encuentro en el libro que te adjunto, por si se estuviera grabando erróneamente en otra parte...

 

 

eJ_MODIFICARXLS.xlsm 20.88 kB · 0 downloads

 

Milibro.xlsx

Link to comment
Share on other sites

PRUEBA ESTO.

Sub TRASLADA()
    mes = (InputBox("Ingresar número de mes", "Formato: 1,2,3..."))
    Dim ORIGEN, DESTINO As Workbook
    Set ORIGEN = ThisWorkbook
    
    Sheets(1).Select
    Range("A1").Select
    R1 = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
    
    Sheets(2).Select
    Range("A1").Select
    R2 = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
    
    Workbooks.Open ("MILIBRO")
    Set DESTINO = ActiveWorkbook
        
        Sheets(1).Select
        r = 2
        Do While Cells(r, 2) <> ""
            r = r + 1
        Loop
        
        DESTINO.Sheets(1).Range("B" & r & ":C" & r + R1 - 2) = ORIGEN.Sheets(1).Range("A2:B" & R1).Value
        r = 3
        Do While Cells(r, 2) <> ""
            If Cells(r, 1) = "" Then
                Cells(r, 1) = mes
            End If
            r = r + 1
        Loop

        Sheets(2).Select
        r = 2
        Do While Cells(r, 2) <> ""
            r = r + 1
        Loop
        
        DESTINO.Sheets(2).Range("B" & r & ":C" & r + R2 - 2) = ORIGEN.Sheets(2).Range("A2:B" & R2).Value
        r = 3
        Do While Cells(r, 2) <> ""
            If Cells(r, 1) = "" Then
                Cells(r, 1) = mes
            End If
            r = r + 1
        Loop

End Sub

Link to comment
Share on other sites

2 hours ago, Janlui said:

PRUEBA ESTO.

Sub TRASLADA()
    mes = (InputBox("Ingresar número de mes", "Formato: 1,2,3..."))
    Dim ORIGEN, DESTINO As Workbook
    Set ORIGEN = ThisWorkbook
    
    Sheets(1).Select
    Range("A1").Select
    R1 = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
    
    Sheets(2).Select
    Range("A1").Select
    R2 = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
    
    Workbooks.Open ("MILIBRO")
    Set DESTINO = ActiveWorkbook
        
        Sheets(1).Select
        r = 2
        Do While Cells(r, 2) <> ""
            r = r + 1
        Loop
        
        DESTINO.Sheets(1).Range("B" & r & ":C" & r + R1 - 2) = ORIGEN.Sheets(1).Range("A2:B" & R1).Value
        r = 3
        Do While Cells(r, 2) <> ""
            If Cells(r, 1) = "" Then
                Cells(r, 1) = mes
            End If
            r = r + 1
        Loop

        Sheets(2).Select
        r = 2
        Do While Cells(r, 2) <> ""
            r = r + 1
        Loop
        
        DESTINO.Sheets(2).Range("B" & r & ":C" & r + R2 - 2) = ORIGEN.Sheets(2).Range("A2:B" & R2).Value
        r = 3
        Do While Cells(r, 2) <> ""
            If Cells(r, 1) = "" Then
                Cells(r, 1) = mes
            End If
            r = r + 1
        Loop

End Sub

Hola, Janlui. Muchísimas gracias! Estoy intentando probarlo, pero se me para aquí:  Workbooks.Open ("MILIBRO")

Dice que no encuentra al libro para poder abrirlo. Tengo los dos libros guardados en la misma carpeta... 

Link to comment
Share on other sites

10 minutes ago, Maria_80 said:

Hola, Janlui. Muchísimas gracias! Estoy intentando probarlo, pero se me para aquí:  Workbooks.Open ("MILIBRO")

Dice que no encuentra al libro para poder abrirlo. Tengo los dos libros guardados en la misma carpeta... 

Janlui, al final me ha funcionado escribiendo la ruta completa y el nombre del fichero ;). Muchísimas gracias!!!

Link to comment
Share on other sites

12 hours ago, Maria_80 said:

Hola @Janlui tengo una pregunta de tu código. Lo que envío siempre es un ejemplo, normalmente luego no tengo problemas para adaptarlo a lo mío.
El caso es que no consigo modificar esta parte de tu código:

DESTINO.Sheets(1).Range("B" & r & ":E" & r + R1 - 2)

Piensa que pongo un ejemplo en pequeño, pero en realidad trato de copiar un rango que va desde B hasta AQ (por ejemplo), tengo que escribir esto así?


DESTINO.Sheets(1).Range("B" & r "C" & r "D" & r (etc...) & ":AQ" & r + R1 - 2)

Intento ponerlo como "B:AP" & ":AQ" pero no funciona

Gracias

Link to comment
Share on other sites

17 hours ago, Maria_80 said:

Hola, Janlui. Muchísimas gracias! Estoy intentando probarlo, pero se me para aquí:  Workbooks.Open ("MILIBRO")

Dice que no encuentra al libro para poder abrirlo. Tengo los dos libros guardados en la misma carpeta... 

 

5 hours ago, Maria_80 said:
17 hours ago, Maria_80 said:

Hola @Janlui tengo una pregunta de tu código. Lo que envío siempre es un ejemplo, normalmente luego no tengo problemas para adaptarlo a lo mío.
El caso es que no consigo modificar esta parte de tu código:

DESTINO.Sheets(1).Range("B" & r & ":E" & r + R1 - 2)

Piensa que pongo un ejemplo en pequeño, pero en realidad trato de copiar un rango que va desde B hasta AQ (por ejemplo), tengo que escribir esto así?


DESTINO.Sheets(1).Range("B" & r "C" & r "D" & r (etc...) & ":AQ" & r + R1 - 2)

Intento ponerlo como "B:AP" & ":AQ" pero no funciona

Gracias

Expand  

lo tengo Janlui... me ha salido con ":AQ" ;).

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

Privacy Policy