Saltar al contenido

Israel Cassales

Miembro
  • Contador de contenido

    1366
  • Unido

  • Última visita

  • Días con premio

    70
  • País

    México

Todo se publica por Israel Cassales

  1. Entiendo. Pues por aquí andamos, espero de verdad que logres el resultado que necesitas.
  2. @ManuelBE La recomendación del maestro @Abraham Valencia es importante para evitar ambigüedades y tratar de ayudarte de una manera específica, ya que con los argumentos de tu consulta al pasar a un Excel parecen ser sólo un par de columnas de datos y uno puede pensar que bastaría con una tabla dinámica o una agrupación de datos para llegar al resultado que buscas. Así que considerando eso, con lo único que puedo apoyarte al tema es con un ejemplo visual.
  3. No he visto videos de la función AGRUPAR() y hasta el momento dudo que exista como tal, es posible que en el video al que te refieres usen el término “AGRUPAR()” de manera "informal" para referirse a diferentes técnicas de agrupación de datos y no a una función específica. He visto algunos videos que muestran cómo agrupar datos utilizando el comando Subtotales o cómo agrupar datos por rangos utilizando la función FRECUENCIA(). Aunque es posible que algunos de esos videos estén utilizando VBA para crear funciones personalizadas que realizan tareas de agrupación. Y si ese es el caso no te servirían porque tu idea es no usar código precisamente por estar en la web. De cualquier forma en lo que se mantiene la consulta abierta es posible que algún Maestro o miembro del foro aporte algo adicional que te sirva.
  4. hOLA, Por la forma en la que sé usar la función UNIRCADENAS no sabría decirte como diseñarla para buscar en todas las columnas de una hoja sin tener que añadir cada columna individualmente. Pero el que yo no tenga el conocimiento no te garantiza que no se pueda totalmente. Sería que tu consulta la vea alguno de los Maestros si pasa por aquí. Por lo que entiendo eso que estás intentando hacer, de buscar en todas las columnas usando el UNIRCADENAS, según yo no es posible directamente, porqué no permite usar referencias de rango “comodín” o “globales” que se refieran a todas las columnas de una hoja. Sin embargo, podrías lograr algo similar utilizando VBA, Así que se podría escribir un código que recorra todas las columnas de la hoja y realice la búsqueda que deseas. Te recomiendo compartir tu libro de ejemplo en la sección de macros y ser lo más detallado posible
  5. Hola, Bienvenido seas al foro de ayuda de Excel. Sin libro de ejemplo es un poco complicado darte opciones con mayor detalle, así que podré ayudarte sólo con lo siguiente: Para discernir entre cantidades positivas y negativas GASTOS y ENTRADAS: Puedes usar la función SI para verificar si el primer carácter de la celda es un signo de "-$" . Si es así, entonces la cantidad es un gasto negativo; de lo contrario, es una entrada positivo. =SI(EXTRAE(A1,1,3)="-$ ", "GASTO", "ENTRADA") Recuerda cambiar la , por ; Para manejar las fechas, puedes usar la función FECHANUMERO para convertir las fechas de texto en un formato de fecha que se pueda entender y sumar. =FECHANUMERO(EXTRAE(A1,1,10)) Igual, cambiar la , por ; Algo así podría ayudarte a resolver lo que estás intentando hacer. Ahora, que si agregas el libro de ejemplo, es posible que recibas ayuda más específica.
  6. Hi, La idea del SI.ERROR es buena, aunque leyendo tu fórmula parece que el BUSCARV es el que devuelve el 0, entonces al no ser un error por eso no te devuelve el "nada". Considerando que no te interesa ese 0 para futuras operaciones y deseas mantener el "", entonces una opción es usar una validación lógica que verifique el resultado de ese BUSCARV . =SI(BUSCARV($C4&$AV4,INDIRECTO("'"&$IL$2 & "[" & $IM$2 & "]" &$AW$2&"'!"&$IT$5),17,0)=0, "", BUSCARV($C4&$AV4,INDIRECTO("'"&$IL$2 & "[" & $IM$2 & "]" &$AW$2&"'!"&$IT$5),17,0))
  7. Sin libro de ejemplo y con la información que proporcionas solo podre ayudarte con lo siguiente; según lo que sé el control ListView en un UserForm no soporta directamente los hipervínculos. Sin embargo, podrías considerar usar un botón de comando o una etiqueta luego usar el evento "clic" de ese control para seguir el hipervínculo. Ejemplo: Private Sub Label1_Click() ActiveWorkbook.FollowHyperlink Address:=Me.Label1.Caption, NewWindow:=True End Sub Ahí Label1 es el nombre de tu etiqueta, y se supone que el hipervínculo está almacenado en la propiedad Caption de la etiqueta. No se me ocurre algo adicional, tal vez algún Maestro pueda ayudarte mejor. Saludos.
  8. Podrías anteponer un apóstrofe (')
  9. Sí, en el ejemplo que le proporcione usted debe generar el folio siguiente, se puede hacer una regla, pero debe definir cuál es el evento que la desencadenará, por ejemplo al escribir en una celda por decir algo.
  10. Yo sólo intento ayudar con lo básico que conozco, y en realidad no pertenezco al grupo de Maestros, Administradores, y más que hay aquí. Pero sé que en este foro dan opciones para aprender, siga el enlace siguiente. Siga las instrucciones que ahí le proporcionen. AYUDA EXCEL
  11. Bueno para eso algo sencillo es un código de VBA. Pero menciona que su experiencia es baja en el uso de Excel, así que para que le funcione deberá guardar su libro habilitado para macros y revisar que las macros estén permitidas. Le dejo su libro de ejemplo con una macro grabada para que pueda ver cómo funciona en ejecución DUDAS EXCEL.xlsb
  12. Las opciones más sencillas e inmediatas que se me ocurren son: PDF, diseñar que el formato sea una sola hoja en diseño de página y mandarlo a imprimir en una impresora virtual PDF y así ir creando los recibos. COMO AÑADIR UNA IMPRESORA PDF NO MODIFICAR, en la cinta de opciones de Excel ir la parte de protección de hoja y protegerla para que no pueda editarse. PROTEGER UNA HOJA DE CÁLCULO
  13. Bueno con la información presentada y sin libro de ejemplo parece que necesitas consolidar la información de varios archivos de Excel en uno solo, mostrando los nombres de las personas que trabajan en diferentes turnos. En este caso podrías usar BUSCARV() =BUSCARV(A2, '[Archivo1.xlsx]Hoja1'!$A$1:$B$7, 2, FALSO) En el ejemplo anterior, A2 es la celda que contiene el valor que estás buscando (por ejemplo, el turno “M”). 'Archivo1' es el nombre del archivo de donde estás buscando el valor. Hoja1 es el nombre de la hoja dentro de ese archivo. $A$1:$B$7 es el rango de celdas donde estás buscando el valor. 2 es el número de la columna dentro de ese rango que contiene la información que deseas recuperar (en este caso, los nombres de las personas). Puedes repetir este proceso para cada archivo y cada hoja que contenga la información que necesitas. Saludos
  14. Hola, en su libro vienen tres consultas, me parece que las primeras dos se solventan insertando una imagen. Las imágenes que necesita usted, alguien en su lugar de trabajo se las tiene que proporcionar, tanto el logo como el sello. El caso de la firma se puede extender demasiado el tema pensando en si se deben poner o no, considerando que hay otras formas de firmar electrónicamente. Sin embargo sí se puede y la manera sencilla es guardarla como imagen. Las imágenes las tiene que tener guardadas en su equipo. INSERTAR UNA IMAGEN La tercer parte, no es complicado pero puede ser laborioso para usted dependiendo de su experiencia con el uso de Excel. Yo le recomiendo que intente las primeras, regrese aquí compartiendo sus avances y para la tercera habrá un nuevo tema.
  15. ¡Hola! Paseando por el foro vi su presentación. Sea usted bienvenida
  16. Saludos. Similar que el Maestro tengo duda de cómo lo he interpretado, parece que estás intentando extraer una parte de la cadena en función de si contiene “SEM” o no. nada más que la función ENCONTRAR devuelve un error si no encuentra ese texto, tal vez esa es la causa del problema. Así que te podría recomendar usar ESERROR() =SI(ESERROR(ENCONTRAR("SEM",A6)), IZQUIERDA(A6, ENCONTRAR(",", A6)-1), IZQUIERDA(A6, ENCONTRAR(" ", A6)-1)) Esta idea primero verifica si “SEM” está en la celda A6. Si no está (es decir, ENCONTRAR devuelve un error, y ESERROR es VERDADERO), entonces busca la coma y devuelve el texto a la izquierda de la coma. Si “SEM” está en la celda, entonces busca el espacio y devuelve el texto a la izquierda del espacio. Nota: Considerar la propuesta del Maestro @Victor7
  17. Entiendo, aunque esa parte la omitió y es importante, al menos para uno que intenta dar con la respuesta que pueda ser de ayuda, no es lo mismo ceros, que vacías y naturalmente como resultado de fórmulas. La idea es buena y de hecho funciona si el resultado es un error real, no mencionas como devuelves el #N/A pero si lo devuelves literal en lugar de usar una función es posible que por eso no haga lo esperado. tienes que usar: =NOD() Con eso debería bastar. Ejemplo 1.xlsx
  18. Para la segunda parte veo que lo has continuado aquí y al momento no ha podido participar alguien más. En este caso trataré de ayudarte con lo que sé. El formato de línea corresponde con el eje, en este caso al tomar toda la tabla la continuidad se mantiene, así que de forma nativa no conozco alguna manera en la que puedas "seccionar" el formato por rangos. Aunque es posible "simular" lo que buscas pero tal vez visualmente no cumpla todas las expectativas. Para simular se replica el gráfico y determinas qué ejes van en uno y cuáles en otro, En tu caso dejarías de Sep en adelante con lineas discontinuas. Es relativamente sencillo, copias el gráfico y en diseño y formato del gráfico editas lo que necesitas. Nota: El eje vertical tienes que igualar los limites para que las líneas de división te queden igual. Para la tercer parte creo yo, se resuelve con la primera. Indicándole al gráfico qué hacer con las celdas vacías Ejemplo 1.xlsx
  19. En ese caso hay que indicar en el código que permita autofiltros al proteger: Private Sub Worksheet_Change(ByVal Target As Range) Dim lo As ListObject Dim newRow As ListRow 'x Elsamatilde 'solo se controlan cambios en el rango 'desbloqueado' de antemano If Intersect(Target, Range("B3:F550")) Is Nothing Then Exit Sub 'si se modifican varias celdas no se ejecuta If Target.Count > 1 Then Exit Sub 'si se ingresa un dato en alguna celda del rango se bloquea ActiveSheet.Unprotect "Samda" Target.Locked = True 'inserta una nueva fila al presionar tabulador If Target.Column = 6 Then 'ajusta el número de columna según sea necesario Set lo = ActiveSheet.ListObjects("MEMOS") 'ajusta el nombre de la tabla según sea necesario Set newRow = lo.ListRows.Add End If 'protege la hoja pero permite el uso de autofiltros ActiveSheet.Protect "Samda", UserInterfaceOnly:=True ActiveSheet.EnableAutoFilter = True End Sub Control de Documentos Generales 2024.xlsb
  20. Hola, más que tener de origen bloqueado o no, impera el orden de los eventos. La macro que trae el libro ya hace algo parecido a lo que planteas, porque ya no te permite volver regresar a las celdas. Lo que no te debe estar respetando es lo que describes después: Y esto ocurre porque al bloquear la hoja no puede agregar la nueva fila automáticamente con la fórmula que tienes ahí. Entonces lo que podrías intentar es decirle a tu macro es que agregue la fila nueva (dentro de la tabla) cuando el tabulador pase por alguna columna, por ejemplo después de la F:F que es hasta donde aplica la tuya y así no modificar la que tienes original. Private Sub Worksheet_Change(ByVal Target As Range) Dim lo As ListObject Dim newRow As ListRow 'x Elsamatilde 'solo se controlan cambios en el rango 'desbloqueado' de antemano If Intersect(Target, Range("B3:F550")) Is Nothing Then Exit Sub 'si se modifican varias celdas no se ejecuta If Target.Count > 1 Then Exit Sub 'si se ingresa un dato en alguna celda del rango se bloquea ActiveSheet.Unprotect "Samda" Target.Locked = True 'inserta una nueva fila al presionar tabulador If Target.Column = 6 Then 'ajusta el número de columna según sea necesario Set lo = ActiveSheet.ListObjects("MEMOS") Set newRow = lo.ListRows.Add ActiveSheet.Protect "Samda" End If ActiveSheet.Protect "Samda" End Sub Me parece que buscas que la captura sea lineal y el usuario avance con tabulación. Si para ti está bien así, el código anterior debería ser suficiente. ¡Saludines! Nota: Desde mi punto de vista, el orden de los eventos es un poco confuso, si llega a intentar algo diferente ojalá pudiera pasar por aquí y compartir, con gusto le podría ayudar y seguramente también algún miembro o Maestro avanzado del foro podría aportar algo adicional. Control de Documentos Generales 2024.xlsb
  21. Con la información explicada podrías usar una condición para verificar si el valor es una fecha o texto. Dim Valor As Variant Valor = .List(i, 13) If IsDate(Valor) Then TxtCYellow = CDate(Valor) Else TxtCYellow = CStr(Valor) End If Ese código, IsDate verifica si el valor es una fecha. Si es así, se utiliza CDate para convertirlo. Si no es una fecha, se asume que es texto y se utiliza CStr para convertirlo. Haz pruebas.
  22. Bueno como dijera el destripador, vamos por partes. Antes de iniciar hay que tomar en cuenta lo siguiente: Excel trata los ceros y las celdas vacías de manera diferente. Cuando "ve" un cero, lo interpreta como un valor numérico y lo incluye en el gráfico. Por otro lado, si una celda está vacía, la interpreta como si no hubiera datos y la omite en el gráfico. Entonces la forma nativa de hacer lo que pides es usar "Reemplazar" para cambiar los 0 por vacías y decirle al gráfico qué hacer con esas celdas. Para editar lo anterior, con tu gráfico seleccionado ve al formato, seleccionar datos y en la ventana que aparece está: Celdas ocultas y vacías. Eso debería poder ayudarte con la primera parte de tu consulta, para la segunda y tercera es posible que algún miembro o Maestro aporte algo. O si lo consideras necesario, segmentar y usar un tema por ayuda. Ejemplo 1.xlsx
  23. Me da gusto que te haya servido la idea. Concluyo mi participación en el tema. ¡Saludines!
  24. Hola @marurel Sin libro de ejemplo es complicado tratar de aportar ideas y más con la cantidad de dudas para decidir qué cosas hacer o no. Puedo intentar aportar algo con lo que describes en la consulta pero se tolerante porque no te entiendo por completo. Sub ActualizarListaPrecios() Dim libroLista As Workbook Dim hojaLista As Worksheet Dim hojaMovimientos As Worksheet Dim rutaArchivoLista As String rutaArchivoLista = "C:\Ruta\Tu\Archivo\ListaPrecios.xlsx" Set libroLista = Workbooks.Open(rutaArchivoLista) Set hojaLista = libroLista.Sheets(1) Set hojaMovimientos = ThisWorkbook.Sheets("NombreDeTuHojaDeMovimientos") hojaMovimientos.Rows.Clear hojaLista.UsedRange.Copy hojaMovimientos.Range("A1").PasteSpecial xlPasteValues libroLista.Close SaveChanges:=False End Sub Toma en cuenta que solo es una idea y asegúrate de cambiar la ruta del archivo en rutaArchivoLista y el nombre de la hoja de movimientos en ThisWorkbook.Sheets("NombreDeTuHojaDeMovimientos")
  25. Hola. Lamentablemente el video no he podido verlo, no por no querer, sino porque no me carga, ademas en este momento cuento con algo de tiempo porque ando en un traslado y estoy con mi portátil consumiendo el tiempo así que estaría genial. Las respuestas a mis consultas tal vez el video las respondía pero lo explicado al pie me queda ambiguo, y al menos necesito entender las respuestas que pueda darme: Le reitero mi ayuda, aunque se está alargando un poco el tema. Le recomiendo seccionar en dos o tres temas donde es posible recibir más ayuda. Por mí puedo continuar aquí, del mismo modo lo vamos a seccionar y apelo a su paciencia en los tiempos de respuesta.
×
×
  • 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.