Establecer el estado Reservar en mi archivo de excel

Para DANTE AMOR

Saludos sr dante

Recuerda el archivo del hotel, que me ayudo a configurar la parte de los estados DISPONIBLE/OCUPADO, en forma vertical.

Como le puedo añadir al mismo código el estado de RESERVAR.. Para cuando se llame al formulario este pueda pedir la opción reservar u ocupado

El objetivo es eliminar la hoja reservación pues estaría demás si se puede añadir el estado reserva en el modulo 1 para la hoja habitación

El envío un pantallazo

Como vera el estado "reservar" lo tengo manual,, en un filtro que se puede apreciar en la habitación # 107,, todas las demás igual,,

El envío el código ----->

MsgBox "Los números de habitación no corresponden, Digite la clave correcta", vbExclamation, "SALIDA"
         End If
     End Select
    End Sub

1 Respuesta

Respuesta
2

Envíame tu archivo y me explicas con ejemplos y con comentarios en las celdas. Recuerda poner tu nombre de usuario en el asunto del correo.

su correo es el mismo ?

mailto:[email protected] 

Sí, a ese mismo correo

Ya se lo envíe

el correo 
[email protected]  se me devolvio, gmail no lo ubica

tiene otro correo?

o lo monto en la nube ?.,,  

intente varias veces y su correo se me devuelve,, hay alguna letra mal escrita?

Te falta un 3 en el correo

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “Lug Barry Lopez” y el título de esta pregunta.

confirmado

archivo enviado con sus datos de entrada

Definitivamentes, requieres una hoja de resrevas, esa hoja tendrás que hacer altas, bajas y cambios; y desde luego, si la reserva se concreta, entonces 1. En la hoja reserva, tienes que cambiar el estatus de la reserva a ocupada. 2, en la hoja clientes, tienes que cambiar la habitación de reserva a ocupada.

Con todo gusto te ayudo con los detalles finos en el código, pero lo recomendable, en todos los casos es, antes de ponerte a programar, debes hacer el diseño del sistema, en ese diseño deberás contemplar los datos que debes capturar (para reservar, para ocupar, para cobrar, los diferentes estatus, etc); y ya que tienes los datos, entonces pasas al diseño del formulario, de esa forma será más práctico crear el formular, ya sabes qué datos debes capturar en qué hoja almacenar, cuando pasar de reserva a ocupado o cancelado, etc.

Vamos por partes, diseña qué campos quieres capturar en la reserva y también diseña cómo los quieres en la hoja, después diseña el formulario. Ya que tengas el formulario te ayudo con las altas de reservas.

Sal u dos

Para abrir el form de reservas

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Intersect(Target, Columns("P")) Is Nothing Then
        If Target.Count > 1 Then Exit Sub
        If Target.Row < 5 Then Exit Sub
        If UCase(Target.Value) <> "NO" Then Exit Sub
        UsClien.Show
    End If
End Sub

Al momento de abrir el form de reservas

Private Sub UserForm_Initialize()
    Label32 = Format(Now, "[$-80A]dddd, dd"" de ""mmmm"" de ""yyyy   hh:mm:ss am/pm")
    Me.TextBox1.SetFocus
    '
    'Si la hoja activa es "reservaciones", entonces hay que cambiar el estatus
 'a registrado y terminar el registro del cliente
    '
    If ActiveSheet.Name = "RESERVACIONES" Then
        Dim wfila, h, b
        wfila = ActiveCell.Row
        TextBox1 = Cells(wfila, "B")            'nombre
        TextBox2 = Cells(wfila, "C")            'no. document
        TextBox9 = Cells(wfila, "H")            'telefono
        Habitacion = Left(Cells(wfila, "L"), 3)
        tipo = Mid(Cells(wfila, "L"), 4)
        Set h = Sheets("habitacion")
        Set b = h.Columns("C").Find(Val(Habitacion), lookat:=xlWhole)
        If Not b Is Nothing Then
            h.Unprotect "5"
            h.Cells(b.Row, "F") = "OCUPADA"
            h.Protect "5"
        End If
    End If
