Guardar datos de un remito en diferentes hojas de excel

Yo tengo un libro en el cual arme una plantilla con un remito y en ella le coloco los datos de cliente y mercaderia que se va a llevar. Lo que necesito es que cada vez que yo completo ese formulario los datos se vayan guardando en cada hoja automaticamente, es decir que haya tantas hojas como remitos de salida hice lo cual implicaria hacer un codigo con VBA para que cree la hoja y la renombre con algun acumulador. No se si es esta la forma mas eficiente de guarda los datos. ¿Me conviene guardarlas en PDF y enviarlas a una carpeta quizas?

1 respuesta

Respuesta
1

H o l a Gabriel:

Me puedes enviar un archivo con tu libro para revisar cómo tienes la plantilla.

En el libro envíame 2 hojas, en una hoja me pones la plantilla vacía, en la otra hoja me pones un ejemplo con datos reales de una venta.

Te puedo entregar el código VBA con 3 opciones:

  • Opción 1, crear una hoja en el mismo libro
  • Opción 2, crear la hoja en un PDF
  • Opción 3, crear la hoja en el mismo libro y también la hoja en un pdf.

Yo te podría sugerir que las enviaras a un PDF, pero de cualquier forma te regreso el archivo con las 3 opciones, para que las utilices, revises el resultado y con el tiempo sabrás cuál es la que más te conviene utilizar.


Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Gabriel Emanuel Ciorciari” y el título de esta pregunta.

Tal como te comente, te anexo el código con las 3 opciones:

Sub Opcion1()
'crear una hoja en el mismo libro
'Por.Dante Amor
    res = CrearHoja
    If res <> 0 Then MsgBox "Hoja copiada con el nombre: " & res, vbInformation, "REMITO"
End Sub
'
Sub Opcion2()
'crear la hoja en un PDF
'Por.Dante Amor
    res = CrearPdf
    MsgBox "Hoja enviada a PDF con el nombre: " & res, vbInformation, "REMITO"
End Sub
'
Sub Opcion3()
'crear la hoja en el mismo libro y también la hoja en un pdf
'Por.Dante Amor
    res = CrearHoja
    If res <> 0 Then
        CrearPdf
        MsgBox "Hoja copiada y enviada a PDF con el nombre: " & res, vbInformation, "REMITO"
    End If
End Sub
'
Function CrearHoja()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("Hoja1")
    nombre = "remito " & h1.[G3]
    For Each h In Sheets
        If UCase(h.Name) = UCase(nombre) Then
            existe = True
            Exit For
        End If
    Next
    If existe Then
        MsgBox "Ya existe el número de remito : " & nombre & " Corrija el número de remito", vbCritical, "ERROR"
        CrearHoja = 0
        Exit Function
    End If
    Set h2 = Sheets.Add(after:=Sheets(Sheets.Count))
    h2.Name = nombre
    h1.Cells.Copy h2.[A1]
    h1.Select
    CrearHoja = nombre
    Application.ScreenUpdating = True
End Function
'
Function CrearPdf()
'Por.Dante Amor
    Application.ScreenUpdating = False
    Set h1 = Sheets("Hoja1")
    ruta = "C:\trabajo\varios\"
    nombre = "remito " & h1.[G3]
    h1.ExportAsFixedFormat Type:=xlTypePDF, Filename:=ruta & nombre & ".pdf", _
        Quality:=xlQualityStandard, IncludeDocProperties:=True, _
        IgnorePrintAreas:=False, OpenAfterPublish:=False
    CrearPdf = nombre
End Function

:)

S aludos.   D a n t e   A m o r. Recuerda valorar la respuesta. G r a c i a s

;)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas