Saltar al contenido

Héctor Miguel

Miembros
  • Contador de contenido

    1169
  • Unido

  • Última visita

  • Days Won

    42

Sobre Héctor Miguel

  • Rango
    Miembro

Configuraciones

  • Campo que utilizas como separador de argumentos Array

Visitantes recientes del perfil

2020 visitas de perfil
  1. cuando imprimas, elige la opción de "imprimir todo el libro"... si la hoja2 está (realmente) SIN datos, esa hoja no se imprime SIEMPRE Y CUANDO... - sus celdas estén (realmente) vacías - NO tenga configurada "área de impresión" ni "títulos a imprimir" - NO tenga celdas con formato (color, bordes, formatos condicionales, etc.) si excel "detecta" cualquier dato en las celdas o alguna de esas configuraciones, esa hoja "se imprime" OJO que una simple fórmula del tipo =si(x,y,"") ocasiona "datos en las celdas" saludos, hector. p.d. la segunda parte de tu consulta (imprimir SIN "desperdicio" de papel), es "otro cantar"
  2. (casi ?) todo parece complicado en tanto te familiarizas con ello, incluso pasarlo a pdf (que era tu intención NO hacerlo) puede presentar alguna diferencia (p.ej.) - si cuando conviertes a pdf configuras un tamaño de papel no disponible en el equipo donde se imprime ? - el usuario se verá obligado a "ajustar" (como hacer zoom en la configuración de la página) (creo que) vale la pena entender cualquier forma de automatizar ese tipo de diferencias entre impresoras (?) saludos, hector.
  3. sin saber (exactamente) que configuración "de salida" requieres ? y faltaría averiguar cual(es) característica(s) se ve(n) afectada(s) al cambiar de impresora (?) mira (y adapta) después de analizar este artículo (entre otros): - Avoiding VBA's lethargic approach to Page Setup saludos, hector.
  4. el detalle es que las aplicaciones (como excel) solo hacen uso de los recursos que les provee el sistema operativo (como la comunicación con las impresoras) y cada marca y modelo de impresora... - tiene sus propios controladores de comunicación - maneja su propia resolución, margenes y demás características - etc. como (posible) solución: una macro que (previo a la impresión) haga los ajustes necesarios ? - puede ser en la apertura del archivo - puede ser al activar "la hoja" que se imprime - puede ser en el evento '_beforeprint' en el modulo del ThisWorkbook - etc. saludos, hector
  5. no he descargado tu archivo de ejemplo, pero puedes analizar... - Base de datos de imágenes en Excel - BUSCARV con imágenes en Excel usando vba y macros saludos, hector.
  6. el error sucede en el equipo donde probaste con xl-2016 ?... o en el equipo con xl-2013 (?) tienes oportunidad de transcribir la(s) linea(s) en amarillo ? (o no te da acceso a las macros ?) una posibilidad es que (donde falla) NO este instalada y registrada la librería de las expresiones regulares (?) otra pudiera ser por conflictos (librerías perdidas o nombres ambiguos) en el ámbito del proyecto de macros (?) saludos, hector.
  7. separar nombres (u obtener iniciales) cuando intervienen nombres y apellidos "compuestos", usando solo funciones integradas, puede resultar en fórmulas "kilométricas" una alternativa es usar expresiones regulares por VBA (implica guardar el archivo como "habilitado para macros" [*.xlsm] o binario [*.xlsb] ) p.ej. abre el editor de VBA (atajo de teclado: Alt + F11) inserta un modulo de codigo estandar copia/pega (o escribe) lo siguiente: Function Iniciales(texto As String) As String: Dim cadena As String ' funcion personalizada para obtener las iniciales de un nombre ' _ descartando las conjunciones en nombres y apellidos compuestos ' _ R&D: Héctor Miguel Orozco Díaz (octubre de 2001) ' cadena = Replace(Replace(Replace(Replace(Replace(Replace(LCase(texto), _ " de las ", " "), " de los ", " "), " de la ", " "), " del ", " "), " de ", " "), " y ", " ") With CreateObject("vbscript.regexp") .Global = True: .IgnoreCase = False: .Pattern = "[^A-Z]" Iniciales = .Replace(Application.Proper(cadena), ""): End With End Function cierras el editor de VBA, regresas a tu libro y llamas a la funcion personalizada en la celda donde necesites el resultado (p..ej.) en [F3] =Iniciales(d3) saludos, hector.
  8. la lógica de excel es matemática, la lógica del homo sapiens... (puede ser sesgada ?) para excel, 1 va (siempre) antes que 2 (independientemente de cuantos dígitos tenga el texto) agrega una columna con la función =largo(a1) ordena el rango primero por largo > menor a mayor segundo criterio (datos) > A a Z saludos, hector.
  9. según se aprecia, los datos del listbox1 deben ser tratados como números (?), prueba de esta forma: 1) agrega dos variables a tu procedimiento (asumo que lo acostumbras) dim valorOnulo, num as string 2) llama a tu procedimiento de conexión donde te sea más conveniente (yo lo he omitido) 3) usa unas instrucciones +/- como las siguientes: with 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) next end with saludos, hector.
  10. un primer dato es que el primer argumento para sumar.si(... no necesita ser de más de una columna (donde hacer la comparación), puedes cambiar de "!a:b" a solo "!a:a" segundo dato: procura NO hacer referencias a columnas "completas" (es más de un millón de filas a evaluar por cada (RE)calculo), considerando que son operaciones 3-d, usa un rango fijo para todas las comparaciones (quizá un poco "excedido", pero no mucho) tercer dato: la información de tu adjunto no es suficiente como para evaluar alguna (posible) causa de lentitud en los cálculos (o bloqueo), fuera de algún comentario previo, es posible que se deba a otras eventualidades (?) saludos, hector.
  11. si vas a terminar moviendo todos los archivos de una carpeta a otra... cual es la necesidad de moverlos de 10 en 10 ? por que no moverlos todos en un solo paso ? planeas hacer "algo" en cada mover-parcial ? si te animas por moverlos todos... considera usar al (viejo ?) d.o.s. con el comando interno 'move' puedes mover archivos, carpetas completas, renombrar, etc. saludos, hector.
  12. a ver, va de nuez, porque estas leyendo rápido (pero... sin la atención requerida)... los apóstrofos en las fórmulas son necesarios cuando en el nombre del origen existen espacios o son solo números, entonces, como NO puedes usar campos con nombres iguales en una TD... en el caso del campo calculado basado en la columna de "innings" de la tabla de datos de origen (columna T)... - en TU modelo, el titulo es "IN.L" (simple y llanamente, SIN espacio) - en MI modelo, el título es "IN.L " (incluyendo un espacio al final, que ya lo había comentado) al pasar a la TD ese campo (usando la función suma pero ELIMINANDO el prefijo "suma de "...) - en TU modelo, el título es " IN.L" (tienes que conservar UN espacio inicial, situación al contrario de los datos de origen) - en MI modelo, el título es "IN.L" (simple y llanamente, SIN espacio, situación a la inversa de los datos de origen) al "pasar" los campos (de origen) a la fórmula para el campo calculado... - en TU modelo NO son necesarios los apóstrofos (NO hay espacios en el título en los datos de origen) - en MI modelo SI son necesarios los apóstrofos (hay espacios en el título en los datos de origen) dudas ? saludos, hector.
  13. suponiendo que "la celda" fuese "A1"... validación de datos > configuración personalizada > formula: =igual(a1,"X") mensaje de entrada > como prefieras y gustes mensaje de error > estilo: detener > titulo: Caracter No válido > mensaje: Solo se permite ingresar "X" mayúscula saludos, hector.
  14. 1) la segmentación de datos es un objeto que "se cuece aparte", determinar que elemento(s) ha(n) sido seleccionado(s) requiere agregar el origen al "modelo de datos", lo que puede ocasionar que tu archivo sufra un crecimiento desmesurado (entre 8, 30, 50 veces o más) según el volumen de información de (posible) aprovechamiento, además de funciones "de cubo" o macros 2) los apóstrofos en la fórmula del campo calculado obedecen a los nombres (títulos) de los datos de origen y los nombres (modificados) a las funciones de resumen a la TD: a) a los datos de origen les agregué un espacio al final b) esto ocasiona que a su referencia en la TD se delimiten por los apóstrofos 3) la fórmula del campo calculado requirió de una calibración por huecos en la aritmética de punto flotante agregando un redondeo saludos, hector. pitching_2 (ayudaExcel).xlsx
  15. si vas a utilizar el evento '_change' necesitas tomar en consideración eventualidades como... tu código monitorea un rango de 99 celdas: "A2:K10" al código NO le estás "diciendo" (claramente) que quieres monitorear cambios (según parece) solo a cada DOS celdas si no siempre requieres acumular cada dos celdas modificadas, convendría agregar un "contador" (para descartar acumulaciones previas) si cambias dos veces una misma celda, se debe considerar que ocurrieron los dos cambios que esperabas ? (que cifra se debe acumular ?) si se modifican/cambian dos (o más) celdas al mismo tiempo, el "Target" corresponde a TODAS las celdas modificadas en esta eventualidad, ese "+ Target" te va a ocasionar errores en tiempo de ejecución (a menos que hagas una "suma" del "Target") si se modifican dos (o más) celdas a la misma vez, pudiera ser que NO TODAS formen parte del "Intersect" (pero SI del "Target") hay más, pero no quiero abusar de tu paciencia, así que... si comentas con mayor claridad (y 3 o 4 ejemplos) "que es" (exactamente) lo que necesitas controlar (???) saludos, hector.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.