Saltar al contenido

DETALLES EN EJECUTAR LA MACRO


Recommended Posts

publicado

Buenos dias,

He creado una macro que me guarda los datos de la hoja "INSERT" a la hoja "DATOS" y va muy bien.

Me pregunto, si al guardar los datos, la macro me puede guarde los datos según lo que pretendo en el "TITULO 2 - LO QUE PRETENDO QUE HAGA"

Adjunto el documento para ayudarme solucionar este tema.

Gracias.

Saludos,

Jose

DESAYUNOS VBA.xlsm

publicado
Sub Guardar()
Dim Fila As Long
Dim H1 As Worksheet
Dim H2 As Worksheet
'--
Application.ScreenUpdating = Falso 'Evita el parpadeo
Set H1 = Sheets("INSERT")
Set H2 = Sheets("DATOS")
   'PARA GUARDAR LOS DATOS EN LA FICHA BD--
For x = 1 To 3
   Fila = H2.Range("B" & Rows.Count).End(xlUp).Row + 1
   H2.Range("B" & Fila) = H1.Range("D3") 'Hab.
   H2.Range("C" & Fila) = H1.Range("D4") 'Nombre
   H2.Range("D" & Fila) = H1.Range("D5") 'Entra
   H2.Range("E" & Fila) = H1.Range("D6") 'Dias
   H2.Range("F" & Fila) = H1.Range("D7") 'Salida
   H2.Range("G" & Fila) = H1.Range("D8") 'Turno
   H2.Range("h" & Fila) = H1.Range("D9") 'Pax
Next
'Limpiar FICHA UNA VEZ SE HAYA GRABADO LOS DATOS
H1.Activate
'
H1.Range("D3").ClearContents  'Hab.
H1.Range("D4").ClearContents 'Nombre
H1.Range("D5").ClearContents 'Entra
H1.Range("D6").ClearContents 'Dias
'H1.Range("D7").ClearContents 'Salida
H1.Range("D8").ClearContents 'Turno
H1.Range("D9").ClearContents 'Pax
H1.Range("D3").Select
Application.ScreenUpdating = True

End Sub

 

publicado

Hola Antoni,

Gracias por tu ayuda.

Falta unos  detalles.

En las celdas corespondientes a la salida de la hoja "DATOS" que es la (F4:F15), me pone la misma fecha de salida en todas las celdas que es el 04.07.2020.

Lo que pretendo es que me ponga los dias de estancia como "salida" tal como aparece en el listado TITULO 2.

El primer servicio sera el día 2 el siguiente servicio el día 3 y el ultimo servicio el día 4 (en total 3 servicios de desayunos).

Ademas:

For x = 1 To 3 me pone solo los dias de servicios (en este caso es 3 que es correcto, pero si son más días no va.

He hecho una prueba de:

For x = 1 To 7 con entrada el 1 y salida el 5 y me guarda 7 dias en vez de 4.

Saludos,

publicado

Hola Antoni,

Agradezco mucho tu ayuda hasta ahora.

Al tema que tenia quiero dar por cerrado el tema.

La solución es esta, lo dejo por si a alguien le sea util:

Sub Guardar()
Dim Fila As Long
Dim H1 As Worksheet
Dim H2 As Worksheet
Dim x As Integer

'--
Application.ScreenUpdating = Falso 'Evita el parpadeo
Set H1 = Sheets("INSERT")
Set H2 = Sheets("DATOS")
   'PARA GUARDAR LOS DATOS EN LA FICHA DATOS--
For x = 1 To H1.Range("D6").Value - esto es lo que buscaba

   Fila = H2.Range("B" & Rows.Count).End(xlUp).Row + 1
   H2.Range("B" & Fila) = H1.Range("D3") 'Hab.
   H2.Range("C" & Fila) = H1.Range("D4") 'Nombre
   H2.Range("D" & Fila) = H1.Range("D5") 'Entra
   H2.Range("E" & Fila) = H1.Range("D6") 'Dias
   H2.Range("F" & Fila) = H1.Range("D5") + x 'Salida
   H2.Range("G" & Fila) = H1.Range("D8") 'Turno
   H2.Range("h" & Fila) = H1.Range("D9") 'Pax
Next
'Limpiar FICHA UNA VEZ SE HAYA GRABADO LOS DATOS
H1.Activate
'
H1.Range("D3").ClearContents  'Hab.
H1.Range("D4").ClearContents 'Nombre
H1.Range("D5").ClearContents 'Entra
H1.Range("D6").ClearContents 'Dias
'H1.Range("D7").ClearContents 'Salida
H1.Range("D8").ClearContents 'Turno
H1.Range("D9").ClearContents 'Pax
H1.Range("D3").Select
Application.ScreenUpdating = True

End Sub

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.