Saltar al contenido

Israel Cassales

Miembro
  • Contador de contenido

    1419
  • Unido

  • Última visita

  • Días con premio

    74
  • País

    México

Todo se publica por Israel Cassales

  1. Un año más en este foro aprendiendo de los demás y tratando de aportar lo mejor posible, espero que se encuentren bien cada uno de los que participan en el foro, consultantes, miembros, maestros, moderadores, administradores... ¡bendiciones y buenos deseos! ¡Feliz Navidad 2024 y Año 2025! Saludines
  2. Saludos cordiales ¿Ya intentaste la opción más sencilla? Me refiero a desmarcar la casilla de advertencia, con eso ya te deja escribir libremente.
  3. Bueno, sin libro de ejemplo ni detalles del escenario a mostrar, lo único que en mi caso puedo recomendar a la consulta es que verifique que no hay filtros o si los hay que muestre los datos en blanco. También usar un campo en la tabla de los que se llaman calculados para forzar que siempre haya algo.
  4. Parece que el consultante @RubenDario no ha tenido oportunidad de dejar sus comentarios, esperando que cualquiera de las propuestas recibidas en el tema le haya servido, de mi parte concluyo mi participación. Saludines
  5. Parece que le ha servido, concluyo mi participación en la consulta.
  6. Podrías hacer algo parecido al libro de muestra pero hay que editar un poco los nombres y eso, así que mejor participaré con las fórmulas anteiores. Saludines_2 Fecha - AYUDA EXCEL.xlsx
  7. Hola. En base a lo que entendí podría ser de utilidad lo siguiente, como no sé su versión de Excel pero en 2013 sería algo así. Para agrupar la fecha en un solo resultado: =FECHA(A3, COINCIDIR(B3, {"ENERO","FEBRERO","MARZO","ABRIL","MAYO","JUNIO","JULIO","AGOSTO","SEPTIEMBRE","OCTUBRE","NOVIEMBRE","DICIEMBRE"}, 0), C3) Luego de ese resultado tomar el día: =ELEGIR(DIASEM(C5, 2), "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo") O en una sola: =ELEGIR(DIASEM(FECHA(A3, COINCIDIR(B3, {"ENERO","FEBRERO","MARZO","ABRIL","MAYO","JUNIO","JULIO","AGOSTO","SEPTIEMBRE","OCTUBRE","NOVIEMBRE","DICIEMBRE"}, 0), C3), 2), "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo") Y en 365 podría ser algo así: =LET( año, A3, mes, COINCIDIR(B3, {"ENERO", "FEBRERO", "MARZO", "ABRIL", "MAYO", "JUNIO", "JULIO", "AGOSTO", "SEPTIEMBRE", "OCTUBRE", "NOVIEMBRE", "DICIEMBRE"}, 0), día, C3, fecha, FECHA(año, mes, día), díaSemana, DIASEM(fecha, 2), ELEGIR(díaSemana, "Lunes", "Martes", "Miércoles", "Jueves", "Viernes", "Sábado", "Domingo") ) Saludines
  8. Me da gusto, concluyo mi participación en la consulta. Saludines
  9. ¿Del ejemplo marcado en un libro, nada aún? Bueno, no hay problema. Terminaré mi participación en la consulta. Aunque al estar abierta siempre podrá contar con la posibilidad de algún aporte adicional. Saludines.
  10. Otra opción más sencilla siempre y cuando su diseño lo permita, es agregar una columna adicional con la función FECHA() que tome el dato que se introduzca y haga lo que busca, pero ya es otra columna dentro de la tabla. Para la misma celda no tiene tantas opciones. Es lo que puedo aportar en su consulta, saludines
  11. Para algo como lo anterior una idea es una sentencia VBA, aunque debe personalizar para termine de funcionar de acuerdo a sus necesidades. Private Sub Worksheet_Change(ByVal Target As Range) Dim Cell As Range Dim ws As Worksheet Set ws = Worksheets("Hoja1") If Not Intersect(Target, ws.Range("A2:A10")) Is Nothing Or Not Intersect(Target, ws.Range("B2:B10")) Is Nothing Then Application.EnableEvents = False For Each Cell In Target If Not IsEmpty(Cell) And IsNumeric(Cell.Value) Then If Cell.Column = 1 Then ' Columna A Cell.Value = DateSerial(2024, 1, Cell.Value) ElseIf Cell.Column = 2 Then ' Columna B Cell.Value = DateSerial(2024, 2, Cell.Value) End If End If Next Cell Application.EnableEvents = True End If End Sub
  12. 42 visitas y 2 descargas, no sé los demás aunque creo entender lo que buscas marcar en color me genera dudas todo eso de los MIX, etc. En mi caso estoy en viaje largo y traigo mi portátil con Excel 2013, si hay la coincidencia de que mande el libro durante ese tiempo con el coloreado de manera manual por usted, es posible que intente aportar algo. En caso contrario le recomiendo aun así dejar el libro, en el foro hay Maestros y usuarios avanzados que tal vez con ese ejemplo le aporten algo que le sea de utilidad. Saludos cordiales
  13. Saludos totales. Maestro @JasallBcn gusto en saludarlo y coincidir con usted en una consulta. En base a lo explicado me permito aportar unas de ideas diferentes. Como el desafío es el diseño por que el rango no está en el mismo lugar entonces hay que buscarlo. Vengo con la portátil y tengo Excel 2013 así que podría ser alguna de las siguientes: =SUMAR.SI(INDIRECTO(DIRECCION(2,COINCIDIR(C30,A2:V2)-2)&":"&DIRECCION(10,COINCIDIR(C30,A2:V2)-2)),B30,INDIRECTO(DIRECCION(2,COINCIDIR(C30,A2:V2))&":"&DIRECCION(10,COINCIDIR(C30,A2:V2)))) =SUMAR.SI(INDICE(A$2:V$10,,COINCIDIR(C$31,A$2:V$2,0)-2),B31,INDICE(A$2:V$10,,COINCIDIR(C$31,A$2:V$2,0))) No estoy muy seguro pero sería algo así en 365: =LET( col_index, COINCIDIR(C$31, A$2:V$2, 0), range1, INDICE(A$2:V$10,, col_index - 2), range2, INDICE(A$2:V$10,, col_index), SUMAR.SI(range1, B$31, range2) ) @RubenDario Ya tenías el aporte del Maestro, solo es por proponer algo distinto.
  14. Lamento leer eso, eran el par de cosas que conozco, al menos la consulta sigue abierta y es posible que recibas ayuda adicional de algún Maestro o miembro avanzado del foro. Si se me ocurre algo adicional te lo comparto.
  15. Vaya, entonces podrías intentar otra alternativa para convertirlos en sólo lectura, es probable que haya otras pero una opción diferente que conozco sería usar la propiedad ExecMenuItem para "flatear" el documento y asegurarse de que no sea editable: ' (convertir en solo lectura) objAcrobatAVDoc.BringToFront objAcrobatApp.MenuItemExecute "SaveAs"
  16. Bueno, parece que sin libro de ejemplo terminaré mi participación en esta consulta, espero que haya encontrado la solución que necesita.
  17. Hola. No tengo Adobe PRO pero una idea y como veo que estas usando JSO podrías agregar un JavaScript y convertir las páginas del PDF a solo lectura utilizando this.flattenPages() ya luego se guarda y se cierra. Dim jsSave As String jsSave = "this.flattenPages();" & vbCrLf & "this.saveAs({cPath: '" & stRutaGuardadoPDF & "', bCopy: true});" & vbCrLf & "this.closeDoc();" objJSO.Execute (jsSave) ' Y cerramos la aplicación (Acrobat) para finalizar objAcrobatApp.Exit Haz una prueba. Saludines
  18. De mi parte no logre entenderlo del todo, parece que deberías anidar SI() con COINCIDIR() aunque para no estar deduciendo te recomiendo subir un libro de ejemplo.
  19. Hola, Con algo como esto sólo necesitarás colocar la cantidad de filas que deseas ocultar en la columna B junto a cada "x" Sub OcultaFilas() Cells.EntireRow.Hidden = False Dim pf As Long, uf As Long, i As Long, numFilas As Long pf = 2 uf = Sheets("Hoja1").Range("D" & Rows.Count).End(xlUp).Row For i = pf To uf If Cells(i, 1).Value = "x" Then If IsNumeric(Cells(i, 2).Value) And Cells(i, 2).Value > 0 Then numFilas = Cells(i, 2).Value Else numFilas = 1 End If Rows(i & ":" & i + numFilas - 1).Hidden = True i = i + numFilas - 1 End If Next i End Sub
  20. ¡Vaya! Un poco tarde para comentar, seguro ya está resuelto. Una idea sería usar algo parecido a ShellWait pero como en VBA no tiene un comando así, se puede imitar con una función a modo que espere a que el proceso termine. Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As LongPtr) Sub ImprimirMC() Dim sfile As String Dim uf As Long Dim j As Long Set a = Sheets(ActiveSheet.Name) uf = a.Range("B" & Rows.Count).End(xlUp).Row For j = 3 To uf If a.Range("D" & j).Value = "" Then sfile = a.Cells(j, "B").Value ShellExecute 0&, "print", sfile, vbNullString, vbNullString, 0 ' Agregar un retraso para permitir que la impresora procese el archivo Sleep 2000 ' 2000 ms = 2 segundos (ajustable según tu impresora) End If Next j End Sub El Sleep 2000: Espera de 2 segundos entre cada impresión. lo puedes ajustar a la velocidad de tu impresora según el tamaño de los archivos. El ShellExecute mantendrá la instrucción original para enviar el archivo directamente a imprimir. Ahora, para no abrir los archivos se usa el ShellExecute en modo "print" eso debería evitar la apertura del libro, pero OJO depende de la configuración del programa predeterminado en tu sistema. Si los sigue haciendo, debes revisar las asociaciones predeterminadas de Windows para cada tipo de archivo. Saludines
  21. Tengo duda si la última fórmula podría llegar a devolver alguna referencia circular, así que deberás de hacer pruebas o subir un libro con el ejemplo de los datos y del resultado buscado.
  22. Bueno, me parece que el consultante no es claro, me complica recomendar alguna FUNCION. Antes que otra cosa ¿Cómo son los datos 2mm, 13mm? Es decir, son valores con formato personalizado al "mm" o son textos completos "2mm", "13mm". Además dices: En ese rango de 30 filas podrían haber varias secciones con días consecutivos, ¿cuál importa, el mayor de esos rangos? Por esas incógnitas podré aportar sólo siguiente: Separar las "mm" de los textos =VALOR(SUSTITUIR(C1,"mm","")) Define cuales cumplen con el criterio mayor que 11: =SI(D1>=11, 1, 0) Encuentra los consecutivos mayores a 11: =SI(E2=1, SI(FILA(E2)=1, 1, F2+1), 0) Y si requieres encontrar el mayor de ellos: =MAX(F1:F30) Saludines
×
×
  • 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.