Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation since 11/18/2009 in all areas

  1. 8 points
    Antoni

    Albun de imagenes

    Aquí os dejo el Visor de Imágenes. Cada hoja es un álbum, en cada álbum se admite cualquier número de imágenes. Las imágenes pueden estar en cualquier carpeta/subcarpeta, basta con poner la ruta completa. Al abrir el adjunto, pulsar sobre la imagen de la cámara en la hoja Inicio, se abrirá un formulario, seleccionar un ÁLBUM y pasar el mouse por encima de las mini-imagenes para agrandarlas. Ahora estoy con otro formulario para crear los álbumes. Visor de imágenes
  2. 7 points
    Antoni

    Calendario Sin ActiveX

    Version 1.0.0

    145 downloads

    Es otro calendario mas a base de autoformas. Hay código en los módulos Calendario y Thisworkbook. Doble click en cualquier fecha o en una celda en blanco. No tiene misterio.
  3. 7 points

    Version 3.0.0

    659 downloads

    Este es un aporte que había compartido en el foro de ideas y aportes por allá del 2014, se trata de una macro que puede crear un formulario para ingreso y modificación de datos sin necesidad de que el usuario escriba códigos. Lo subo de nuevo aquí ya que por lo que veo en el foro de ideas y aportes el archivo dejo de existir, dejo el link del post original ya que en el se encuentran mas detalladas las instrucciones y un video de como utilizar el aporte. POST ORIGINAL El mismo es un archivo .Bas y debe importar desde la ventana de VBA para después ejecutar la macro "MakeForm" que es la que crea el formulario. IMPORTANTE: Se debe tener habilitada la opción "Confiar en el acceso al modelo de objetos de proyectos VBA", ya que el formulario se crea en tiempo de ejecución.
  4. 7 points

    Version 1.0.0

    193 downloads

    Se trata, se puede decir la evolución de este aporte Chat en red local desde excel, con la diferencia de que en lugar de utilizar textbox para mostrar los mensajes utilizo únicamente un control WebBrowser, lo que da mayor personalización. En el rar nos encontramos con un archivo excel y uno de access, el access debemos copiarlo a una ruta compartida en una red local, se debe modificar la ruta del mudulo1 del archivo excel(por defecto utiliza la misma donde se ubica el archivo excel). Podemos: *Cambiar el nombre de Usuario a mostrar en el chat. *Cambiar la imagen del Usuario, incluso utilizar gifs para la misma. *Compartir imágenes locales o de direcciones de internet. *Cambiar el color de las letras. *Crear salas privadas o publicas. Espero que les guste y cualquier recomendación es bien recibida. Salu2 Chat Excel.rar
  5. 6 points
    ¡Hola, a todos! Explicaré el por qué el uso de la fórmula con un ejemplo más pequeño. Al entenderse, puede ser extrapolable a un conjunto de caracteres un poco más grande (hasta 15 dígitos, límite numérico de Excel). Una cosa importante a tener en cuenta es que, en mi sistema, mi separador decimal es la coma ( , ) ; mi separador de argumentos es el punto y coma ( ; ), y mi separador de constante matricial de filas también es el punto y coma ( ; ). Esta es la fórmula completa, la cual separo por colores para entender un poco su razón de ser cuando se desmenuce, por partes: = ENTERO(VNA(-0,9;;SI.ERROR(EXTRAE(A2;LARGO(A2)-FILA(A$1:INDICE($A:$A;LARGO(A2)))+1;1)%;"")))&"" La idea inicial es formar los números adecuados para que la función VNA haga el trabajo importante: armar el conglomerado numérico. Estos números deben cumplir con dos condiciones: Armarse de forma invertida en su conglomerado. Estar divididos por 100. ¿La razón? se explicará cuando se vea la parte de VNA. Para el ejemplo explicado, tendremos el texto en la celda A2, y este será: 1X43YZ2 Hay que saber que la tecla F9, lo que hace es evaluar una fórmula o una referencia dentro de una fórmula en Excel. Si se seleccionan partes de la fórmula, y se presiona F9, se observarán todas las constantes matrices y/o resultados que se evidenciarán en la explicación que haré a continuación. Vale la pena aclarar que se debe seleccionar de forma correcta cada parte (número de paréntesis correcto, sobre todo), puesto que si no la evaluación generará un error. Empezando de adentro hacia afuera, empezamos por la parte azul: = FILA(A$1:INDICE($A:$A;LARGO(A2))) Esta parte genera una constante matricial de filas. Cabe notar que este tipo de matrices suele construirse con la combinación de FILA(INDIRECTO(...)), o también con FILA(DESREF(...)) pero, por la volatilidad de INDIRECTO y DESREF, prefiero evitarlas. = FILA(A$1:INDICE($A:$A;LARGO(A2))) = {1;2;3;4;5;6;7} Necesitamos invertir esta matriz en su orden. Para hacerlo, lo combinamos con la función LARGO y sumamos 1: = LARGO(A2)-FILA(A$1:INDICE($A:$A;LARGO(A2)))+1 = 7 - {1;2;3;4;5;6;7} + 1 = {6;5;4;3;2;1;0} + 1 = {7;6;5;4;3;2;1} Ahora, realizamos la extracción de cada caracter del texto, y para eso, usamos la función EXTRAE: = EXTRAE(A2;LARGO(A2)-FILA(A$1:INDICE($A:$A;LARGO(A2)))+1;1) = EXTRAE(A2;{7;6;5;4;3;2;1};1) = {"2";"Z";"Y";"3";"4";"X";"1"} Seguido a esto, como necesitamos que cada número quede dividido por 100, lo que podemos hacer es usar el símbolo %, el cual se puede también interpretar como un operador, el cual, lo que hace es dividir por 100. Hay que entender algunas cosas aquí: La matriz anterior está comprendida por textos, puesto que cada elemento está entre comillas Cualquier operación matemática realizada a un texto: Si es un texto numérico, lo convierte en número; mientras que si es un texto, genera un error #¡VALOR!. Usando entonces el operador %: = EXTRAE(A2;LARGO(A2)-FILA(A$1:INDICE($A:$A;LARGO(A2)))+1;1)% = EXTRAE(A2;{7;6;5;4;3;2;1};1)% = {"2";"Z";"Y";"3";"4";"X";"1"}% = {0,02;#¡VALOR!;#¡VALOR!;0,03;0,04;#¡VALOR!;0,01} Envolviendo esta matriz con la función SI.ERROR, nos encargamos que esos errores #¡VALOR! se conviertan en cadenas de texto vacías. = SI.ERROR(EXTRAE(A2;LARGO(A2)-FILA(A$1:INDICE($A:$A;LARGO(A2)))+1;1)%;"") = SI.ERROR({0,02;#¡VALOR!;#¡VALOR!;0,03;0,04;#¡VALOR!;0,01};"") = {0,02;"";"";0,03;0,04;"";0,01} Ahora bien, viene la parte de VNA, el cual es el que hace la magia: Esta es una función financiera, y aunque lo que vamos a hacer no tiene que ver con finanzas, con un artilugio hace lo que necesitamos: Unir solo los números de una cadena de texto. La función VNA (Valor Neto Actual o Valor Neto Presente), tiene como fórmula de ejecución la siguiente: Siendo: vi = Cada valor a operar t = tasa de interés i = período evaluado n = cantidad de valores a sumar Sintaxis de la función VNA: =VNA(tasa;valor1;[valor2];...) En nuestra función: = VNA(-0,9;;SI.ERROR(EXTRAE(A2;LARGO(A2)-FILA(A$1:INDICE($A:$A;LARGO(A2)))+1;1)%;"")) la tasa es -0,9. Este valor ha sido escogido estratégicamente para nuestro propósito. el valor 1 es 0 (el hecho de dejar un argumento vacío de esta forma, es lo mismo que si hubiese un cero ahí). Para verlo mejor, comento que: Esto: = VNA(-0,9;;SI.ERROR(EXTRAE(A2;LARGO(A2)-FILA(A$1:INDICE($A:$A;LARGO(A2)))+1;1)%;"")) Es igual a esto: = VNA(-0,9;0;SI.ERROR(EXTRAE(A2;LARGO(A2)-FILA(A$1:INDICE($A:$A;LARGO(A2)))+1;1)%;"")) ¿Por qué dejar el 0 en el primer valor? esto es para que los cálculos inicien desde el segundo valor, es decir, que la i inicialmente valga 2. Esto hará que el primer número sea entero, y los demás múltiplos de 10 al elevar la potencia. el valor 2 se compone de la constante matricial armada, la cual fue: = {0,02;"";"";0,03;0,04;"";0,01} Ahora bien, una cosa a tener en cuenta es que la función VNA ignora los textos, solo trabaja con los números que encuentre. Por lo que de ahora en adelante, podemos tener en cuenta nuestra constante matricial como: = {0,02;0,03;0,04;0,01} Entonces, siguiendo la fórmula previamente enseñada, tenemos que: Que es el valor requerido. ¿Por qué usar la función Entero? = ENTERO(VNA(-0,9;;SI.ERROR(EXTRAE(A2;LARGO(A2)-FILA(A$1:INDICE($A:$A;LARGO(A2)))+1;1)%;""))) En ocasiones, cuando se hacen operaciones con bastantes números, aparece lo que se llama en Excel la aritmética de punto flotante, la cual puede generar resultados no deseados. Si se quiere profundizar sobre el tema, ver el siguiente link: https://support.microsoft.com/es-co/help/78113/floating-point-arithmetic-may-give-inaccurate-results-in-excel ¿Por qué concatenar una cadena de texto vacía al final? = ENTERO(VNA(-0,9;;SI.ERROR(EXTRAE(A2;LARGO(A2)-FILA(A$1:INDICE($A:$A;LARGO(A2)))+1;1)%;"")))&"" Esto se hace para evitar que Excel convierta el resultado en notación científica de forma automática cuando se realiza la fórmula. Finalmente, hay que tener en cuenta que la fórmula es matricial CSE, por lo que se debe introducir con la combinación de teclas Ctrl + Shift + Enter, en vez de Enter o Ctrl + Enter. Espero esta laaaaarga explicación ayude a los amantes de las fórmulas (como yo) a entender varios conceptos "formulianos" interesantes para diversos problemas. ¡Bendiciones a todos!
  6. 6 points
    avalencia

    Proteccion vb

    Me siento un pirata Abraham Valencia
  7. 6 points

    Version 1.0.0

    111 downloads

    No tiene mas misterio de lo que explica el título. Abrir el archivo, pulsar sobre la flecha azul y ver lo que ocurre en la barra de estado. La idea no se me ha ocurrido a mi, pero me hubiera gustado.
  8. 5 points
    Supongo que falta afinar alguna cosilla, pero en conjunto, resulta. Este ha sido mi post Nº 10.000 🙂 AYUDAEXCEL ENVIO DE PEDIDOS POP.xlsm
  9. 5 points
    Lo prometido es deuda: https://abrahamexcel.blogspot.com/2019/06/conectar-excel-con-excel-online-en.html Espero sea útil Abraham Valencia
  10. 5 points
    Haplox

    Estara "Malito" Haplox!!!???

    Me abrumáis . Sigo bien y por aquí (a ratos). Me he embarcado en algún nuevo proyecto a la vez que la carga en el curro ha subido, así que... O hay cerveza, o... En serio, gracias a todos. Lo único es que últimamente entro cuando puedo, y es poco para mi gusto
  11. 5 points
    Silvia

    Quiero sus puntos de vista.

    Bueno, ¿y si abres la botella de champagne, vas a invitarnos o no?, de eso depende la respuesta que te de. ________________________ (Imagino que hay sentimientos contradictorios, por un lado estás feliz y por otro..cuando piensas en todo el tiempo que invertiste... , solamente que en ese tiempo también aprendiste, así que vuelve a sentirte feliz .. , quien sabe y ahora empiezas con otro proyecto sobre el nuevo sistema. Además de seguro los resultados de tu proyectos los seguirán utilizando para comparar los resultados.. , por ejemplo en mi empresa, cambiaron de sistema contable desde Enero de este año, y yo usaba un Control de Activos Fijos en Excel que ahora lo uso solo para decirle al de sistemas que LOS RESULTADOS ESTAN MAL.. que corrija el sistema y bueno, como suele pasar, corrigen una cosa y se malogran otra.. , asi que..... rsrrsrss ) Saludos a todos. Silvia
  12. 5 points

    Version 1.0.0

    68 downloads

    Qué tal, A partir de una duda de un usuario, surge este archivo mejorado para la busqueda y apertura de ficheros Microsoft Office (Excel, Word y PowerPoint) y ficheros PDF. Entre otras tiene las siguiente características: Permite buscar solo en un directorio raiz, o en todo sus subdirectorios Permite buscar un fichero entre el listado de todos Permite filtrar por tipos de ficheros Permite volver a mostrar de nuevo todos los ficheros tras un filtro Espero que os sirva y os guste. Espero vuestras opiniones
  13. 5 points
    Haplox

    Aniversario

    Felicidades @Snake . Todos seguimos aprendiendo
  14. 5 points

    Version 1.2.0

    89 downloads

    Qué tal, Después de mucho preguntar en el foro y búsquedas en internet, dejo este buscador de ficheros excel: - El directorio de búsqueda por defecto está en el código y por defecto es "C:\". Si no se necesita otro directorio, se introduce directamente el nombre a buscar - Permite buscar en los subdirectorios del directorio principal seleccionado, si se necesita la búsqueda en otro directorio - Las búsquedas de ficheros se hace mediante comodines, por lo que solo es necesario introducir parte del nombre a buscar - Permite la visualización previa de el área de impresión del archivo seleccionado - Permite imprimir el área de impresión del fichero seleccionado - Permite abrir los ficheros seleccionados para su modificación - Los datos usados se copian en la Hoja1 del fichero subido. El color de la fuente está en blanco para no molestar (cambiar para ver los datos y la fórmula usada para el nombre del fichero Agradecimientos y Créditos: - A la página de Stephen Bullen por la función PastePicture (PastePicture) - La página de EXCELTOTAL por la fórmula para extraer el nombre del último directorio (EXCELTOTAL) - Al usuario Macro Antonio por su buscador de ficheros (Abrir Archivos) - A todos los usuarios que han contestado ayudándome en los post que he ido repartiendo por el foro - A todas las páginas que he visitado y de las que no me acuerdo... Si se ven reflejados en el archivo dense por agradecidos. Bueno, espero que les sirva. Saludos, Haplox
  15. 5 points

    Version 1.0.0

    141 downloads

    VBA Resource File Editor es una Herramienta para añadir recursos a nuestros documentos de Office, vale decir que no necesitamos acompañar una carpeta con el contenido sino más bien podremos incluir el contenido dentro del mismo documento. Vale aclarar este contenido es sólo de lectura ya que cualquier cambio no se guarda dentro del documento cuando utilicemos las macros. Ahora bien un poco de explicación de cómo funciona todo esto, los archivos de office tanto Excel como Word o Power Point no son otra cosa que Archivos.Zip que contienen documentos .xml y otro tipos de archivos, si uno inserta cualquier archivo dentro de este zip y lo registra en el xml correspondiente, Office lo conserva cada vez que el documento es modificado, así que mediante vba haciendo un par de piruetas podemos leer este contenido en tiempo de ejecución (todo esto es un tanto parecido a cómo se generan las cintas de ribbon personalizadas). Espero que les sea de utilidad, dentro de la descarga encontrarán VBA Resource File Editor.xlsm con la ayuda y tres ejemplos.
  16. 5 points

    Version 1.0.0

    97 downloads

    Útil para tratar muchos controles del mismo tipo con un único evento.
  17. 4 points
    itzy alonso

    modo tactil

    Version 1.0.0

    47 downloads

  18. 4 points
    Antoni

    NÚMERO A LETRAS

    Con el tiempo que llevas por aquí ya deberías ser capaz de hacer una modificación tan simple como esta. UDF-Cifras a letras (1).xls
  19. 4 points
    Hola Has cometido varios errores que conllevan a que los archivos sean lentos y/o muy grandes. En tu caso es lo primero y se debe a: - Tienes miles de fórmulas en celdas en donde en realidad NO esperas un resultado inmediato. Esa es una mala costumbre. En realidad lo ideal es aplicar fórmulas solo en donde realmente se están llevando a cabo operaciones y no en celdas vacías en donde "a futuro" se espera escribir algo. Ah, ojo, incluso en aquellas celdas en donde una fórmula ya obtuvo su resultado y dicho resultado no va a cambiar, pues lo ideal es copiar y pegarla como valor. ¿Qué hacer? Elimina esas miles de fórmulas. - Tienes miles de celdas en donde has aplicado diversos formatos a pesar de que están vacías ¿qué hacer? Elimina esas filas y columnas en blanco en las cuales has aplicado formatos. Eso. Abraham Valencia
  20. 4 points
    Antoni

    Efecto Botones en formulario

    A grandes males, grandes remedios, una de las soluciones consite en poner un label transparente que ocupe todo el formulario, eso si, tendrás que detectar los click de los botones por la posición del cursor al hacer click sobre el label. Te dejo un ejemplo con el botón Salir (Image6) solucionado. He quitado el fondo del formulario para poder subir el archivo. Menú.xlsm
  21. 4 points
    Hola Hay varios controles ActiveX (y otros) que son "heredados" del "viejo" VB 6.0 y que no son compatibles con los Office de 64 bits y no hay forma de cambiar eso y justamente entre ellos está el DtPicker (y no es el único). En general la recomendación es siempre usar controles compatibles con los Office de 32 o 64 bits y con toda versión de Office. Abraham Valencia
  22. 4 points
    Sería así: ActiveSheet.Name = Range("C2") Saludos,
  23. 4 points
    Antoni

    Calendario minimalista

    Version 1.0.0

    22 downloads

    Es un calendario al uso, sin misterios. Ya sabeis de mi debilidad por los calendarios, en este caso la gracia está en el código VBA. Os recomiendo que lo reviseis y os dareis cuenta que se puede hacer click en un label sin evento individual y sin módulo de clase. Calendario mínimo.xlsm
  24. 4 points
    Gracias a todos por preocuparse a mi solicitud y a sus comentarios pero Antoni tiene toda la razón los domingos no trabajamos y esa era mi preocupación por si el 31 cae en domingo, mañana se activará la instrucción proporcionada por Leopoldo y para el próximo año aplicare la recomendación de Ikanni claro antes la probaré para estudiar su funcionalidad. Antes de despedirme les deseo lo mejor para este año 2019 a todos los del foro en especial a Leopoldo Blancas, Antoni, Gerson Pineda que sin sus apoyos y observaciones (regaños jajaja) no fuese posible ir aprendiendo. Feliz año. Gracias
  25. 4 points
    Antoni

    Albun de imagenes

    No cerreis el tema, estoy trabajando en un visor de imágenes. Ya avisaré.
  26. 4 points
    También se puede resolver sin acudir a una gota de VBA Saludos Contar vocales y consonantes_GP.rar
  27. 4 points
    la esperanza se mantiene por siempre, y el ejemplo... (veo que hay mucha tela de donde cortar acerca de las "lenguas muertas", así que...) te lo dejo por 72 horas saludos, hector.
  28. 4 points
    Antoni

    Cambio de color al recibir un enfoque

    Solo es posible con un módulo de clase. TextBoxes con módulo de clase.xlsm
  29. 4 points
    Error mio, me he olvidado de calificar un rango, mis disculpas. Sub HojasPorCategoría() Application.ScreenUpdating = False Set dmi = Sheets("DMI") For x = 2 To dmi.UsedRange.Rows.Count If dmi.Rows(x).Hidden = False Then '<---------------------------------------- If Existe(dmi.Range("F" & x).Value) = False Then Sheets.Add.Name = dmi.Range("F" & x).Value dmi.Rows(1).Copy ActiveSheet.Paste End If With Sheets(dmi.Range("F" & x).Value) dmi.Rows(x).Copy .Rows(.Range("A" & Rows.Count).End(xlUp).Row + 1) End With End If Next End Sub '------------------------------------------------- Private Function Existe(Hoja As String) As Boolean On Error GoTo ExitFunction Sheets(Hoja).Select Existe = True Exit Function ExitFunction: End Function
  30. 4 points
    Gerson Pineda

    Extraer valores masivos

    Naaaada que ver, es mi esposa
  31. 4 points
    Gerson Pineda

    Extraer valores masivos

    Parece que alguien no me contó la novela , a ver si te animas @Haplox o tu @Silvia
  32. 4 points
    Antoni

    Modificar un número

    A mi me gusta mas así: Range("A2") = Round(Range("A1") / 1000, 2)
  33. 4 points
    johnmpl

    Concatenar Rango bajo criterio

    ¡Hola de nuevo, @RandalHP! Para ocultar los valores que no tienen código en la columna A, apliqué formato condicional de la siguiente manera: 1. Selecciono el rango con las fórmulas de la columna C, asegurándome que quede activa la celda C1 (Importante) 2. Voy a la Ficha Inicio, Grupo Estilos, Opción Formato Condicional 3. Voy a Nueva Regla, luego a "Utilice una fórmula que determine las celdas para aplicar formato", y aplico la siguiente fórmula: =A1="" (si A1 está vacía, entonces aplique el formato). 4. Luego, hago clic en formato, voy a la Pestaña Número, Categoría Personalizado, y debajo de tipo escribo ;;; (tres puntos y coma). Este formato personalizado se aplica para que no se muestre nada en las celdas que seleccione). Como es en formato condicional, solo se aplicará a las celdas que cumplan con la condición establecida, la cual corresponde a las que corresponden en la misma fila con celdas vacías en la columna A. ¡Listo! ¡Bendiciones!
  34. 4 points
    José_Santos

    Enviar Whatsapp desde Excel

    Hola a todos, Algo de documentación que utilizan los desarrolladores profesionales para interactuar con REST API´s, en este caso para la de Whatsapp. https://www.waboxapp.com/assets/doc/waboxapp-API-v2.pdf Los pasos a seguir en la mayoría de los casos son: 1.- Autenticarse y obtener token de acceso para luego ser utilizado en las solicitudes http correspondientes. 2.- Enviar solicitud http correspondiente (incluyendo el método apropiado GET/POST/PUT/DELETE/PATCH) dependiendo si queremos leer mensajes, enviarlos, enviar foto, fichero, etc. En estas solicitudes debemos enviar el token de acceso obtenido en el punto anterior. 3.- Formatear la respuesta recibida para la solicitud del punto anterior. Normalmente se recibe en formato JSON. Normalmente para trabajar con REST API´s se utiliza JavaScrip, Python, etc... pero con VBA también se puede hacer obteniendo un resultado idéntico. Todo un mundo... el de las REST API´s!!!! YouTube, Facebook, Twitter, SalesForce, etc tienen su propia REST API´s que nos indica como debemos utilizarla para extraer información o mismamente subirla a la nube. Saludos.
  35. 4 points
    Antoni

    Fórmulas o macros

    Mas que una consulta, se trata de pensamiento filosófico existencial: ¿Debemos usar siempre que podamos fórmulas? A raiz de esta consulta en el foro de fórmulas, Extraer rangos numéricos me he puesto a pensar. La consultante plantea un problema que afecta a 50.000 filas. La solución de Silvia, brillante como siempre , suponen 100.000 fórmulas. Esta macro de algunas pocas líneas hace lo mismo. Sub BuscarIntervalos() Application.ScreenUpdating = False For x = 5 To Range("B" & Rows.Count).End(xlUp).Row Range("D" & x) = Range("B" & x) Range("E" & x) = "" x1 = x + 1 Do Until Range("B" & x1) <> Range("B" & x1 - 1) + 1 x1 = x1 + 1 Loop If Range("B" & x1 - 1) <> Range("B" & x) Then Range("E" & x) = Range("B" & x1 - 1) End If x = x1 - 1 Next End Sub Apunto esto como reflexión en una aburrida y angustiosa tarde de calor (40º), .......... a lo mejor es que se me han frito los sesos. Ya se, ya se, esto mejor en la Cafetería, a la próxima, ¿Vale?. .
  36. 4 points
    Haplox

    ELIMINAR REGISTRO ARRAY

    Ya me imaginaba yo...
  37. 4 points
    Antoni

    ELIMINAR REGISTRO ARRAY

    Pues como no podía ser de otra manera, yo lo veo diferente a como lo ve Haplox. Yo he partido de la base que el último registro de cada código ya tiene los datos acumulados, por lo que para establecer el ranking, he eliminado el resto de los registros de cada código. Revisa el adjunto. La hoja Hoja2 puede ocultarse, pero no eliminarse. Nota: He eliminado registros para que el archivo no pasara de los 100 Kb. MiArrayN Antoni.xlsm
  38. 4 points

    Version 1.0.0

    213 downloads

    Saludos a todos, comparto un login que hace poco diseñe para ustedes, espero les sea de gran ayuda, me despido un abrazo informático a todos. Nota: el libro corre con: y el macro de se desbloquea con:
  39. 4 points

    Version 2.0.0

    126 downloads

    La contraseña del proyecto VBA es "riddle" Hola, el día de hoy voy a compartir una alternativa al control dtpicker, que seria básicamente un calendario que se instala como complemento y puede ser utilizado en cualquier formulario VBA. Los pasos serian los siguientes: 1. Descargar el complemento, es preferible que lo guardes en la carpeta por defecto para complementos de excel la cual suele estar aqui: "C:\Users\NOMBRE USUARIO\AppData\Roaming\Microsoft\Complementos", o simplemente lo guardan donde deseen. 2.Instalamos el complemento Guía para instalar complementos 3.Vamos a abrir el archivo excel donde queremos que el calendario aparezca y nos dirigiremos a la Ventana de VBA (Alt + F11), iremos a Herramientas -> Referencias, y activaremos la que dice CalendarioRiddle. 4.El calendario esta listo para ser usado, solo debemos ligarlo a un textbox, para esto crearemos un botón junto al textbox y agregaremos el siguiente código el el evento click() del CommandButton: Private Sub CommandButton1_Click() CalendarioR TextBox1 End Sub Se debe colocar la palabra "CalendarioR" seguido del nombre del textbox que guardara la fecha. El calendario por defecto empieza la semana el día Domingo, podemos cambiar esto agregando un 2 como segunda variable para que empiece por el día Lunes: Private Sub CommandButton1_Click() CalendarioR TextBox1, 2 End Sub También es posible cambiar el color del calendario (por defecto es negro) agregando como tercera variable el color deseado, por ejemplo morado: Private Sub CommandButton1_Click() CalendarioR TextBox1, 2, &H400040 End Sub Quedaría así: Para cambiar de mes dan click sobre el mes actual y seleccionan el mes deseado, para volver al día actual click sobre la leyenda del día de hoy. Pueden salir del calendario con la tecla "ESC" del teclado. Saludos y espero que sea de utilidad.
  40. 4 points
    LeandroA

    MSO UI Editor

    Version 1.0.0

    38 downloads

    MSO UI Editor es una herramienta para personalizar la interfaz de usuario de Microsoft Office como ser la cinta Ribbon, Menu contextual entre otras, mediante el formato XML, es casi una copia del “Custom UI Editor For Microsoft Office” pero éste trae unas pequeñas mejoras. Esta programado en Visual Basic 6. Cuenta con un detector de errores en la formación del xml y utiliza .xsd que garantizan una mejor validación. También genera automáticamente los Callbacks para los eventos en VBA, otra opción extra es que se puede buscar y reemplazar en el xml. Me hubiera gustado poder armar algunos ejemplos pero me ganó el cansancio y opté por subir algunos que encontré en la web. Si desean leer mas sobre esta herramienta o conocer su codigo de fuente pueden acceder desde mi Blog donde estaré publicando nuevas versiones. http://leandroascierto.com/blog/mso-ui-editor/ Espero que alguien de aqui le pueda sacar provecho y subir algún trabajo que realicen.
  41. 4 points

    Version 1.0.0

    131 downloads

    Amigos en este nuevo aporte les traigo el archivo Copa FIFA Confederaciones Rusia 2017-Pronosticos que nos permitirá hacer el seguimiento al evento futbolístico más importante del año: Copa FIFA Confederaciones Rusia 2017; este puede ser usado de 2 maneras (en ambos casos el funcionamiento es el mismo): Simplemente como seguimiento de los juegos, donde vamos colocando los resultados de los juegos y vemos como va evolucionando la clasificación, se puede llevar el seguimiento hasta el juego final. Podemos usarlo para participar en una quiniela, hacemos nuestro pronóstico para todos los juegos, se le envía la quiniela a la persona encargada y esa persona con un archivo especial se encarga de llevar el control de todas las quinielas. Anexo está el archivo y la guía completa de uso, espero que les guste y disfruten del torneo siguiendolo con este archivo gracia
  42. 4 points

    Version 2.1

    101 downloads

    Amigos, saludos nuevamente.., ahora les traigo este Archivo/Programa que realice en Excel para hacer seguimiento a unos de los eventos futbolisticos mas importante del año: COPA AMERICA CENTENARIO - USA 2016; este puede ser usado de 2 maneras: Simplemente como seguimiento de los juegos, donde vamos colocando los resultados de los juegos y vemos como va evolucionando la clasificación, se puede llevar el seguimiento hasta el juego final. Podemos usarlo para participar en una quiniela, hacemos nuestro pronóstico para todos los juegos, se le envía la quiniela a la persona encargada y esa persona con un archivo especial se encarga de llevar el control de todas las quinielas. Como pueden ver, es un sistema completo para no perdernos nada de esta gran Copa América donde se celebra en CENTENARIO del torneo de selecciones mas viejo del mundo. La Copa se llevará a cabo como parte de un acuerdo entre la Conmebol y la Concacaf, como una edición especial de la Copa América (45.ª edición desde su creación en 1916), y contará con con 10 equipos de la Conmebol y 6 de la Concacaf. Para realizar este archivo, tome como base el archivo realizado para la edición pasada de la Copa America Chile 2015 [-] Copa américa chile 2015 - fixture / quiniela y el aporte para el Mundial de Futbol Brasil 2014: [-] Mundial brasil 2014 - fixture / quiniela Este archivo está realizado completamente con MACROS (VBA), (NO existe una sola formula directamente en el archivo), así que es estrictamente necesario activar las macros para que el archivo funcione correctamente Anexo encontraran el archivo en formato Excel 2003 y 2007 o mayores (es exactamente el mismo archivo en ambos casos) y una pequeña guía en PDF. Tambien pueden revisar el aporte en la siguiente dirección: WordPress: Quinielas en Excel Espero que sea de su agrado y lo disfruten.....
  43. 3 points
    Hola Si funciona y es efectivo, pero debes seleccionar la columna o el rango completo, de lo contrario sube una muestra del archivo Saludos
  44. 3 points
    ¡Hola, a ambos! Otra opción puede ser: =EXTRAE(A2;2;MIN(HALLAR({".";"/";" "};EXTRAE(A2;2;99)&"./ "))-1) Nota: Mi separador de argumentos es ";". Si no es el tuyo, cámbialo por "," o por el que maneje tu sistema. ¡Bendiciones!
  45. 3 points
    Hola Cestark No creas que entendí como tienes los datos, desde que mencionas que tienes una hoja por cada tipo de tela ... pues decirte que ya estás en problemas. Cuanto mas complicada tu base de Datos, mas complicada la formula, la manera de hacerlo, sin contar con que este tipo de procedimientos, podrían poner lento tu pc.. Deberías tener todos lo datos en una hoja, y organizados de tal manera que sea fácil encontrar los datos. Seguramente tendrás que repetir los codigos una y otra vez, para completar todos los tipos , anchos, largos.. etc.. Me refiero a mas o menos hacer esto... Tipo Tela - Código - Ancho Precio Black Out Azul 80652917009 40 12981 Black Out Azul 80652917009 60 15200 Black Out Azul 80652917009 80 17200 Black Out Azul 80652917010 40 16000 80652917010 80652917010 60 18000 Black Out Azul 80652917010 80 20000 y así.... en el documento a buscar, colocarías por ejemplo El código y el ancho, con fórmula se llenaría el resto de resultados. Código TipoTela Ancho Precio 80652917010 80652917010 40 16000 para encontrar los resultados en la formula se utilizaría las funciones Indice y Coincidir.. saludos, Silvia
  46. 3 points
    Antoni

    Macro para transponer datos Excel Vba

    Pues aquí dejo esto: Sub Transponer() Dim BASE, RESUMEN, Fila '--. Application.ScreenUpdating = False Set BASE = Sheets("BASE") Set RESUMEN = Sheets("RESUMEN") '-- Fila = 1 RESUMEN.Range("A2:E" & RESUMEN.Range("A" & Rows.Count).End(xlUp).Row + 1).ClearContents For x = 3 To BASE.Range("A" & Rows.Count).End(xlUp).Row For y = 5 To BASE.Cells(2, Columns.Count).End(xlToLeft).Column If BASE.Cells(x, y) <> "" Then Fila = Fila + 1 RESUMEN.Range("A" & Fila) = BASE.Range("B" & x) RESUMEN.Range("B" & Fila) = BASE.Range("C" & x) RESUMEN.Range("C" & Fila) = BASE.Range("D" & x) RESUMEN.Range("D" & Fila) = Replace(BASE.Cells(2, y), Chr(10), " ") RESUMEN.Range("E" & Fila) = BASE.Cells(x, y) End If Next Next End Sub Macro válida para cualquier número de alumnos y asignaturas.
  47. 3 points
    avalencia

    Estara "Malito" Haplox!!!???

    ¿No hay cerveza por salir en el ranking? Con razón @Haplox anda perdido :p Abraham Valencia
  48. 3 points
    ¡Hola, @Yeipi! Puedes usar por ejemplo, en F2, la siguiente fórmula: =BUSCAR(2;1/(Diario!G$3:G$24=A2);Diario!A$3:A$24) Nota: No te acostumbres a usar rangos de columna completa en tus fórmulas, por temas de rendimiento de archivo. Es mejor práctica utilizar tablas en vez de rangos en los datos base, para que el rango sea dinámico. ¡Bendiciones!
  49. 3 points
    Ahora voy a acabar de liarte. Las variables, en general, pueden ser de tres tipos: Públicas: Se definen al principio de cualquier módulo como Public y su valor permanece mientras no cierres el archivo o se produzca un error. Puedes usarlas en cualquier lugar. (macro/formulario, ....) Privadas a nivel de módulo: Se definen al principio del módulo y permanecen mientras se esté ejecutando cualquier macro/función del módulo. Privadas a nivel de procedimiento (Macro): Se definen dentro del procedimiento y permanecen solamente dentro del procedimiento. Los controles de formulario son objetos que solo permanecen mientras el formulario esté cargado, por lo que si ejecutas una macro antes de descargar el formulario (Unload), puedes referirte a cualquier control del formulario dentro de la macro, eso si calificando el objeto. Ejemplo, si tienes un formulario con el nombre MiForm y un textbox con el nombre TextBox1, en la macro puedes referirte al valor del control así: MiForm.TextBox1.Value . Los parámetros en una macro/función son posicionales, o sea, que el nombre de los parámetros es irrelevante. Vamos a un ejemplo de tu caso, quieres pasar el valor de 2 TextBox como parámetros a una macro, el primero contiene un valor numérico con el que quier hacer operaciones y el segundo, una descripción. En el formulario haríamos: MiMacro CDbl(Textbox1.Value), Textbox2.Value Y en un módulo: Sub MiMacro(Valor as Double, Descripción as String) ----------------------------------------------------------------------------------------------------------------------------------------------------------------- También podrías definir las variables como Public, modificar su contenido en el formulario y prescindir de los parámetros en la macro, así: En Un módulo: Public Valor as Double Public Descripción as String Sub MiMacro() En el formulario: Valor = CDbl(TextBox1.Value) Descripción = TextBox2 MiMacro ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Y para terminar, comentarte que me estoy ocupando de las validaciones a efectuar dentro del formulario. Hoy a última hora o mañana te comento algo. Nota: Esto es solo para que veas que yo también puedo enrollarme como una persiana.
  50. 3 points
    Hola a ambos: Dejo el adjunto con una fórmula que me encontré por ahí.. y que estoy tratando de entender exactamente como hace lo que hace.. jaja Saludos. SoloNumeros.xlsx


  • Newsletter

    Want to keep up to date with all our latest news and information?
    Sign Up
×
×
  • Create New...

Important Information

Privacy Policy