Saltar al contenido

Toda la actividad

Este flujo se auto actualiza

  1. Última semana
    Hola a todos! Ya he liberado la nueva versión de mi complemento XUtilities (Ver 0.5). En esta nueva versión ya se cuenta con las siguientes funciones: XJOIN => Viene a emular la función de unir cadenas. XLIKE => Util para validar la estructura de una cadena de texto. XREGEXEXTRACT => Permite extraer una o mas cadenas de texto en base a una expresión regular. XREGEXMATCH => Permite validar si un texto contiene una expresión regular. XREGEXREPLACE => Permite reemplazar todas las cadenas de un texto que coincidan con una expresión regular. XUNIQUE => Permite extraer los valores únicos de un rango de celdas. Estas funciones tienen la ventaja de devolver matrices dinámicas, por lo cual aquellos usuarios que tengan Excel 2021 en adelante deberían verse aun mas beneficiados. Agrego el vídeo de instalación y explicación. Espero estar agregando el ofuscador de código en la versión 1.0 Aquí pueden descargarse la versión mas reciente del complemento (En el apartado de descargas): https://www.xoloapps.net/excel-soluciones/xutilities También dejo un pequeño vídeo mostrando el funcionamiento del complemento en su versión 0.5 Quedo al pendiente de comentarios y observaciones.
  2. Jajajaja, guárdate el truco Un día escribiré un libro sobre formatos y le quitaré todos los puntos y comas "que vivan los números enteros" 😂
  3. Me lo ha chivado la grabadora de macros al darle formato "Contabilidad". 😜
  4. Hola Antoni, excelente como siempre. Esta parte Se enseña a partir de los 60, ¿no? Probé creo que con todos pero ese no venía e la lista 😄 Muy bueno, gracias por la pincelada. Seguiré trabajando en ello, Cuídate mucho.
  5. Mira a ver si esto se ajusta más o menos a lo que buscas.
  6. Prueba el adjunto. MiNumerosListView.xlsm
  7. Hola a todos(as); Estoy teniendo problemas a la hora de exportar valores con formato número o moneda desde mi ListView a la hoja Excel. Exporta pero no le da formato número o moneda. Entiendo que al tener formato como hay "." y "," lo detecta como texto y quería que al insertar los valores en la hoja coja bien formato número o moneda. En el formulario he puesto dos botones, con uno le doy formato número y con otro formato moneda y a continuación hago la exportación a una hoja Excel. Ya he probado incluso reemplazando el punto y la coma pero no he sido capaz y el código se enrevesaba demasiado y al o mejor la solución es mas sencilla que todo eso. Adjunto archivo de ejemplo. MiNumerosListView.xlsm
  8. Para mañana creo que te mando algo
  9. Base datos Cementos producido 2024.xlsx
  10. Buenos días, listo. El objetivo es que en la celda N1 de la hoja Cemento del libro Cemento se coloque el dato de las comparaciones. La primera comparación se realiza de los dos últimos datos de la columna K de la hoja Caliza Adición Cto del Libro Prehomo, de tal manera que si el ultimo valor es mayor realice un promedio de los dos datos y es menor tome ese valor. Ahora la siguiente comparación hace referencia a la columna K de la hoja Caliza Adición del libro Base de datos Cementos producido 2024 con la condición que la columna B debe ser igual a 4, con esta condición toma el ultimo valor de la columna K y lo compara con el dato obtenido en el proceso anterior y de estos se toma el menor. Saludos y muchas gracias por el apoyo.
  11. Buenos días gracias por responder, dinámica porqué todos los días laboratorio ingresa datos entonces el resultado me varia a diario para poder tomar decisiones. Como la consulta la hago desde otra ubicaciones donde debo abrir varios libros. Donde compara dos libros. Necesito el valor menor de las comparaciones. Ya envie los archivos. Saludos
  12. ¿Por columna dinámica se refiere a que cambia de ubicación, de número de filas que la integran o los registros? Lo anterior se puede solucionar de manera rápida, sencilla y eficiente con funciones: SI(), MAX() y tomar ese valor externo vinculando con el libro. Con VBA también es posible pero ¿qué va a desencadenar el evento? Como ya le han pedido, el libro de ejemplo es importante porque está dejando múltiples decisiones a la deducción. ¿Qué es lo que ha intentado? De tener algo diseñado ¿puede compartirlo? Le recomiendo ampliar su consulta, saludos cordiales.
  13. Buenos dias compañeros seria posible que me ayuden con el siguiente tema, quiero hacer una macro que me compare los dos últimos datos de una columna dinámica de tal manera que si el ultimo es mayor tome el promedio de los dos dos datos y si es menor tome ese valor. Además después se compare con el ultimo dato de una columna de otro libro de tal manera que se tome el menor de estos dos. Agradezco en lo que me puedan orientar, estaré atento a sus comentarios.
  14. Hola a todos También funcionaría concatenando =TEXTO(C3&"/"&B3&"/"&A3,"dddd")
  15. Solucionado cuando he optado por sumar los días de lectura a la fecha de comienzo Gracias Duda3.xlsm
  16. Buenas tardes. He solucionado esto haciendo una tabla adicional (en la hoja Anual), primero junto los datos que quiero y así ya puedo buscar en ella, pero me encuentro con otro problema. Si una de las búsquedas, en este caso un libro, me deja la fecha de comienzo en un apunte y la de final en otro... me quedo con el dato del primer apunte, que está vacío. (Ejemplo Libro 6) ¿Que puedo hacer para que me devuelva el dato del segundo apunte? Gracias por vuestro tiempo Duda2.xlsm
  17. (creo que) no estas contando 'toda la historia' (y te haces trampas tu solo), me explico: (de tu codigo inicial) del libro 'base ... producido.xlsx' 1) cuando consultas la hoja 'mezcla adicion' - que uso das a (o para que sirve) la variable 'Cal5' ??? - solo le asignas un valor pero jamas vuelve a aparecer en el codigo 2) cuando consultas la hoja 'caliza adicion' - por que recorres las filas 371 a 736 (son 366 ciclos -probablemente- innecesarios) ??? - de donde se 'construye' la variable 'fecha' para comparar la columna "A" ??? - hay alguna situacion especial para evaluar SOLO el 'molino 4' ??? 3) por que tanto 'switcheo' entre las variables 'Cal1 a Cal5' para determinar 'caliza' ??? si tienes mas 'detalles en el tintero' ? (es buen momento para comentarlos -todos ?-) sugerencia: decide en cual foro quieres continuar esta consulta o pon un link en cada foro a tu consulta en el otro
  18. Buenas tardes compañero tengo los siguiente, me esta resultado pero no me esta extrayendo el ultimo valor de la columna K del rango especificado, me podrían ayudar creo que es por que tiene celdas vacias dentro del rango especificado. Como solucionaría este impase agradezco sus comentarios. Sub extraer() Dim jh5 As Workbook Dim sh1, jh6 As Worksheet Dim ndatos, uvalor As Double Application.ScreenUpdating = False Set sh1 = ThisWorkbook.Sheets("Hoja1") If sh1.Cells(1, "L").Value = "Mezcla" Then Set jh5 = Workbooks.Open("\\10.7.10.1\calidad\RegCalidad 2024\Molienda de Cemento y Empaque\Base datos Cementos producido 2024.xlsx", ReadOnly:=True) Set jh6 = Sheets("MEZCLA ADICION") ndatos = Application.WorksheetFunction.Count(jh6.Range("K371:K736")) uvalor = Application.WorksheetFunction.Index(jh6.Range("K371:K736"), ndatos) sh1.Cells(1, "N") = uvalor jh6.Activate ActiveWorkbook.Close Else 'Call calizaco End If Application.ScreenUpdating = True End Sub
  19. La macro lo que pretende es hacer lo siguiente: En primera instancia no tenia el checkbox por lo tanto la macro estaba realizando su trabajo en cual consiste en los siguiente. Revisa la columna K de la hoja CALIZA ADICIÓN CTO y compara los dos últimos datos, si el ultimo dato es mayor que el anterior los suma y los divide entre 2, ahora si el ultimo dato es menor toma ese dato. Luego verifica la columna K de la hoja CALIZA ADICION, si el ultimo valor es menor que el obtenido en la fase anterior toma este nuevo valor sino deja el valor anterior. Resulta que no se tomo en cuenta la mezcla de materia prima. Entonces se me ocurrió usar un select que cuando utilicemos la mezcla haga otro procedimiento sino hago el procedimiento ya mencionado y es aquí donde me enrede. Espero haberme explicado. Ahora si de alguna manera se puede mejorar lo que tengo se los agradecería.
  20. Buenos dias gracias por responder, te adjunto el codigo que tiene actualmente la hoja y que trabaja sin problemas. El detalle es que no se tomo en cuenta otra variable y es la que quiero introducior con el CheckBox y es lo que quiero que me ayuden a engranar. O si es posible mejorarlo. Muchas gracias por su apoyo Sub Pignea() Dim jh1, jh3 as Workbook Dim sh1, jh1, jh2, jh3, jh4 as Worksheet Set jh1 = Workbooks.Open("\\10.7.10.1\calidad\SEGUIMIENTO HORA-HORA\PREHOMO.xlsx", ReadOnly:=True) Set jh2 = Sheets("CALIZA ADICIÓN CTO") jh2.Activate jh2.Cells(4, "A").Select JFila = ActiveCell.Row For i = 1 To 4 JFila = jh2.Cells(JFila, "A").End(xlDown).Row Next i JFila = Cells(JFila, "K").End(xlUp).Row End If If jh2.Cells(JFila, "K") < jh2.Cells(JFila - 1, "K") Then Cal1 = jh2.Cells(JFila, "K") Else Cal1 = (jh2.Cells(JFila, "K") + jh2.Cells(JFila - 1, "K")) / 2 End If Set jh3 = Workbooks.Open("\\10.7.10.1\calidad\RegCalidad 2024\Molienda de Cemento y Empaque\Base datos Cementos producido 2024.xlsx", ReadOnly:=True) Set jh4 = Sheets("CALIZA ADICION") For i = 371 To 736 If (Not (jh4.Cells(i, "K") = Empty)) And jh4.Cells(i, "A") = (fecha - 1) And jh4.Cells(i, "B") = "4" Then Cal2 = jh4.Cells(i, "K") Else If Cal2 < 2 Or Cal2 > 59 Then Cal2 = 60 End If End If Next i Filacal = jh4.Cells(736, "K").End(xlUp).Row Cal3 = jh4.Cells(Filacal, "K") If Cal2 = 60 Then Cal4 = Cal3 Else Cal4 = Cal2 End If jh4.Activate ActiveWorkbook.Close If Cal1 < Cal4 Then Caliza = Cal1 Else Caliza = Cal4 End If sh1.Activate sh1.Cells(1, "N") = Caliza jh2.Activate ActiveWorkbook.Close
  21. Antes
  22. lo mismo que te sugeri 'alla'... te dejo tres observaciones 'esencialmente basicas' que estas omitiendo en el codigo que expones: 1ª vba NO es (como) vb 'stand-alone', vba requiere asignar el tipo a cada variable declarada (por lo tanto)... - de tu primera instruccion: Dim sh1, jh2, jh3, jh4, jh5, jh6 As Worksheet SOLO la ultima variable (jh6) es de tipo 'worksheet', las demas 'asumen' Variant (por omision) 2ª a la primera variable (sh1) tampoco le asignaste una referencia - ANTES de la instruccion: If sh1.CheckBox1.Value = True Then DEBES vincular el 'checkbox' con 'su hoja' (que asumo es...) la hoja activa del libro activo ? - agrega una instruccion ± asi: Set sh1 = ActiveSheet 3ª tienes otras variables NO asignadas (y alguna/s del tipo incorrecto) por el resto... la pelota se queda en tu cancha (es un codigo muy 'saltimbanqui') ?
  23. Buenas tardes estimados, tengo la siguiente macro donde quiero que al seleccionar el checkbox1 me ejecute el primer procedimiento de lo contario siga al siguiente procedimiento, pero me esta tomando el valor en la casilla de adicion del segundo procedimiento. Agradezco me puedan orientar gracias. Sub Dedicion() dim sh1, jh2, jh3, jh4, jh5, jh6 as Worksheet If sh1.CheckBox1.Value = True Then Set jh5 = Workbooks.Open("\\10.7.10.1\calidad\RegCalidad 2024\Molienda de Cemento y Empaque\Base datos Cementos producido 2024.xlsx", ReadOnly:=True) Set jh6 = Sheets("MEZCLA ADICION") jh6.Activate jh6.Cells(4, "A").Select JFila = ActiveCell.Row For i = 371 To 736 JFila = jh6.Cells(JFila, "A").End(xlDown).Row Next i JFila = Cells(JFila, "K").End(xlUp).Row Cal5 = jh6.Cells(JFila, "K") Else Set jh1 = Workbooks.Open("\\10.7.10.1\calidad\SEGUIMIENTO HORA-HORA\PREHOMO.xlsx", ReadOnly:=True) Set jh2 = Sheets("CALIZA ADICIÓN CTO") jh2.Activate jh2.Cells(4, "A").Select JFila = ActiveCell.Row For i = 1 To 4 JFila = jh2.Cells(JFila, "A").End(xlDown).Row Next i JFila = Cells(JFila, "K").End(xlUp).Row End If If jh2.Cells(JFila, "K") < jh2.Cells(JFila - 1, "K") Then Cal1 = jh2.Cells(JFila, "K") Else Cal1 = (jh2.Cells(JFila, "K") + jh2.Cells(JFila - 1, "K")) / 2 End If Set jh3 = Workbooks.Open("\\10.7.10.1\calidad\RegCalidad 2024\Molienda de Cemento y Empaque\Base datos Cementos producido 2024.xlsx", ReadOnly:=True) Set jh4 = Sheets("CALIZA ADICION") For i = 371 To 736 If (Not (jh4.Cells(i, "K") = Empty)) And jh4.Cells(i, "A") = (fecha - 1) And jh4.Cells(i, "B") = "4" Then Cal2 = jh4.Cells(i, "K") Else If Cal2 < 2 Or Cal2 > 59 Then Cal2 = 60 End If End If Next i Filacal = jh4.Cells(736, "K").End(xlUp).Row Cal3 = jh4.Cells(Filacal, "K") If Cal2 = 60 Then Cal4 = Cal3 Else Cal4 = Cal2 End If jh4.Activate ActiveWorkbook.Close If Cal1 < Cal4 Then Caliza = Cal1 Else Caliza = Cal4 End If sh1.Activate sh1.Cells(1, "N") = Caliza jh2.Activate ActiveWorkbook.Close Application.ScreenUpdating = True End Sub Cemento.xlsm Cemento.zip
  1. Cargar más actividad
×
×
  • 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.