Como mejorar un formulario para que trabaje con varios botones y 60 imágenes sin que se cuelgue

Tengo un formulario de control de habitaciones a la cual asigne 120 botones y 60 imágenes pero al ejecutar el formulario se cuelga existe alguna forma de usar un formulario así o como me recomendarían el botón ocupado y libre tienen una macro cada uno mi problema es que se cuelga

1 Respuesta

Respuesta
1

[Hola

La cantidad de botones no es el problema, quizá sí el tamaño de las imágenes que has usado ¿cuántos megas tiene el archivo?

No olvides que Excel es una hoja de cálculo y estás intentando usarlo como si fuese un sistema y no es el programa ideal para eso.

Por cierto ¿las 60 macros son parecidas? Quizás un bucle sería mejor.

Abraham Valencia

Gracias por la respuesta esta es la macro para cada habitación controlada por dos botnes solo que no se como hacerle un bucle a las diferentes celdas que hace referencia la macro y en diferentes hojas. Si me podrían ayudar con una modificación a la macro les agradezco de antemano.

Public dest As Variant
Private Sub CommandButton1_Click()
'HABITACION  (OFF)
'copia el dato de la habitación
Sheets(dest).Select
Range("B4").Select  **** estos valores varian para cada boton
Selection.Copy
Range("A2").Select              **** estos valores varian para cada boton
ActiveSheet.Paste
'llama al formularios de ingreso de datos
UsClien.Show vbModal
'en la hoja de usuarios buscamos el registro
Sheets("USUARIOS").Select
Range("C3").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop
ActiveCell.Offset(-1, 0).Select
Selection.Copy
'en la hoja destino pegamos el registro
Sheets(dest).Select
Range("B3").Select               **** estos valores varian para cada boton
ActiveSheet.Paste
'copiamos formato de celda
Range("B1").Select               **** estos valores varian para cada boton
Selection.Copy
   Range("B3").Select             **** estos valores varian para cada boton
   Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Application.CutCopyMode = False
' obtenemos el valor a mostrar
reg_1 = Sheets(dest).Range("B3")
'validamos la funcion a activar
CommandButton1.Visible = False        **** estos valores varian para cada boton
CommandButton2.Visible = True         **** estos valores varian para cada boton
'mensaje de culiminacion
MsgBox ("Registro exitoso" & reg_1)
End Sub
Private Sub CommandButton2_Click()
'HABITACION (ON)
Sheets(dest).Select
Range("B3").Select   **** estos valores varian para cada boton
Selection.Copy
Range("A1").Select        **** estos valores varian para cada boton
 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
ocupante.Show vbModal
Sheets(dest).Select
Range("B3").Select        **** estos valores varian para cada boton
Selection.ClearContents
Range("A1").Select        **** estos valores varian para cada boton
Selection.ClearContents
reg_1 = ""
CommandButton1.Visible = True       **** estos valores varian para cada boton
CommandButton2.Visible = False       **** estos valores varian para cada boton
End Sub

No conozco los detalles de tu archivo pero si puedo comentar que si usas una hoja por cada habitación, pues no es lo ideal:

https://abrahamexcel.blogspot.com/2018/10/excel-como-base-de-datos.html 

Abraham Valencia

Gracias por el comentario pero no uso una hoja por habitación es una hoja por local son (3) y una sola base de datos 

Si hay detalles en común podría sugerirte algo pero yo no conozco tu archivo, los detalles solo los conoces tú, recuerda que desde este lado de la pantalla solo puedo saber lo que tú comentas, y aunque has enviado algunas cosas, al no saber el orden de tus datos (y otros detalles) es complicado sugerir cosas.

Por cierto, no mencionaste cuántos megas tiene tu archivo.

Abraham Valencia

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas