Páginas

Estamos Para Ayudarle

Si desea que le resolvamos cualquier duda, con respecto a Excel, deje un comentario en el Post de Bienvenida o envie un correo a hector.eduardo.pm@hotmail.com ;)

[MACROS] Mensaje de error al escribir en una celda excel


Usuario:
Buenos días y gracias por atenderme.
Tengo un programilla que me copia unos valores mediante formulario en una hoja (datos). Te copio el código para ponerte en situación.
Private Sub Guardar_Click()
   If MsgBox("¿Seguro que desea cargar los datos?", vbQuestion + vbYesNo, "CONFIRMACION") = vbNo Then
   TextBox3 = Empty
   Exit Sub
   End If
   Dim x As Integer
   x = Choose(ComboBox1.ListIndex + 1, 4, 18, 33, 39, 43, 46, 55, 61, 66, 72, 75, 80, 117, 122, 124, 126, 144, 169, 172, 197, 202) + ComboBox2.ListIndex
   Sheets("Datos").Cells(x, 4) = Sheets("Datos").Cells(x, 4) - SalidaMaterial.TextBox3.Value
   TextBox3 = Empty
   MsgBox ("La operación se ha realizado correctamente")
End Sub 

Lo que ue hace es sumarme el valor del textbox en función de los combobox. Me lol hace bien, pero si selecciono una opción en el primer combobox y ninguna en el segundo me copia el valor a una celda que no quiero. En este caso la celda 3, 17, 32, 38, 42, etc,
¿Cómo puedo quitar esta opción? Y que me de un mensaje de error cuando no haya seleccionado una opción en el combobox 2. 

Respuesta:
Buenas tardes, una posible solución seria colocar un condicional que verifique que ComboBox2 no este vacío.
 
El código podría ser algo como esto:
If ComboBox2.Text = "" Then
        MsgBox ("ComboBox2 no seleccionado")
        Exit Sub
    End If 

 
Pruébalo y me dices que tal te fue
 
Saludos
http://formulas-en-excel.blogspot.com/

Usuario:
Gracias, lo he probado y funciona, lo que pasa ahora es que si antes he seleccionado un producto en el combobox, se me queda y me hace otra vez lo mismo. ¿Cómo puedo vaciar el combobox cada vez que opero con el?
Un saludo.

Respuesta:
Pruebe colocando ComboBox2.Text = "" como ultima accion de la macro. Seria algo así como:
 
   TextBox3 = Empty
   MsgBox ("La operación se ha realizado correctamente")
   ComboBox2.Text = ""
End Sub 

 
Saludos

Usuario:
Excelente. Una fantástica solución.