Corrección de código para enviar datos a una hoja del mismo libro

Necesitaría ayuda para que me indicaran como cambiar el código para que en vez de enviar los datos a un libro nuevo en las hojas 1 y 2, me los mandara a la a libro actual a las hojas 6 y 10 respectivamente.

Gracias de antemano.

Private Sub Imprimirparte()
Dim objExcel As Application
Dim RutaArchivo As String
Dim Texto As String
Dim fila As Integer
Set objExcel = CreateObject("Excel.Application")
With objExcel
    RutaArchivo = ThisWorkbook.Path & "\parte_tmp.xlsx"
    If IsFileOpen(RutaArchivo) Then
            MsgBox "El libro debe estar cerrado para proceder."
            Exit Sub
    Else
     With .Workbooks.Open(RutaArchivo)
       '.Worksheets("Hoja1").Range("parte").ClearContents
       .Worksheets("Hoja1").Range("d2").ClearContents
       .Worksheets("Hoja1").Range("g2").ClearContents
       .Worksheets("Hoja1").Range("l2").ClearContents
 Do While .Worksheets("Hoja1").Cells(18, 1) <> ""
            fila = fila + 1
        Loop
final = fila
                .Worksheets("Hoja1").Range("D2").Value = Me.cbo_not
                .Worksheets("Hoja2").Range("T3").Value = Me.cbo_not
                .Worksheets("Hoja1").Range("C3").Value = Me.txt_descrip

2 respuestas

Respuesta
1

Si ya no necesitas poner los datos en un nuevo libro, supongo entonces que ya no es necesario abrirlo.

Podría ser así:

Private Sub Imprimirparte_Click()
  Dim final As Long
  With ThisWorkbook
    '.Worksheets("Hoja1").Range("parte").ClearContents
    .Sheets("Hoja6").Range("d2").ClearContents
    .Sheets("Hoja6").Range("g2").ClearContents
    .Sheets("Hoja6").Range("l2").ClearContents
    final = .Sheets("Hoja6").Cells(Rows.Count, 1).End(3).Row + 1
    .Sheets("Hoja6").Range("D2").Value = Me.cbo_not
    .Sheets("Hoja10").Range("T3").Value = Me.cbo_not
    .Sheets("Hoja6").Range("C3").Value = Me.txt_descrip
  End With
End Sub

¡Gracias!

Con esta modificación me da error 9 ( subíndice fuera del intervalo)

¿En cuál línea de la macro?

Debes tener 2 hojas con los nombres Hoja6 y Hoja10 en el mismo libro, ¿es así?

¿O cómo se llaman las hojas?

¿Las hojas están en el mismo libro donde tienes la macro?

¿O tienes activo otro archivo?

Si tienes otro archivo, entonces cambia esto:

With ThisWorkbook

Por esto:

With ActiveWorkbook

Si lo anterior no es correcto, entonces explica con más detalle lo que tienes y lo que quieres de resultado.

Te contesto al final del mensaje.

le añadiste el evento click a la rutina yo lo tenia como una subrutina dentro de otro rutina, no se si eso puede afectar.

¿En cuál línea de la macro?   .Sheets("Hoja6").Range("d2").ClearContents

Debes tener 2 hojas con los nombres Hoja6 y Hoja10 en el mismo libro, ¿es así? no

¿O cómo se llaman las hojas? hoja6 PARTE DE TRABAJO   Hoja10 CHECKLIST PAR

¿Las hojas están en el mismo libro donde tienes la macro? SI

¿O tienes activo otro archivo? NO

Esto es lo que pusiste:

En vez de enviar los datos a un libro nuevo en las hojas 1 y 2, me los mandara a la a libro actual a las hojas 6 y 10 respectivamente.

Solamente pusiste 6 y 10, por eso asumí que tus hojas se llaman Hoja6 y Hoja10.


Nota: Una cosa que debe tener en cuenta cuando hace una pregunta en un foro ... las personas a las que solicita ayuda no saben absolutamente nada acerca de sus datos, absolutamente nada sobre cómo están en el libro de trabajo, absolutamente nada sobre lo que usted quiere que se haga con él y absolutamente nada sobre cómo se le presentará lo que sea que quiera hacer como resultado ... debe ser muy específico al describir cada una de estas áreas, en detalle, y no debe suponer que seremos capaces de "resolverlo" por nuestra cuenta. Recuerde, nos está pidiendo ayuda ... así que ayúdenos, brindando la información que necesitamos para hacerlo, incluso si esa información le parece "obvia" (recuerde, solo es obvio para usted porque está familiarizado con sus datos, su diseño y el objetivo general para ellos).


Cambia el nombre de las hojas por el nombre de tus hojas.

Private Sub Imprimirparte_Click()
  Dim final As Long
  With ThisWorkbook
    .Sheets("Hoja6 PARTE DE TRABAJO").Range("d2").ClearContents
    .Sheets("Hoja6 PARTE DE TRABAJO").Range("g2").ClearContents
    .Sheets("Hoja6 PARTE DE TRABAJO").Range("l2").ClearContents
    final = .Sheets("Hoja6 PARTE DE TRABAJO").Cells(Rows.Count, 1).End(3).Row + 1
    .Sheets("Hoja6 PARTE DE TRABAJO").Range("D2").Value = Me.cbo_not
    .Sheets("Hoja10 CHECKLIST PART").Range("T3").Value = Me.cbo_not
    .Sheets("Hoja6 PARTE DE TRABAJO").Range("C3").Value = Me.txt_descrip
  End With
End Sub

Respuesta
1

Cambia

.Worksheets("Hoja1").Range("D2").Value = Me.cbo_not
                .Worksheets("Hoja2").Range("T3").Value = Me.cbo_not

por 

.Worksheets("Hoja6").Range("D2").Value = Me.cbo_not
                .Worksheets("Hoja10").Range("T3").Value = Me.cbo_not

y asi sucesivamente de ahi en adelante

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas