Jump to content

Antoni

Members
  • Content Count

    10,117
  • Joined

  • Last visited

  • Days Won

    548

Everything posted by Antoni

  1. Hola: Te adjunto lo que has pedido, supongo. He sustituido el textbox correspondiente al código, por un combobox, y en el he cargado todos los artículos para que los puedas escoger de la lista y no tengas que escribirlos. No obstante, funciona igual que un textbox, si quieres puedes entrar el código de forma manual, pero entondes para buscar los datos, deberás clickar en la imagen de la derecha (lupa). Salu2. Antoni. Copia de textbox.zip
  2. Hola: Ya había visto el adjunto, pero entendí que querías hacerlo de una forma distinta a la de ir averiguando la posición del cursor. Como ya te he comentado, que yo sepa, no es posible interactuar con la hoja salvo con los eventos disponibles para tal fin, y lamentablemente para ti, el evento MouseMove no está entre ellos. Salu2. Antoni.
  3. Hola amigo bético: Vamos a aclarar unos conceptos: Los eventos ligado al mouse (MousseMove, MouseUp y MouseDown) , son eventos comunes a todos los controles ActiveX no solo al control MSFlexGrid, que es un control como cualquier otro, TextBox, ComboBox, etc... Que yo sepa, no es posible activar ningún evento pasando el mouse por encima de las celdas. Ya existen unos eventos relacionados con celdas, Change y SelectionChange, eso si, hay que posicionarse en la celda. Utilizando las teclas de dirección en lugar del mouse puedes conseguir un efecto similar. Prueba este código, desplazándote con las teclas de dirección: Dim FILA, COLUMNA As Long Private Sub Worksheet_SelectionChange(ByVal Target As Range) On Error Resume Next Cells(FILA, COLUMNA).Interior.ColorIndex = xlNone ActiveCell.Interior.Color = vbBlue FILA = ActiveCell.Row COLUMNA = ActiveCell.Column End Sub [/CODE] Salu2. Antoni.
  4. Hola: Ahí va la versión III. Salu2. Antoni. Visualizador de archivos III.zip
  5. Para Verzulsan: Lo mas probable es que te falte una referencia. Abre el libro,y en el editor de Visual Basic, dime que referencias te aparecen. (Alt + F11\Herramientas\Referencias) Salu2. Antoni.
  6. Hola: Le he añadido unas mejoras. Salu2. Antoni. Visualizador de archivos II.zip
  7. Hola Gerson: Si soy el Antoni de Todo Excel, (no pude registrarme como Antoni, ya estaba ocupado), gracias por la bienvenida, no sabía de la existencia de Ayuda a Excel. Me gusta. Salu2. Antoni.
  8. Hola: Una de las gracias del encriptado consiste que ni siquiera el encriptador sea capaz de descifrar el mensaje sin el libro de claves. El libro de claves, debes generarlo tu para tener la seguridad de que nadie mas lo va a tener. Es una tontería por mi parte el hecho de decir que no subía el libro de claves porqué pesaba mucho. Lee con atención el mensaje original y verás que es muy sencillo generar un libro de claves. Salu2. Antoni.
  9. Hola verzulsan: Me parece que también voy a tener que pasarme a Excel 2007. Como parece que te interesa el tema de la encriptación, te adjunto un encriptador/descifrador de mensajes desarrollado por mi. Puede encriptar cualquier carácter, mayúsculas y minúsculas, acentuadas o no, números, caracteres especiales, espacios,...... Se adjuntan 2 libros en el zip: El libro de claves, se entrega vacio, porque pesa bastante (8Mb), por lo que lo primero es generarlo. Abrirlo, pulsar sobre "Top secret" y esperar un par de minutos, luego salvar el libro con el nombre que querais. Podeis generar tantos libros de claves como querais, ya que podreis elegir cualquiera de ellos en el momento de cifrar el mensaje. Cada libro de claves, tiene 9 claves, cada clave 256 códigos, y cada código 256 caracteres. Cada carácter, es un número hexadecimal entre 0 y 255. El código se asigna por el resto módulo 256 que corresponde a la posición en el texto. La clave es con un número aleatorio de 1 a 9 que corresponde a la hoja que contiene la clave. El nombre de las hojas que contienen cada una de las 9 claves, es un número de ocho cifras en la que cada cifra es un número aleatorio entre 0 y 9 que se asigna al generar el libro de claves. En el mensaje cifrado, las 8 primeras posiciones, corresponden a la clave usada para poder utilizarla luego en el descifrado. El otro libro de la entrega es el encriptador. Tiene 3 funciones: .Encriptar, solicitará el libro de claves (1ª vez) a utilizar y encriptará el mensaje de "A1" .Descifrar, solicitará el libro de claves (1ª vez) a utilizar y descifrará el mensaje de "A1" en "A2" .Activar cambio de claves, hace que la próxima vez que pulsemos Encriptar/Descifrar nos pida el fichero de claves a utilizar. Importante: El nombre del libro de claves no se guarda con el mensaje cifrado, por lo que debemos recordar con que libro de claves hemos cifrado el mensaje para poder luego descifrarlo. Salu2 a to2.....to2. Antoni. PD: ¡¡¡ Viva er Beti manque pierda !!! ENIGMA.zip
  10. Hola: Dando por supuesto que la contestación a todas mis afirmaciones van a ser que si, te paso la macro que lo hace. Recuerda adecuar los nombres de libros y hojas. Las filas con diferencias serán resaltadas en amarillo y las celdas en rojo y en negrita, en ambos libros. Dim A, B As Worksheet Sub CompararLibros() Workbooks.Open "C:\LibroA.xls"' Workbooks.Open "C:\LibroB.xls" Set A = Workbooks("LibroA.xls").Sheets("Hoja1") Set B = Workbooks("LibroB.xls").Sheets("Hoja1") For x = 1 To A.Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row For y = 1 To A.Cells.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column If A.Cells(x, y) <> B.Cells(x, y) Then A.Rows(x).Interior.Color = vbYellow A.Cells(x, y).Font.Color = vbRed A.Cells(x, y).Font.Bold = True B.Rows(x).Interior.Color = vbYellow B.Cells(x, y).Font.Color = vbRed B.Cells(x, y).Font.Bold = True End If Next y Next x Workbooks("LibroA.xls").Save Workbooks("LibroA.xls").Close Workbooks("LibroB.xls").Save Workbooks("LibroB.xls").Close End Sub [/CODE] Salu2. Antoni.
  11. Hola: Confírmame si es cierto lo siguiente: 1) Los dos libros solo tienen una hoja a analizar. 2) La hoja a analizar, en los dos libros, tienen el mismo número de filas. 3)Hay que comparar todas las celdas del rango una a una, y fila a fila, es decir, comparar la celda A1 de un libro con la celda A1 del otro libro, la B1 con la B1, la C1 con la C1,...... y así con todas la columnas y todas las filas. 4)Marcar las celdas y las filas con diferencias. Si no es así, aclara como se debe haces el emparejamiento para encontrar las diferencias. Salu2. Antoni.
  12. Yo también me alegro de saludarte. Salu2. Antoni.
  13. Hola: Aunque un poco tarde, ahí va un formulario que permite abrir archivos jpg, pdf, doc y xls de cualquier directorio. Seguramente tendrás que cambiar el camino del ejecutable que permite abrir los archivos pdf. Salu2. Antoni. Visualizador de archivos.zip
  14. Hola Jordi: Si no recuerdo mal "Kill" forma parte de un conjunto de instrucciones del Basic original de MSDOS, antes de la aparición de Windows. Es que soy muy antiguo, soy de antes de los PC's, de cuando los ordenadores ocupaban habitaciones enteras y su capacidad se medía en Kbytes. ja,ja,ja.... Salu2. Antoni.
  15. Hola: A ver si así lo ves mas claro. Salu2. Antoni. MINIMIZAR FORMULARIO.zip
  16. Hola: Para cada check: Private Sub CheckBox1_Click() If CheckBox1_Click = True Then Rows(ActiveCell.Row).Copy Sheets("SELECCION").Rows(5) Sheets("SELECCION").Rows(5).Insert Exit Sub End Sub [/CODE] Salu2. Antoni.
  17. Hola: Para visualizar un gráfico en un formulario, no se me ocurre otra forma que la de cargar la imagen del gráfico en un control Image. Supongo que la decisión de utilizar un formulario obedece a la necesidad de recoger información proporcionada por el usuario para la elaboración del gráfico. Dando por sentado este supuesto, una solución que se me ocurre es, mostrar el gráfico real, de esta forma al posicionarse sobre los puntos se verían los valores de los ejes, y minimizar el formulario en el momento de visualizar la hoja que contiene el gráfico. Espero haberte dado una idea valida para solucionar tu problema. Salu2. Antoni. PD. ¿ Existe algún control ActiveX que sirva para elaborar gráficos en un formulario ? Dejo la pregunta en el aire por si alguien lo sabe.
  18. Hola: La información en excel esta en celdas (eso ya lo sabes) y funciona como el juego de los barcos, es decir, para referirinos a una celda hemos de indicarle las coordenadas, supongamos que queremos cambiar una celda de la hoja activa basta con: Cells(Fila, Columna) = TextBox1[/CODE] Si queremos referirnos a una celda que está en otra hoja, hemos de decirle en que hoja está [CODE]Sheets("Reporte").Cells(Fila, Columna) = TextBox1[/CODE] Y si la celda está en una hoja de otro libro, primero abrimos el libro y le decimos que libro es [CODE]WorkBooks.Open "C:\OtroLibro.xls" WorkBooks("OtroLibro.xls").Sheets("Reporte").Cells(Fila, Columna) = TextBox1[/CODE] Y ya por último, una celda combinada es como una celda normal y se direcciona por la primera celda, si tenemos una celda combinada que va de la fila 1, columna 3 a la fila 5, columna 7, para pasarle un valor sería [CODE]Sheets("Reporte").Cells(1, 3) = TextBox1[/CODE] Salu2. Antoni.
  19. Hola IMA: Te adjunto un módulo con la macro que hace (creo) lo que pides. Debes importar el módulo en tu proyecto. Al final he añadido los registros inmediatamente después del primer registro de cada factura. Los registros añadidos se resaltan en verde para poder hacer comprobaciones, si quieres quitalo. Salu2. Antoni. Módulo_IMA.zip
  20. Hola: Para eliminar el archivo: Kill "X:\B.xls"[/CODE] Vale para cualquier archivo. En tu caso, el libro debe haberse cerrado previamente: [CODE]WorkBooks("B.xls").Close[/CODE] Salu2. Antoni.
  21. Hola: Te envío una nueva versión de la macro. La contraseña es PASSWORD. Salu2. Antoni. Copia(2) de MACRO TIEMPO.zip
  22. Modifica: Modificamos las celdas para sustituir 1 comilla simple por 2 comillas simples, de esta manera ADO interpreta que no se trata de un campo nuevo. 'Construimo sentencia INSERT For y = 1 To 40 H.Cells(x, y) = Replace(H.Cells(x, y), "'", "''") Next y [/CODE] Ponemos el indicador de salvado del fichero a verdadero para que no muestre el mensaje de ¿Quiere guardar los cambios? ocasionado por haber modificado las celdas que contienen comilla simple. [CODE] MsgBox "*** Se cancela la totalidad del traspaso ***", vbCritical, "Traspaso del libro " & L Workbooks(Fichero.Name).Saved = True 'Eliminamos mensaje de guardar <====== AÑADIDO Workbooks(Fichero.Name).Close 'Cerramos libro CONEXION.RollbackTrans 'Abortamos transacción CONEXION.Close 'Cerramos la conexión GoTo Siguiente End If Next x Workbooks(Fichero.Name).Saved = True 'Eliminamos mensaje de guardar <====== AÑADIDO Workbooks(Fichero.Name).Close 'Cerramos libro CONEXION.CommitTrans 'Guardamos cambios en la base de datos CONEXION.Close 'Cerramos la conexión End If Siguiente: [/CODE] Salu2. Antoni. PD. No puse el control de comilla simple desde el principio porqué en la base de datos que enviaste no había campos de texto.
  23. Hola: Se me olvidó, ¿Puedo suponer que la hoja "VENTAS" está ordenada por FACTURA, y si no lo está, puedo ordenarla, y si es así cual sería el criterio por el que ordenar después de FACTURA?, y ya que estamos ¿El campo PRODUCTO, se ha de partir en MATERIAL y CECO-SAP? ¿En los registros añadidos, IVA y TOTAL van a CERO?. Salu2. Antoni.
×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png