Hacer que un textbox reciba los datos de un listbox luego de dar click en un botón, pero siempre y cuando el textbox este vació

Tengo la siguiente macro

Private Sub CommandButton2_Click()
Application.ScreenUpdating = False
If TextBox1 = "" Or TextBox2 = "" Or TextBox3 = "" Or TextBox4 = "" Or TextBox5 = "" Or TextBox6 = "" Or TextBox7 = "" Or TextBox8 = "" Then
MsgBox "Faltan Datos por completar"
GoTo fuera:
End If
Sheets("Consolidado").Select
Range("bb2:bi2").Select
Selection.Copy
Range("m2").Select
Do While ActiveCell <> Empty
If ActiveCell.Value = ComboBox1 Then
ActiveCell.Offset(0, -12).Select
ActiveSheet.Paste
End If
ActiveCell.Offset(1, 0).Select
Loop
ActiveSheet.Range("bb2:bi2").Select
Selection. ClearContents
Fuera:
ListBox1. Clear
ListBox2. Clear
ListBox3. Clear
ListBox4. Clear
ListBox5. Clear
ListBox6. Clear
ListBox7. Clear
ListBox8. Clear
TextBox1 = ""
TextBox2 = ""
TextBox3 = ""
TextBox4 = ""
TextBox5 = ""
TextBox6 = ""
TextBox7 = ""
TextBox8 = ""
End Sub

La cual en base a lo ingresado en los textbox completa datos en el lugar que se indica, eso me funciona bien no tengo problemas. El problema surge porque necesito que si se deja un textbox en blanco se autocomplete con los datos del listbox

Como se aprecia en esa imagen lo primero que hace la macro es buscar el dato de la persona, luego el boton modificar añade los datos que faltan, pero no logro hacer que los textbox se completen con el dato del listbox de al lado cuando están en blanco.

1 respuesta

Respuesta
-1

No entiendo muy bien tu diseño pero en mi opinión es un poco más complicado tener tantos TextBox, deberías explicar un poco más tu proceso, Deberías utilizar fieldsets o groupbox para agrupar los textbox e indicarle al usuario para que sirven. Entiendo que al seleccionar un campo en tu listbox y darle clic al botón buscar este te trae algunos textbox y los rellena,¿después completas la información en los demás textbox y cuando le das clic en el botón modificar este actualiza cuales textbox? Deberías incluir también el excel o los campos con los que trabajas

Recomendaciones :

Nombra tus TextBox en funcion a lo que hacen: ListBox1 = lb_buscarcolaborador

TextBox1 = txtnosap , TextBox2 = txtdañoemergente, etc

SIEMPRE LIMPIA LOS ESPACIOS TextBox con ".TRIM" = TextBox1.Text. Trim <-- Esto hace que limpie los espacios de tus TextBox, ¿Qué pasa si modificas los datos del usuario pero en los TextBox solo ingres "espacios"?

Button1 = btn_buscar , Button2 = btn_modificar

Asi el metodo clic del boton muestre :  Private Sub btn_buscar_Click() y no Private Sub CommandButton2_Click() por que para nosotros o para ti (despues) no sabras cual es el boton 2, imagina una pantalla con 10 botones

Por ultimo si tu aplicación tiene un Form natural con el botón de cerrar en la parte superior derecha junto con el botón minimizar, NO UTILICES UN BOTÓN CERRAR QUE HACE LO MISMO

Te podría ayudar más amigo pero describe el proceso al que quieres llegar, solo te dejo un consejo de varios años de desarrollo!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas