Jump to content

Pirtrafilla

Members
  • Content Count

    305
  • Joined

  • Last visited

  • Days Won

    1

Pirtrafilla last won the day on December 11 2018

Pirtrafilla had the most liked content!

About Pirtrafilla

  • Rank
    Advanced Member
  • Birthday 06/09/1968

Converted

  • Campos
    ;

Recent Profile Visitors

467 profile views
  1. @ikanni, muchas gracias. El proyecto que envías veo que es para firmar directamente en una pantalla táctil. Me gustaría hacerlo a través de una máquina de firma electrónica. Por ejemplo, como las que tienen en los bancos. Pero como no tengo idea de cómo hacerlo, la idea que tu planteas me parece perfecta. Sinceramente no entiendo el código que manipula la imagen, pero voy a estudiarla. Muchísimas gracias. Moisés.
  2. Buenas tardes!! Estoy intentando buscar sin éxito información acerca de a través de una tableta para firma electrónica poder capturar la firma e insertarla en una hoja Excel, en un rango o una picture, pero no tengo éxito. Os agradezco si podéis darme un poco de luz, o si sabéis de algún link, o donde buscar, porque no veo información al respecto. La intención es que a la hora de imprimir una hoja de entrega de por ejemplo una herramienta de trabajo, en vez de imprimirla y firmarla en papel, pudiera firmarla en una tableta y guardar en PDF o imprimirla pero ya firmada. Todo lo que me sugiráis será de ayuda. Gracias de antemano. Moisés.
  3. @Antoni, ya me funciona. Hace lo que quería en el Evento Click. No se porqué no me lo hacía, por eso preguntaba si el evento era el equivocado. Gracias por responder. Moisés.
  4. Ni caso. Ahora me funciona con el Evento Click. Creo que lo único que he hecho es asignar a una variable el ListboxIndex. O lo mismo es que estoy un poco "despistado". Lo siento. No se si se puede editar un mensaje una vez se ha enviado. Private Sub ListBox4_Click() 'macro para editar los campos seleccionados en Listbox4 If ListBox4.ListIndex = -1 Then Exit Sub Dim n With ListBox4 n = .ListIndex TextBox3 = .List(n, 1) TextBox4 = .List(n, 2) TextBox5 = .List(n, 3) TextBox6 = .List(n, 4) TextBox7 = .List(n, 5) TextBox8 = .List(n, 6) End With End Sub Moisés.
  5. Hola a todos. Tengo un problema que os puede parecer un poco tonto, pero no encuentro como solucionarlo. Seguro que es fácil pero no encuentro el Evento que debo llamar. Tengo en un Userform un Listbox y debajo de este hay unos Textbox. Lo que quiero hacer es que cuando seleccione un datos del Listbox sus datos vayan a parar a los Textbox. Hasta ahí no hay problema, el problema lo tengo porque el código lo he puesto en el Evento Click del Listbox y me envía los datos solo la primera vez que hago click, y cuando selecciono otro item no hace nada. Entiendo que el código lo estoy poniendo en un evento equivocado y no acierto con cuál es. ¿podéis ayudarme por favor? Copio el código, aunque seguro que sabéis donde ponerlo en vez de en el evento Click. Private Sub ListBox4_Click() 'macro para editar los campos seleccionados en Listbox4 If ListBox4.ListIndex = -1 Then Exit Sub With ListBox4 TextBox3 = .List(ListIndex, 1) TextBox4 = .List(ListIndex, 2) TextBox5 = .List(ListIndex, 3) TextBox6 = .List(ListIndex, 4) TextBox7 = .List(ListIndex, 5) TextBox8 = .List(ListIndex, 6) End With End Sub No subo ningún archivo, entiendo que no es necesario. Ruego me disculpéis. Saludos. Moisés.
  6. Hola de nuevo. Ya he conseguido hacerlo funcionar. Private Sub CommandButton3_Click() 'macro para copiar los datos seleccionado del listbox2 al listbox4 If ListBox2.ListIndex = -1 Then Exit Sub Dim i, j, k, salir As Boolean With ListBox2 For i = 0 To .ListCount - 1 salir = False If .Selected(i) = True Then For k = 0 To ListBox4.ListCount - 1 If Val(ListBox2.List(i, 0)) = Val(ListBox4.List(k, 0)) Then salir = True: Exit For Next k If salir = False Then ListBox4.AddItem ListBox2.List(ListBox2.ListIndex, 0) For j = 0 To .ColumnCount - 1 ListBox4.List(contador, j) = ListBox2.List(i, j) Next j contador = contador + 1 End If End If Next End With 'ponemos los totales TotalesListbox End Sub Este bucle ya lo había probado entes, pero no me funcionaba porque comparaba los item de los dos listbox pero sin poner delante "Val". Así que nunca los evaluaba como repetidos. For k = 0 To ListBox4.ListCount - 1 If Val(ListBox2.List(i, 0)) = Val(ListBox4.List(k, 0)) Then salir = True: Exit For Next k De todos modos agradezco a los que os habéis interesado. La solución la tengo gracias a investigar en el foro con otras preguntas parecidas a la mía y adaptando los códigos a mi necesidad. En especial en este tema: Evitar datos duplicados en ListBox en la segunda columna Moisés.
  7. Hola de nuevo. Sigo sin poder solucionar este problema. Si alguien me puede ayudar se lo agradezco. Lo que necesito es pasar los datos de un listbox a otro, previamente seleccionando un item y que no se repita en el listbox de destino. Es decir que si vuelvo a enviar un item que ya haya enviado que no me lo cargue en el segundo listbox. Envié un archivo de prueba y de verdad que necesito ayuda. Muchas gracias de antemano. Moisés.
  8. Hola, envío los archivos con muy pocos datos. https://drive.google.com/open?id=182M2xP2gSYQd7v5AerC3EU1-VYmJpFO6 Es un Excel y un Access. Una vez abrimos el Excel le hacemos click a "Checklist". Nos pedirá la ruta nueva de la base de datos, la del Access. En el combobox "OT" ponemos 12810159. En el combobox "PERIODO OT" ponemos 201901. A la derecha, arriba, le damos a "REPLICAR A OTRO PERIODO". Se abre otro formulario. Dentro del Listbox1, el de en medio, seleccionamos el primer item, ALQUILERES. En el Listbox2, el de la izquierda, seleccionamos cualquier item, o varios a la vez y luego hacemos click en COPIAR SELECCIÓN. Es aquí donde quiero que cuando los item "viajen" al Listbox4, el de abajo, no se repitan si vuelvo a hacer click. Hay más botones, pero no funcionan, están por desarrollar. Ya veis que es un poco lioso, por eso no había enviado el adjunto. Si podéis darme una idea de como hacerlo o ayudarme, os lo agradezco. Saludos, Moisés.
  9. @Antoni, perdona, tienes razón. No lo he subido porque me parecía un problema que no precisaba de ver el archivo completo, sino de una idea para ver que puedo hacer para verificar que no se repita los item de un Listbox a otro. Voy a ver como lo hago porque esto es parte de un fichero grande que además, hasta llegar al botón se ha de salvar otro formulario. Y para colmo es un Excel que toma los datos de un Acces. Lo dicho, perdona, a ver si doy como hacerlo y dejo la información lo más reducido posible. Moisés.
  10. Hola de nuevo a todos. Necesito si es posible ayuda con este asunto. He puesto el siguiente código en el evento click de un botón para copiar los datos seleccionados del Listbox2 al Listbox4, solo con los item seleccionados. El Listbox2 permito multiseleccionar. El problema que tengo es que no se como hacer para una vez copie los datos del Listbox2 al Listbox4 no me repita los que ya he copiado. Tampoco tengo claro que la forma en la que he puesto el código sea la más eficiente, es la que he hecho con los conocimientos que tengo y después de leer en el foro. Si es posible me ayudéis os lo agradezco, como de costumbre. Private Sub CommandButton3_Click() 'macro para copiar los datos seleccionado del listbox2 al listbox4 If ListBox2.ListIndex = -1 Then Exit Sub Dim i, j With ListBox2 For i = 0 To .ListCount - 1 If .Selected(i) = True Then ListBox4.AddItem ListBox2.List(ListBox2.ListIndex, 0) For j = 1 To .ColumnCount - 1 ListBox4.List(contador, j) = ListBox2.List(i, j) Next contador = contador + 1 End If Next End With End Sub He declarado esta variable como Pública. Public contador As String Y cada vez que cambio el Listbox1 aprovecho para vaciar la variable y limpiar el Listbox4 Private Sub ListBox1_Change() contador = 0 ListBox4.Clear End Sub Gracias por vuestra ayuda. Moisés.
  11. @Héctor Miguel , ya he encontrado la solución. He sustituido esta línea. If valorOnulo = "" Then valorOnulo = " null ": num = "" Por esta otra: If IsNull(valorOnulo) Then valorOnulo = " null ": num = "" De todos modos muchas gracias, sin tu ayuda no lo habría podido solucionar. Moisés.
  12. Hola de nuevo. Para simplicar el código y siguiendo tu consejo he modificado por With, pero poniendo el "me" delante a ver si así evito el error que me daba antes. With Me.ListBox1 For i = 0 To .ListCount - 1 valorOnulo = .List(i, 9): num = "'" ' se asume que .list(i, 9) tiene dato (se considera el apóstrofo) ' If valorOnulo = "" Then valorOnulo = " null ": num = "" ' si .list(i, 9) no tiene dato, cambian las variables ' Sql = "update Tb_Checklist set Importe='" & .List(i, 4) & "',Contable='" & .List(i, 7) & "',Previsto ='" & .List(i, 6) & _ "',En_Curso='" & .List(i, 8) & "',ID_Contable=" & num & valorOnulo & num & " where ID =" & .List(i, 0) Rst.Open Sql, Conn, 3, 3, 1 Next End With El error que me da sigue siendo el de "No coinciden los tipos", si el valor es nulo. Moisés.
  13. @Héctor Miguel, muchas gracias por responder. He probado y funciona SOLO si el campo no es nulo. En cuanto el campo está vacío me salta el error de "No coinciden los tipos" Te copio la macro integra como la tengo. Private Sub CommandButton4_Click() Dim i, valorOnulo, num As String 'macro para grabar los datos en tabla Checklist Conexión For i = 0 To ListBox1.ListCount - 1 valorOnulo = ListBox1.List(i, 9): num = "'" ' se asume que .list(i, 9) tiene dato (se considera el apóstrofo) ' If valorOnulo = "" Then valorOnulo = " null ": num = "" ' si .list(i, 9) no tiene dato, cambian las variables ' Sql = "update Tb_Checklist set Importe='" & ListBox1.List(i, 4) & "',Contable='" & ListBox1.List(i, 7) & "',Previsto ='" & ListBox1.List(i, 6) & _ "',En_Curso='" & ListBox1.List(i, 8) & "',ID_Contable=" & num & valorOnulo & num & " where ID =" & ListBox1.List(i, 0) Rst.Open Sql, Conn, 3, 3, 1 Next Conn.Close ListBox1.ListIndex = -1 'macro para grabar el Saldo_Pendiente en tabla Contable Conexión Sql = "UPDATE Contable SET Saldo_Pendiente='" & TextBox12.Value & "' WHERE ID_Contable =" & TextBox5 ' Rst.Open Sql, Conn, 3, 3, 1 Conn.Close Set Rst = Nothing: Set Conn = Nothing 'refrescamos el listbox1 desde este formulario With UserForm3 it = .ListBox1.ListIndex .ListBox1.ListIndex = -1 .ListBox1.ListIndex = it End With ' End Sub Por cierto, con el With Listbox1, En With...., me daba error. He probado primero quitándolo para ver que primero funcione la sentencia SQL y luego intentaré solucionar esto otro. Si me puedes echar una mano con esto te lo agradezco. Moisés.
  14. Hola a todos de nuevo. De nuevo con un problema con una consulta SQL desde Excel a Access. Pongo el código y explico. 'macro para grabar los datos en tabla Checklist Fin = ListBox1.ListCount For i = 0 To Fin - 1 xxx = ListBox1.List(i, 0) Conexión If IsNull(ListBox1.List(i, 9)) Then Sql = "UPDATE Tb_Checklist SET Importe='" & ListBox1.List(i, 4) & "',Contable='" & ListBox1.List(i, 7) & _ "', Previsto='" & ListBox1.List(i, 6) & "', En_Curso='" & ListBox1.List(i, 8) & _ "' WHERE ID =" & xxx Else Sql = "UPDATE Tb_Checklist SET Importe='" & ListBox1.List(i, 4) & "',Contable='" & ListBox1.List(i, 7) & _ "', Previsto='" & ListBox1.List(i, 6) & "', En_Curso='" & ListBox1.List(i, 8) & _ "', ID_Contable='" & ListBox1.List(i, 9) & "' WHERE ID =" & xxx End If Tengo un listbox en un formulario, donde voy modificando datos. En algunos casos he de dejar un campo vacío, o nulo. Es el datos que hay en el ListBox1.List(i, 9). Como me daba error he puesto un IF THEN que al final lo que hago es que si el valor de ListBox1.List(i, 9) es nulo no lo incluyo en el UPDATE. Pero lo que pasa es que si quiero actualizar el registro cuando el valor es nulo en el listbox a la tabla Tb_Checklist en el registro ID_Contable. No consigo hacerlo, y tampoco encuentro en Internet justo este problema. Agradezco si podéis ayudarme. Moisés.
  15. @bigpetroman, fantástico. Excelente idea. El código apenas tarda 2 segundos, ciertamente muy inferior al que había preparado. Muy agradecido. Moisés.
×
×
  • Create New...

Important Information

Privacy Policy