consejo sobre el uso del Select Case en este ejercicio

Iniciado por lio crossroad, 20 Abril 2013, 20:55 PM

0 Miembros y 1 Visitante están viendo este tema.

lio crossroad






  cuando los textbox1 el 2 y el 3  esten llenos los tres debe pasar los datos que se rellenan, si faltara  rellenar un textbox  deberia salir un mensaje alertando que falta llenar ese campo:

por ejemplo si falta edad entonces deberia salir mensaje  "falta llenar edad" y no deberia permitir que pasen los datos a las celdas, asi con todas las combinaciones con tres textbox, es necesario usar solo el select case,.... a ver si me ayudan ver donde puedo estar errando.....

+cuando no se ha introducido ningun dato , hasta ahi corre chevre en las combinaciones tengo problemas.

ESTE EL CODIGO del boton aceptar

-------------------
Private Sub CommandButton1_Click()

Select Case (TextBox1 = "" Or TextBox2 = "" Or TextBox3 = "")
Case TextBox1 = "" And TextBox2 = "" And TextBox3 = "":
MsgBox ("faltan nombre y apellido,edad y direccion")
Case TextBox1 = "" And TextBox2 = "":
MsgBox ("faltan  edad")
Case TextBox2 = "" And TextBox3 = "":
MsgBox ("faltan nombre")
Case Else
For x = 2 To 35
If Cells(x, 2) = "" Then
Exit For
End If
Next
Cells(x, 1) = TextBox1
Cells(x, 2) = TextBox2
Cells(x, 3) = TextBox3
End Select


End Sub

----------------




Emanuel2236

#1
Código (vb) [Seleccionar]
Option Explicit

Private Sub Command1_Click()

   If Not TextComplete(Edad) Then Exit Sub
   
   'Aquí completa las celdas.
   MsgBox "Siguiente Instrucción"
   
End Sub

Function TextComplete(TextBox As TextBox) As Boolean

   TextComplete = IIf(LenB(TextBox.Text), True, False)
   If Not TextComplete Then MsgBox "Falta completar: " & TextBox.Name
   
End Function


lio crossroad

 si utilizo el IF :corre bien

If TextBox1 = "" Or TextBox2 = "" Or TextBox3 = "" Then
MsgBox ("faltan nombre y apellido,edad y direccion")
Else
For x = 2 To 35
If Cells(x, 2) = "" Then
Exit For
End If
Next
Cells(x, 1) = TextBox1
Cells(x, 2) = TextBox2
Cells(x, 3) = TextBox3
End If

pero lo que yo BUSCO es como escribirlo esta sentencia con el SELECT CASE usando su sintaxis,,,,,, osea cambiar el codigo de arriba que esta con el if por un CASE

$Edu$

Es que queda horrible haciendo uso de select case, estas seguro que te lo han pedido asi?

Flamer

hola dime si te sirve


Private Sub Command1_Click()
Select Case ""
   Case txt_Nombre
      MsgBox "Error Falta El Nombre...", vbInformation, "Aviso De Error"
   Case txt_Apellido
      MsgBox "Error Falta El Apellido...", vbInformation, "Aviso De Error"
   Case txt_Edad
      MsgBox "Error Falta El Edad...", vbInformation, "Aviso De Error"
End Select
End Sub


saludos

tincopasan

Como te han dicho parece mal usar select case pero... probá este código
vi q usas for lo único q cambié es q en vez de varios textbox es uno solo en matriz, o sea haces uno, lo copias y pegas. en este caso pegué dos veces, podes hacer todos los que quieras solo cambias en for la cantidad y agregas los cases index que necesites.

Private Sub Command1_Click()
Dim I As Integer

For I = 0 To 2
Select Case Text1(I).Text
       
       Case ""
                  Select Case I
                          Case 0
                              MsgBox ("falta nombre ")
                              Text1(0).SetFocus
                              Exit Sub
                          Case 1
                             MsgBox ("falta apellido")
                             Text1(1).SetFocus
                             Exit Sub
                          Case 2
                             MsgBox ("falta direccion")
                             Text1(2).SetFocus
                             Exit Sub
                          End Select
       Case Else
       ' Cells(x, 1) = Text1(0)
       ' Cells(x, 2) = Text1(1)
       ' Cells(x, 3) = Text1(2)
       End Select
Next
     
End Sub

lio crossroad

bueno viendo como utilizaban el SELECT case de estas ""... lo resolvi, gracias por responder y gracias sobre todo a Flamer  y a tincopasan  .... que me dieron ideas de como usar el select case  en este caso.... ;-)