Cual es el código para dejar un TextBox en blanco en condición de otro?

Espero puedan ayudarme en el siguiente Userfrom los datos guardados se colocan en columnas en donde el TxtBox DCN y Siniestro se repiten en los Txtbox Carta1, 2 y 3, lo que necesito hacer y no se como es que al dejar en blanco los TxtBox Carta 2 y 3 ya no se repitan los TxtBox DCN y Siniestro, pero cuando los txtcarta 2 y 3 cuenten con valor si se repitan los txtdcn y siniestro, lo he intentado con la condición if e if_the pero no funciona anexo el código de como esta escrito, Gracias

Private Sub CommandButton1_Click()

Set h1 = Sheets("Hoja2")
u = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
h1.Cells(u, "A") = ComboBox1
h1.Cells(u, "A") = TxtDCN
h1.Cells(u, "B") = ComboBox2
h1.Cells(u, "B") = TxtSiniestro
h1.Cells(u + 1, "A") = ComboBox1
h1.Cells(u + 1, "A") = TxtDCN
h1.Cells(u + 1, "B") = ComboBox2
h1.Cells(u + 1, "B") = TxtSiniestro
h1.Cells(u + 2, "A") = ComboBox1
h1.Cells(u + 2, "A") = TxtDCN
h1.Cells(u + 2, "B") = ComboBox2
h1.Cells(u + 2, "B") = TxtSiniestro
h1.Cells(u, "C") = ComboBox3
h1.Cells(u, "C") = TxtCarta1
h1.Cells(u + 1, "C") = ComboBox4
h1.Cells(u + 1, "C") = TxtCarta2
h1.Cells(u + 2, "C") = ComboBox5
h1.Cells(u + 2, "C") = TxtCarta3
MsgBox "Datos guardados"
With Me
'limpiamos y restablecemos control por control
.TxtDCN = ""
.TxtSiniestro = ""
.TxtCarta1 = ""
.TxtCarta2 = ""
.TxtCarta3 = ""
End With
End Sub

'Cerrar Formulario

Private Sub CommandButton2_Click()
Unload FrmCaptura
End Sub

1 Respuesta

Respuesta
1

Private Sub CommandButton1_Click()

if TxtCarta1.value = " " and TxtCarta2.value = " " and TxtCarta3.value = " " then

'si se cumple las 3 condiciones

'escribes lo que quieres que ejecute

elseif TxtCarta1.value <> " " and TxtCarta2.value <> " " and TxtCarta3.value <> " "

'si se cumple las 3 condiciones

'escribes lo que quieres que ejecute

end if
MsgBox "Datos guardados"
With Me
'limpiamos y restablecemos control por control
.TxtDCN = ""
.TxtSiniestro = ""
.TxtCarta1 = ""
.TxtCarta2 = ""
.TxtCarta3 = ""
End With
End Sub

'Cerrar Formulario

Private Sub CommandButton2_Click()
Unload FrmCaptura
End Sub

Que tal escribí el siguiente código con ayuda de lo que me respondieron pero no logro el objetivo el cual explico : Los Campos TxtDCN, TxtSiniestro y TxtCarta1 son campos que siempre llevaran valor y se colocaran en las celda A2, B2 y C2 considerando que los encabezados ocupan la fila uno, el problema surge con los campos TxtCarta2 y TxtCarta3 estos campos no siempre llevaran valor; al tener estos campos un valor, estos se colocaran en las celda C3 y C4; y al contener un valor necesito se repitan en las celdas A3, B3, A4 y B4 los Campos TxtDCN y Siniestro, los cuales ya se encuentran en las Celdas A2 y B2.

Ahora si los campos TxtCarta2 y TxtCarta3 no contienen un valor, las celdas A3, B3, A4 y B4 se queden en blanco.

Anexo enlace para descargar archivo

https://www.dropbox.com/s/7svabfwalj9tlx3/Nueva%20Prueba%20Cartas1.xlsm?dl=0  

Por favor espero puedan ayudarme soy principiante en VBA y lo voy comprendiendo poco a poco

Gracias...

Private Sub CommandButton1_Click()

Set h1 = Sheets("Hoja2")
u = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
h1.Cells(u, "A") = TxtDCN
h1.Cells(u, "B") = TxtSiniestro
h1.Cells(u, "C") = TxtCarta1


If TxtCarta2.Text = " " And TxtCarta3.Text = " " Then
h1.Cells(u + 1, "A") = ""
h1.Cells(u + 1, "B") = ""
h1.Cells(u + 2, "A") = ""
h1.Cells(u + 2, "B") = ""
h1.Cells(u + 1, "C") = ""
h1.Cells(u + 2, "C") = ""
ElseIf TxtCarta2.Text <> " " And TxtCarta3.Text <> " " Then
h1.Cells(u + 1, "A") = TxtDCN
h1.Cells(u + 1, "B") = TxtSiniestro
h1.Cells(u + 2, "A") = TxtDCN
h1.Cells(u + 2, "B") = TxtSiniestro
h1.Cells(u + 1, "C") = TxtCarta2
h1.Cells(u + 2, "C") = TxtCarta3
End If
MsgBox "Datos guardados"
With Me
'limpiamos y restablecemos control por control
.TxtDCN = ""
.TxtSiniestro = ""
.TxtCarta1 = ""
.TxtCarta2 = ""
.TxtCarta3 = ""
End With
End Sub

'Cerrar Formulario

Private Sub CommandButton2_Click()
Unload FrmCaptura
End Sub

Estos registros son para una tabla donde se guardaran registros unos debajo de otros, ¿o estarán fijos siempre en las mismas celdas?

Ya veo que es en una tabla sin embargo veo que se cumple la condiciones del registro excepto por que estos siempre se guardan al final del la hoja en las celdas encontradas como vacías. Si deseas que estén siempre al inicio de la hoja entonces deberás cambiar en la parte inicial insertar 3 filas así las primeras que encontrara serán esas y hay se guardara el registro

Te adjunto tu archivo

Private Sub CommandButton1_Click()
   Set h1 = Sheets("Hoja2")
    Rows("2:4").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromRightOrBelow
    'u = h1.Range("A" & Rows.Count).End(xlUp).Row
    h1.Cells(2, "A") = TxtDCN
    h1.Cells(2, "B") = TxtSiniestro
    h1.Cells(2, "C") = TxtCarta1
    If TxtCarta2.Text = " " And TxtCarta3.Text = " " Then
    h1.Cells(3, "A") = ""
    h1.Cells(3, "B") = ""
    h1.Cells(4, "A") = ""
    h1.Cells(4, "B") = ""
    h1.Cells(3, "C") = ""
    h1.Cells(4, "C") = ""
    ElseIf TxtCarta2.Text <> " " And TxtCarta3.Text <> " " Then
    h1.Cells(3, "A") = TxtDCN
    h1.Cells(3, "B") = TxtSiniestro
    h1.Cells(4, "A") = TxtDCN
    h1.Cells(4, "B") = TxtSiniestro
    h1.Cells(3, "C") = TxtCarta2
    h1.Cells(4, "C") = TxtCarta3
    End If
    MsgBox "Datos guardados"
      With Me
    'limpiamos y restablecemos control por control
    .TxtDCN = ""
    .TxtSiniestro = ""
    .TxtCarta1 = ""
    .TxtCarta2 = ""
    .TxtCarta3 = ""
    End With
End Sub
'Cerrar Formulario
Private Sub CommandButton2_Click()
Unload FrmCaptura
End Sub

Que tal gracias por la ayuda y como bien dices estos registros se van guardando unos de bajo de otro y cada que agregas otro se van colocando al final de la hoja en las celdas vacías; ahora una vez que se ingresa el DCN, Siniestro y Carta1; lo que continua es el campo de carta 2 y carta 3 a estos campos se repite el DCN y Siniestro como ya lo hace el formulario lo que necesito hacer es que si en los campos carta 2 y carta 3 no tiene ningún valor el DCN y el Siniestro no se repita,

espero haber explicado bien los que necesito hacer, la ayuda que me han dado ha sido muy buena

gracias. espero sus comentarios.

Espero ya tengas una solución en todo caso acá te dejo una de mi parte espero haber sido de ayuda

Private Sub CommandButton1_Click()
    Set h1 = Sheets("Hoja2")
    u = h1.Range("A" & Rows.Count).End(xlUp).Row + 1
        h1.Cells(u, "A") = TxtDCN
        h1.Cells(u, "B") = TxtSiniestro
        h1.Cells(u, "C") = TxtCarta1
    If TxtCarta2.Text <> "" Then
        h1.Cells(u + 1, "A") = TxtDCN
        h1.Cells(u + 1, "B") = TxtSiniestro
        h1.Cells(u + 1, "C") = TxtCarta2
    End If
    If TxtCarta3.Text <> "" Then
        h1.Cells(u + 2, "A") = TxtDCN
        h1.Cells(u + 2, "B") = TxtSiniestro
        h1.Cells(u + 2, "C") = TxtCarta3
    End If
    MsgBox "Datos guardados"
      With Me
    'limpiamos y restablecemos control por control
    .TxtDCN = ""
    .TxtSiniestro = ""
    .TxtCarta1 = ""
    .TxtCarta2 = ""
    .TxtCarta3 = ""
    End With
End Sub
'Cerrar Formulario
Private Sub CommandButton2_Click()
Unload FrmCaptura
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas