Jump to content

Héctor Miguel

Members
  • Content Count

    1,282
  • Joined

  • Last visited

  • Days Won

    54

Héctor Miguel last won the day on February 18

Héctor Miguel had the most liked content!

About Héctor Miguel

  • Rank
    Advanced Member
  • Birthday 10/25/1956

Converted

  • Campos
    ,

Recent Profile Visitors

2,883 profile views
  1. es forzoso que deba ser una macro con buscar objetivo ? si te basta con álgebra, analiza la fórmula de la columna C sueldo neto GS (ambos).xlsx
  2. el detalle en tu consulta es que usas un estilo de "adivinen lo que estoy pensando" (?) con respecto de tu adjunto... 1) el módulo "de clase" no contiene nada y en tanto no decidas para qué quieres que "sirva", puedes iniciar pesquisas analizando artículos como este (solo por mencionar alguno): - Introduction To Classes 2) en el evento '_click' del commandbutton de tu formulario (BTNBUSCAR) haces un "intento" de llamada a un procedimiento que NO existe: TraerNombre 3) ese "TraerNombre" es el nombre de un módulo de código, que es un "contenedor" de procedimientos, es decir... - un módulo puede contener varios procedimientos siempre y cuando... - a) ningún procedimiento se llame igual a otro (tampoco igual a ningún módulo de código) - b) cualquier procedimiento declarado en módulos normales puede ser asignado a objetos con solo indicar el nombre del procedimiento en una línea u usando el método: => Call nombre_del_procedimiento 4) en ese módulo (TraerNombre) parece que simulaste el traspaso del evento '_click' de un control indefinido de un userform (?) - aquí entrarían los módulos de clase, previa lectura del artículo sugerido (entre otros) - aunque haces referencia al control "TXTBUSCAR" (mismo que SI se encuentra en tu formulario), no es tan "simple" de referir sin calificar sugiero avanzar más lento (programación rutinaria en vba) y después avanzar a los módulos de clase (y mucho más) ?
  3. 1) los módulos "de clase" (por lo general) son para usos más "especiales" 2) en ninguno de los casos conviene nombrar igual módulos y procedimientos 3) vba reacciona no muy bien ante los nombres "ambiguos" (p.ej. nombres de procedimientos igual a funciones integradas) 4) puedes asignar cualquier macro a (casi) cualquier objeto (botones, textboxes, autoformas, etc.) - si son controles ActiveX dees usar su propio evento '_click' haz tus propias pruebas y decide cual es la forma que más te sirve (?)
  4. no parece que lo vayas a conseguir sin recurrir a otras tecnologías 🤔 los chicos de "Scripting Guys" suelen ser de "humor ligero", pero vale la pena analizar esto: - How Can I Determine the Local Path to a Shared Folder?
  5. como te decía donde también consultaste... el "problema" con este tipo de cálculos en TD es que ni siquiera por campos o elementos calculados resultan en lo que necesitas las TD no tienen una opción que permita "simular" (p.ej.) un SUMAPRODUCTO(... o similares, o sea... ninguna de las alternativas disponibles para calcular como "porciento de..." es apta para tu requerimiento (es decir) dado que las TD tienen la "preferencia" de primero resolver "por fila" y después por subtotal o total, la única solución (conocida hasta ahora) es agregar los cálculos en columna auxiliar en los datos de base y agregar ese campo en la TD (o sea, no te escapas de las "fórmulas externas") en tu adjunto (en devolución)... - los cálculos fueron agregados en la columna "D" de tu hoja "Base" - se amplió el rango de origen de la TD para incluir esa columna auxiliar - se agregó el campo en el área de "Valores" y se aplicó formato de % a una decimal (probablemente) algo se pueda abreviar si aprovechas otras herramientas ? - Power Pivot (DAX) -cuidado con agregar al modelo de datos- - Power Query (M) TD porciento de (ambos).xlsx
  6. mira por aquí: - Diferencia entre notas y comentarios encadenados
  7. lo mismo que te preguntaba "allá"... 1) para la Hoja2: - de A1 a A5 es "cada 4 filas" (se saltan 3) - para el resto es "cada 5 filas" (se saltan 4) - cual es la situación real ? 2) para NO hacerlo "de una por una"... - que contienen las celdas "a saltar" ? (están vacías ?, se pueden sobre-escribir ?, algún detalle ?)
  8. en los códigos que expones... 1) no alcancé a ver nada que indique una (RE)apertura del archivo - probablemente en instrucciones o procedimiento llamados posteriormente ? 2) en el segundo If del CommandButton1_Click tienes una instrucción: => End - lo que esto ocasiona es que: - a) se cancela TODO código en ejecución (por consiguiente) - b) si después hacías derivaciones a otros códigos (quizá preparaciones, protecciones, etc.) "adiós Nicanor" 3) si (realmente) buscas seguridad, algunos tips: - a) NUNCA muestres un MsgBox "informando"... NADA !!! - b) con eso le das la oportunidad al usuario de cancelar todo código en ejecución (al provocar errores) - c) cancela la posibilidad de que el usuario termine tu userform desde la [ X ] o pulsando {esc} lo demás... no quedó "a la vista" (?) saludos, hector.
  9. si eres de los que creen que "una imagen dice más que mil palabras"... te puedo asegurar que... hablando de excel, "un ejemplo en un libro de excel bien se merece más de mil imágenes" que te parece si expones el código que aplicas desde que se abre ese libro y como administras lo que se responda en tu formulario de bienvenida ? es más seguro que probable que NO tengas establecido ningún "control de errores" o cancelaciones (?) saludos, hector.
  10. hola, a todos ! otra posibilidad es agregar un comando "perdido" en la interfaz desde la versión xl-2007 +/- así: a) desde las opciones de configuración de excel, personalizar la QAT b) muestra de la opción -> comandos que no están en la cinta de opciones (o todos los comandos) c) localiza (por orden alfabético) el que dice: "enviar a destinatario de correo" - nota: al poner el puntero sobre este comando, aparece una descripción que al final dice: -> (SendCopySendToMailRecipient) <= así... entre paréntesis d) pulsa en el botón de: Agregar >> (a tu barra de herramientas de acceso rápido) al pulsarlo (desde la QAT) te dara la opción de enviar todo el libro como datos adjuntos o enviar la hoja actual (o el rango seleccionado) como cuerpo del mensaje OJO: deberás tener configurado cliente y cuenta de correo en windows (preferentemente outlook de office) también puedes hacer una macro que muestre el "sobre" para envóos por correo +/- con la siguiente instrucción: ActiveWorkbook.EnvelopeVisible = True saludos, hector.
  11. mira si te sirve adaptar algo de lo aplicado en el adjunto (es antiguo pero funcional), no usa macros, sólo funciones integradas (si es requisito usar macros... comentas ?) Autofiltros.xls
  12. es el comportamiento normal cuando a una UDF le asignas la propiedad "Applicaiton.Volatile" (es True por omisión) que determina si el resultado de la UDF se actualiza en cada (RE)calculo del modelo en todo caso, establece esa propiedad en False (Application.Volatile False) para que SOLO se refresque cuando se modifique alguno de los argumentos que intervienen en la función (?)
  13. no se la intención clara y total de tu udf, pero (al parecer) lo que necesitas es cambiar el tipo de datos asignado a la variable "Valor", que estableces como: Dim Valor As String solo déjala sin tipo definido (asume variant por omisión) si la declaras "a secas" como solo: Dim Valor
  14. solo graficas 80 datos porque solo indicas un rango de 1 fila x 80 columnas (valores Eje-Y) selecciona en el grafico alguna serie (p.ej. la #1) y veras en la barra de formulas algo así: =SERIES(Graphics!$A$34,'Events data'!$D$22:$CN$22,Graphics!$B$35:$CC$35,1) si quieres plotear los 88 datos disponibles, cambia la referencia de columnas (según tu ejemplo) a: de la hoja 'Events data' D:CN = 87 columnas => D:CM = 88 columnas de la hoja Graphics B:CC = 80 columnas => B:CK = 88 columnas
  15. si no has analizado la sugerencia de la conversación indicada, prueba adjuntando (en tu siguiente mensaje) una copia de TU modelo, puede ser recortada y hasta inventada, solo procura que sea "fiel" de la situación a resolver incluye algún ejemplo (resuelto a mano) y las consideraciones del caso
×
×
  • Create New...

Important Information

Privacy Policy


CTA Templates.png