Jump to content

Recommended Posts

Estimados expertos reciban un cordial saludo por intermedio de ayudaexcel, mi dificultad es que estoy creando un sistema de restaurante para cual tengo un formulario Hamburguesas la cual cuando selecciono una las mesas en momentos selecciona bien y en otro momento no selecciona, pero el problema es que si selecciono una mesa y si quiero seleccionar otra mesa si haber seleccionado un plato no debe seleccionar o por lo menos que diga no a seleccionado ningún plato en la mesa tal (mesa seleccionada anteriormente) por el momento eso es mi dificultad. Amigos programadores espero su pronta respuesta de antemano muchas gracias. Adjunto el enlace del archivo.

https://onedrive.live.com/?id=9076AC7202FC6EF1!522&cid=9076AC7202FC6EF1

 

Edited by jeaa

Share this post


Link to post
Share on other sites
Hace 17 horas, jeaa dijo:

Amigos programadores espero su pronta respuesta de antemano muchas gracias

Espero que algún programador tenga un super pantallón para poder ayudarte. En mi humilde portátil el userform se sale por todos lados de la pantalla :huh:. ¿Es necesario hacerlo tan gigante? Yo no puedo trabajar sobre él y por lo tanto no puedo ayudarte :(

Share this post


Link to post
Share on other sites
Hace 19 minutos , Haplox dijo:

Espero que algún programador tenga un super pantallón para poder ayudarte. En mi humilde portátil el userform se sale por todos lados de la pantalla :huh:. ¿Es necesario hacerlo tan gigante? Yo no puedo trabajar sobre él y por lo tanto no puedo ayudarte :(

¡Dios mío, que carácter! Con poner Me.Zoom = 85 en el evento Initialize del formulario se acaba el problema, ¡Ale!, ya no tienes excusa.😂😂😂

Share this post


Link to post
Share on other sites
Hace 21 horas, Antoni dijo:

¡Dios mío, que carácter!

Ya, ya,... pero a ti no te veo echar una  manita :P. Es que está lleno de trampas, hay que deshabilitar o cambiar la mitad de las cosas para abrirlo, pera poder cerrarlo... :blink:

Aparte @jeaa no entiendo la dinámica del form, ni la que necesitas. No sé que es esa macro de validadr mesa, que funciona unas veces y otras no. Explica claramente que te sobra o no funciona, así cómo quieres que funcione el form. Ejemplo

  • Si elijo una mesa no poder cambiar hasta... ¿Qué? ¿Validar el pedido?
  • SI elijo una mesa, pero quiero seleccionar otra porque, por ejemplo me he equivocado... ¿Qué hago?
  • etc.

Cosas así, para tener claro qué necesitas

 

Share this post


Link to post
Share on other sites
Cita

 

Haplox dijo:

Ya, ya,... pero a ti no te veo echar una  manita :P. Es que está lleno de trampas, hay que deshabilitar o cambiar la mitad de las cosas para abrirlo, pera poder cerrarlo... :blink:

 

Es que soy daltónico, detecto el color "marrón" a la legua, jajaja............😂😂😂

Share this post


Link to post
Share on other sites

Disculpa lo que pasa es que quiero de me funcione correctamente los números de mesas; si selecciono una mesa también debo seleccionar los platos que deseo y así sucesivamente con todas las mesas y si yo selecciona otra mesa sin haber culminado con la mesa anterior seleccionado, me debe salir un mensaje no termino el pedido con la mesa anterior numero tal y no de be pasar a otra mesa. En conclusión si selecciona una mesa también debo seleccionar uno o mas platos y así para el resto de las mesas.

Share this post


Link to post
Share on other sites

@jeaa , se me hace imposible trabajar con tu formulario, aparte de que con tanto código sin demasiado sentido, tocar cualquier cosa puede estroperar otra.

Habías empezado bien con M1. Pon este código para todas las pesas, cambiando M1 por cada mesa (M2, M3, etc): Espero que te pueda guiar para seguir

If MesaActiva <> M1.Caption And VisualizarLB.ListCount = 0 Then
        respuesta = MsgBox("La" & " Mesa " & Mid(VisorMesa, 6, 2) & " está activa " & "y no Ha Registrado Nada Para el Pedido: " & NoPedido & vbNewLine & vbNewLine & "¿Realmente quiere cambiar de mesa?", vbYesNo, "Mesa Activa sin Pedido")
            If respuesta = 6 Then
                VisorMesa = "MESA " & M1.Caption & " ACTIVA"
                M1.BackColor = vbRed
            End If
    End If

 

Share this post


Link to post
Share on other sites

Funciona bien lo que pasa es que una vez seleccionada la mesa selecciono un plato me dice que seleccione una mesa, pero ya esta seleccionado la mesa esto significa que no reconoce la mesa por favor que puedo hacer.

Share this post


Link to post
Share on other sites
Hace 16 horas, jeaa dijo:

Funciona bien lo que pasa es que una vez seleccionada la mesa selecciono un plato me dice que seleccione una mesa

A ver, yo solo he puesto en el labe la mesa que se selecciona, pero no sé cómo hacías para realmente activarla. Solo tienes que llevar esa parte dentrol del If.

Como ves a poco que se toca se estropea algo. Por cierto, debes hacerlo con todas las mesas, que según lo visto para cada una tienes un código distinto :huh: . De hay lo que decías de "unas veces funciona y otras no". Lógico si para cada  mesa tienes un código distinto.

If MesaActiva <> M1.Caption And VisualizarLB.ListCount = 0 Then
        respuesta = MsgBox("La" & " Mesa " & Mid(VisorMesa, 6, 2) & " está activa " & "y no Ha Registrado Nada Para el Pedido: " & NoPedido & vbNewLine & vbNewLine & "¿Realmente quiere cambiar de mesa?", vbYesNo, "Mesa Activa sin Pedido")
            If respuesta = 6 Then
                VisorMesa = "MESA " & M1.Caption & " ACTIVA"
                M1.BackColor = vbRed

				'TODO EL CÓDIGO QUE USASES IRÍA AQUÍ'
	
            End If
    End If

Share this post


Link to post
Share on other sites
respuesta = MsgBox("La" & " Mesa " & Mid(VisorMesa, 6, 2) & " está activa " & "y no Ha Registrado Nada Para el Pedido: " & NoPedido & vbNewLine & vbNewLine & "¿Realmente quiere cambiar de mesa?", vbYesNo, "Mesa Activa sin Pedido")

Al ejecutar el formulario selecciono una mesa me sales un mensajes como muestra la siguiente imagen image.png.642a7f4d9febbb6c3c6d36500dd09ff7.png

a la mesa lo toma Y y en todas las mesas, ademas este mensaje podría salir cuando pulso en otra mesa sin haber seleccionado un plato, pero este sale cuando apena ejecuto y escojo una mesa. Por favor si me dejo entender,  Haplox muchas gracias por tomarte el tiempo en mi duda de agradezco de todo corazón.

Share this post


Link to post
Share on other sites
En 24/11/2019 at 17:24 , jeaa dijo:

a la mesa lo toma Y y en todas las mesas, ademas este mensaje podría salir cuando pulso en otra mesa sin haber seleccionado un plato, pero este sale cuando apena ejecuto y escojo una mesa. Por favor si me dejo entender,  Haplox muchas gracias por tomarte el tiempo en mi duda de agradezco de todo corazón.

No entiendo ¿Necesitas ayuda o modificar algo más? :(

Share this post


Link to post
Share on other sites

@jeaa , por partes... Te dejo el código, sin variar mucho para no estropear el resto de jaleo de macros que tienes, de las Mesas 1 y 2. Debes aplicarlas al  resto, FIJÁNDOTE que debes cambiar las celdas, NumMesa, etc. correspondientes a cada mesa.

En algún lugar, supongo que al registrar el pedido, debes poner MesaActiva a 0, si no no te funcionará. Lo del nº de pedido no me ha quedado claro cómo quieres ponerlo o su dinámica. Mira el cambio que he hecho a ver si es lo que necesitas... Y crucemos los dedos 🙏
 

Private Sub M1_Click()

    Dim NumMesa As Integer, PedMesa As Integer
    NumMesa = Hoja6.Cells(2, 2)
    PedMesa = Hoja6.Cells(2, 3)
    TotalL = "0"
    TotalL = Format(TotalL, "$ ###,##0")
    VisualizarLB.Clear
    
    Uf = Sheets(2).Range("B1:B" & Rows.count).End(xlDown).Row
    NoPedido = WorksheetFunction.Max(Sheets(2).Range("B1:B" & Uf)) + 1
    
    'NoPedido.Text = Hoja2.Cells(2, 14) + 1
    BillTxt.Text = ""
    BillTxt.Text = Format(BillTxt.Text, "$ ###,##0")
    
    If MesaActiva <> 0 And VisualizarLB.ListCount = 0 Then
    
        MsgBox "No Ha Registrado Nada Para el Pedido: " & NoPedido
        M1.ForeColor = vbGreen
    Exit Sub
    End If
    
    
    
    
    If NumMesa = 0 Then
    
        'VisorMesa = "MESA 1, ESTA ACTIVA CON EL PEDIDO No " & NoPedido.Text
        VisorMesa = Hoja6.Cells(NumMesa + 2, 1) + ", ESTA ACTIVA. PEDIDIDO No: " & NoPedido.Text
        Hoja6.Cells(NumMesa + 2, 2) = 1
        Hoja6.Cells(NumMesa + 2, 3) = NoPedido.Text
        M1.ForeColor = vbRed
    
    End If
         
    If PedMesa <> 0 Then
        
        Me.VisualizarLB.Clear
        Dim ped, count As Integer, FilPed As Integer, UltFil As Integer
        NoPedido.Text = Hoja6.Range("C2")
        FilPed = Hoja6.Range("C2")
        UltFil = Hoja2.Range("B" & Rows.count).End(xlUp).Row

            For count = 2 To UltFil
            
                ped = Hoja2.Cells(count, 2)
                
                    If ped = FilPed Then
                    
                        Me.VisualizarLB.AddItem Cells(count, 1)
                        Me.VisualizarLB.List(Me.VisualizarLB.ListCount - 1, 1) = Hoja2.Cells(count, 2)
                        Me.VisualizarLB.List(Me.VisualizarLB.ListCount - 1, 2) = Hoja2.Cells(count, 3)
                        Me.VisualizarLB.List(Me.VisualizarLB.ListCount - 1, 3) = Hoja2.Cells(count, 4)
                        Me.VisualizarLB.List(Me.VisualizarLB.ListCount - 1, 4) = Hoja2.Cells(count, 5)
                        Me.VisualizarLB.List(Me.VisualizarLB.ListCount - 1, 5) = Hoja2.Cells(count, 6)
                        Me.VisualizarLB.List(Me.VisualizarLB.ListCount - 1, 6) = Hoja2.Cells(count, 7)
                        Me.VisualizarLB.List(Me.VisualizarLB.ListCount - 1, 7) = Hoja2.Cells(count, 8)
                                        
                    End If
                    
            Next count

        End If
            
            Dim Suma As Long
            Dim i As Integer
            
            Suma = 0
            
                For i = 0 To Me.VisualizarLB.ListCount - 1
            
                    Suma = Suma + CDbl(Me.VisualizarLB.List(i, 7))
            
                Next
           
                    TotalL = Suma
                    TotalL = Format(TotalL.Caption, "$ ###,##0")
     
                    

 
 MesaActiva = 1
End Sub

 

Private Sub M2_Click()


Dim NumMesa As Integer, PedMesa As Integer
    NumMesa = Hoja6.Cells(3, 2)
    PedMesa = Hoja6.Cells(3, 3)
    TotalL = "0"
    TotalL = Format(TotalL, "$ ###,##0")
    VisualizarLB.Clear
    
    Uf = Sheets(2).Range("B1:B" & Rows.count).End(xlDown).Row
    NoPedido = WorksheetFunction.Max(Sheets(2).Range("B1:B" & Uf)) + 1
    
    'NoPedido.Text = Hoja2.Cells(2, 14) + 1
    BillTxt.Text = ""
    BillTxt.Text = Format(BillTxt.Text, "$ ###,##0")
    
    If MesaActiva <> 0 And VisualizarLB.ListCount = 0 Then
    
        MsgBox "No Ha Registrado Nada Para el Pedido: " & NoPedido
        M2.ForeColor = vbGreen
    Exit Sub
    End If
    
    
    
    
    If NumMesa = 0 Then
    
        VisorMesa = "MESA 1, ESTA ACTIVA CON EL PEDIDO No " & NoPedido.Text
        VisorMesa = Hoja6.Cells(NumMesa + 2, 1) + ", ESTA ACTIVA. PEDIDIDO No: " & NoPedido.Text
        Hoja6.Cells(NumMesa + 2, 2) = 1
        Hoja6.Cells(NumMesa + 2, 3) = NoPedido.Text
        M1.ForeColor = vbRed
    
    End If
         
    If PedMesa <> 0 Then
        
        Me.VisualizarLB.Clear
        Dim ped, count As Integer, FilPed As Integer, UltFil As Integer
        NoPedido.Text = Hoja6.Range("C3")
        FilPed = Hoja6.Range("C3")
        UltFil = Hoja2.Range("B" & Rows.count).End(xlUp).Row

            For count = 2 To UltFil
            
                ped = Hoja2.Cells(count, 2)
                
                    If ped = FilPed Then
                    
                        Me.VisualizarLB.AddItem Cells(count, 1)
                        Me.VisualizarLB.List(Me.VisualizarLB.ListCount - 1, 1) = Hoja2.Cells(count, 2)
                        Me.VisualizarLB.List(Me.VisualizarLB.ListCount - 1, 2) = Hoja2.Cells(count, 3)
                        Me.VisualizarLB.List(Me.VisualizarLB.ListCount - 1, 3) = Hoja2.Cells(count, 4)
                        Me.VisualizarLB.List(Me.VisualizarLB.ListCount - 1, 4) = Hoja2.Cells(count, 5)
                        Me.VisualizarLB.List(Me.VisualizarLB.ListCount - 1, 5) = Hoja2.Cells(count, 6)
                        Me.VisualizarLB.List(Me.VisualizarLB.ListCount - 1, 6) = Hoja2.Cells(count, 7)
                        Me.VisualizarLB.List(Me.VisualizarLB.ListCount - 1, 7) = Hoja2.Cells(count, 8)
                                        
                    End If
                    
            Next count

        End If
            
            Dim Suma As Long
            Dim i As Integer
            
            Suma = 0
            
                For i = 0 To Me.VisualizarLB.ListCount - 1
            
                    Suma = Suma + CDbl(Me.VisualizarLB.List(i, 7))
            
                Next
           
                    TotalL = Suma
                    TotalL = Format(TotalL.Caption, "$ ###,##0")
     
                    

 
 MesaActiva = 2
End Sub

 

Share this post


Link to post
Share on other sites



×
×
  • Create New...

Important Information

Privacy Policy