End Sub

Para registrar

Private Sub CommandButton1_Click()
    'On Error Resume Next
    Dim Lin As Integer, a As Integer
    If TextBox1 = "" Then
        MsgBox "Captura nombre del Huésped", vbOKOnly + vbInformation, "AVISO"
       Frame1.TextBox1.SetFocus
        Exit Sub
    End If
    Dim FilaVacia As Long
    Dim text13
    With ThisWorkbook.Sheets("USUARIOS")
        .Unprotect "5"
        FilaVacia = .Range("D" & Rows.Count).End(xlUp).Row + 1
        .Range("b" & FilaVacia) = Format(FilaVacia - 4, "00000")
        .Range("c" & FilaVacia) = Me.TextBox2.Text
        .Range("d" & FilaVacia) = Me.TextBox1.Text
        .Range("e" & FilaVacia) = Me.ComboBox5
        .Range("f" & FilaVacia) = Me.ComboBox1
        .Range("g" & FilaVacia) = Me.ComboBox7
        .Range("h" & FilaVacia) = Me.TextBox15.Text
        .Range("i" & FilaVacia) = Me.ComboBox16
        .Range("j" & FilaVacia) = Me.ComboBox9
        .Range("k" & FilaVacia) = Me.TextBox8.Text
        .Range("l" & FilaVacia) = Me.TextBox11.Text
        .Range("m" & FilaVacia) = Me.TextBox12.Text
        .Range("n" & FilaVacia) = Me.TextBox10.Text
        .Range("o" & FilaVacia) = Me.TextBox9.Text
        .Range("p" & FilaVacia) = Habitacion
        .Range("q" & FilaVacia) = Me.ComboBox2
        .Range("r" & FilaVacia) = tipo
        .Range("s" & FilaVacia) = Me.ComboBox15
        .Range("t" & FilaVacia) = Me.DTPicker1
        .Range("u" & FilaVacia) = Time
        .Range("v" & FilaVacia) = Me.TextBox14.Text
        .Range("w" & FilaVacia) = Me.TextBox4.Text
        .Range("x" & FilaVacia) = Me.TextBox16.Text
        .Range("y" & FilaVacia) = Me.DTPicker2
        .Range("z" & FilaVacia) = Me.ComboBox3
        .Range("aa" & FilaVacia) = Me.ComboBox4
        .Range("ab" & FilaVacia) = TextBox17.Text
        .Range("ac" & FilaVacia) = TextBox13.Text
        .Range("ad" & FilaVacia) = TextBox18.Text
        .Range("ae" & FilaVacia) = ComboBox17
        If Me.TextBox13 <> "" Then text13 = CDbl(Me.TextBox13) Else text13 = ""
        .Range("ac" & FilaVacia) = text13
        With ThisWorkbook.Sheets("Habitacion")
            .Unprotect "5"
             For a = 5 To 40
                If .Range("C" & a) = Habitacion Then Lin = a: Exit For
             Next
            .Range("G" & Lin) = Me.TextBox4.Text
            .Range("H" & Lin) = Me.TextBox14.Text
            .Range("J" & Lin) = Date
            .Range("I" & Lin) = Me.TextBox16.Text
            .Range("K" & Lin) = Me.DTPicker2
            .Range("L" & Lin) = Me.TextBox17.Text
            .Range("M" & Lin) = Me.ComboBox3
            .Range("O" & Lin) = Me.TextBox18.Text
            .Range("p" & Lin) = Me.TextBox1.Text
            .Range("Q" & Lin) = CDbl(Me.TextBox13.Text)
        End With
        .Protect "5"
    End With
    '
    'cambia el estatus en reserva
    If ActiveSheet.Name = "RESERVACIONES" Then
        Dim wfila
        wfila = ActiveCell.Row
        ActiveSheet.Unprotect "5"
        Cells(wfila, "P") = "SI"
        ActiveSheet.Protect "5"
    End If
    Registrado = True
    MsgBox "datos registrados correctamente"
    Unload Me
End Sub

Sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas