Excel - uso de condicional para habilitar o inhabilitar un textbox

   
Vista:
Imágen de perfil de geancarlo

uso de condicional para habilitar o inhabilitar un textbox

Publicado por geancarlo (2 intervenciones) el 26/03/2017 03:49:57
hola buen día a todos.

Estoy haciendo un pequeño sistema en excel con vba y estoy usando un userform, detallo lo que hace.

tengo un combobox que se encuentra vinculado a una tabla en una hoja de excel de donde extrae los datos que necesito que se muestren en un textbox el cual lleva el nombre detalle. así mismo tengo 3 textbox adicionales los cuales quiero que se vinculen con el combobox de la siguiente manera.

textbox1 y el textbox2 son los que deben recibir la condicional del combobox, dónde según una condición un textbox1 o el textbox2 debe quedar habilitado o inhabilitado; mientras que el textbox3 recibirá la información de cualquiera de los textbox que se encuentre habilitado. las condicionales son:

1.-si el combobox es igual a 01, el textbox1 queda habilitado y el textbox2 inhabilitado.
2.-si el combobox es igual a 03, el textbox2 queda habilitado y el textbox1 inhabilitado.
todo funciona bien al iniciar el archivo, es decir si continuo usando el condicional 1 no hay problema, después uso el condicional 2 también no hay problema, pero si después de usar la condicional 2 uso la condicional 1 el archivo mantiene la condicional 2 y viceversa o algunas veces quedan inhabilitados los dos textbox y se va directo al textbox3.

supongamos me equivoque y elegí la condición 2 cuando debí elegir la condición 1, bueno lo cambio pero la condición se queda con la condición 2 y no regresa a la condición 1.

Qué puedo hacer, la verdad es que he intentado solucionarlo con mis pocos conocimientos en programación en vba, pero no puedo.
agradecería mucho alguien me pueda ayudar. adjunto el archivo para que lo verifiquen
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana

uso de condicional para habilitar o inhabilitar un textbox

Publicado por Antoni Masana (678 intervenciones) el 28/03/2017 10:36:39
Te envio unas cambios en el código de UserForm

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
' </> --------------------------------------------------------------------- </>
' </> ---&----                                                  </> ---&--- </>
' </> ---&----  I N I C I O                                     </> ---&--- </>
' </> ---&----                                                  </> ---&--- </>
' </> --------------------------------------------------------------------- </>
 
Private Sub UserForm_Initialize()
    Dim fila As Long
    Dim final As Long
    Dim lista As String
 
    For fila = 3 To 10000
        If Hoja1.Cells(fila, 1) = "" Then
           final = fila - 1
           Exit For
        End If
    Next
 
    For fila = 3 To final
        lista = Hoja1.Cells(fila, 1)
        ComboBox1.AddItem (lista)
    Next
End Sub
 
' </> --------------------------------------------------------------------- </>
' </> ---&----  ComboBOX                                          </> ---&--- </>
' </> --------------------------------------------------------------------- </>
 
Private Sub ComboBox1_Change()
    Dim fila As Integer
    Dim final As Integer
 
    If ComboBox1.Value = "" Then
       detalle = ""
    End If
 
    For fila = 3 To 10000
        If Hoja1.Cells(fila, 1) = "" Then
            final = fila - 1
            Exit For
        End If
    Next
 
    For fila = 3 To final
        If ComboBox1 = Hoja1.Cells(fila, 1) Then
            detalle = Hoja1.Cells(fila, 2)
            Exit For
        End If
    Next
End Sub
 
Private Sub ComboBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
    TextBox1 = ""
    TextBox2 = ""
    TextBox3 = ""
 
    TextBox1.Enabled = True
    TextBox2.Enabled = True
 
    If ComboBox1 = "01" Then TextBox2.Enabled = False
    If ComboBox1 = "03" Then TextBox1.Enabled = False
End Sub
 
' </> --------------------------------------------------------------------- </>
' </> ---&----  Botones                                         </> ---&--- </>
' </> --------------------------------------------------------------------- </>
 
Private Sub CommandButton1_Click()
    Hoja2.Cells(1, 1) = TextBox1
    Hoja2.Cells(1, 2) = TextBox2
    Hoja2.Cells(1, 3) = TextBox3
 
    TextBox1 = Empty
    TextBox2 = Empty
    TextBox3 = Empty
    detalle = Empty
    ComboBox1 = Empty
    ComboBox1.SetFocus
End Sub
 
Private Sub CommandButton2_Click()
    Unload Me
End Sub
 
' </> --------------------------------------------------------------------- </>
' </> ---&----                                                  </> ---&--- </>
' </> ---&----  F I N   P R O C E S O                           </> ---&--- </>
' </> ---&----                                                  </> ---&--- </>
' </> --------------------------------------------------------------------- </>

Saludos.
\\//_
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
Imágen de perfil de geancarlo

uso de condicional para habilitar o inhabilitar un textbox

Publicado por geancarlo (2 intervenciones) el 28/03/2017 17:59:11
Antoni Masana acabo de probar el código y me funciono muy bien, era lo que necesitaba, muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Revisar política de publicidad