Userform complicadillo

Hola asilveira, y gracias de antemano
Tengo que realizar un userform complicadillo para excel. Este userform esta dividido en 4 partes:
1.- Primero aparecerá un texto fijo
2.- Debajo del primero tiene que aparecer escrito el valor de una celda
3.- Luego tiene que buscar en una hoja (por ejemplo "contratos") en una columna (por ejemplo "j") las celdas que tengan escrito la palabra "si" y de esas líneas coger lo que pone en otra celda y crear un lista. (Por ejemplo si en una columna tenemos clientes y en la otra si deben dinero, tiene que buscar los que deben y hacer una lista con los nombres de los clientes)
4.-Tiene que poner un botón en la que copie (si un copy simple) todo el texto de arriba, para que luego el usuario por su cuenta lo pegue en el correo electrónico
-----------------------------------
Después de darle pegar en el correo le tendría que salir por ejemplo algo así:
Hola, soy el director de la empresa
Mi numero de empleado es: 24123324 (este numero se cocería de una celda)
Los clientes morosos son:
Antonio (estos los cocería de la búsqueda, tipo buscar v pero haciendo lista)
Víctor
Jorge
------------------------------------------
Un saludo y gracias!

1 respuesta

Respuesta
1
Siendo sincero no estoy muy familiarizado con el uso de formularios, pero con gusto si me mandas el excel que tienes armado a mi correo [email protected] lo recibo y lo arreglo.
La parte de armar la lista no habría problema y en cuanto al envío por mail podría hacerse directamente desde excel (enviando una hoja o el libro completo)
Cualquier consulta quedo a las ordenes.
Habría que hacer unas cuantas cosas :
1) Crear un par de rangos dinámicos :
borrar_datos            =DESREF(Contratos!$L$7;0;0;CONTARA(Contratos!$L:$L);2)
datos_para_lista      =DESREF(Contratos!$L$7;0;0;CONTARA(Contratos!$L:$L))
2)  Luego creamos la siguiente rutina :
Sub Filtra_Datos()
'
Worksheets("Contratos").Activate
Range("borrar_datos").Select
Selection.ClearContents
Range("I6:J9").Select
Range("I6:J9").AdvancedFilter Action:=xlFilterCopy, CriteriaRange:=Range( _
"J3:J4"), CopyToRange:=Range("L6"), Unique:=False
End Sub
3)   Cambiar el textbox por un Listbox y darle a la propiedad RowSource = datos_para_lista
4) en el evento click del botón "Prepara Correo" agregar la siguiente instrucción:
UserForm1.L3.Caption = Range("b2")
5) en el evento click del botón "Copiar todo el Texto" agregar lo siguiente:
Private Sub CommandButton1_Click()
   ' esto es para crear un texto con todos los nombres  
  Worksheets("Contratos").Activate
   Range("datos_para_lista").Select
   For Each cell In Selection
         t = t + cell.Value + Chr(13)
   Next cell
   Worksheets("Hoja1").Activate
    'Esto concatena todos los cuadros del form + los nombres
   texto_completo = L1 + Chr(13) + L2 + L3 + Chr(13) + L4 + Chr(13) + t
   TEXTO.Text = texto_completo
   TEXTO.EnterFieldBehavior = fmEnterFieldBehaviorSelectAll
   TEXTO.SetFocus
   TEXTO.SelStart = 0
   TEXTO.SelLength = Len(TEXTO.Text)
End Sub
Y creo que no me olvido de nada... de todas formas te envío vía mail el archivo modificado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas