Saltar al contenido

jues

Miembro
  • Contador de contenido

    65
  • Unido

  • Última visita

  • País

    Venezuela

Todo se publica por jues

  1. Buenos días @JSDJSD espero estes bien Utilizando la información proveniente de los dos posts anteriores en los que usted me dio un excelente soporte: Me guie para intentar configurar las siguientes macros: Sub VerificarTextBoxes() Dim txtBoxes As Variant Dim contador As Integer Dim sextoTextBox As Double Dim septimoTextBox As Double Dim i As Integer txtBoxes = Array(frmvtl.TextBox16.Value, frmvtl.TextBox17.Value, frmvtl.TextBox18.Value, frmvtl.TextBox19.Value, _ frmvtl.TextBox20.Value, frmvtl.TextBox21.Value, frmvtl.TextBox22.Value) contador = 0 sextoTextBox = 0 septimoTextBox = 0 ' Contar TextBoxes llenos For i = LBound(txtBoxes) To UBound(txtBoxes) If txtBoxes(i) <> "" Then contador = contador + 1 If contador = 6 Then sextoTextBox = Val(txtBoxes(i)) ElseIf contador = 7 Then septimoTextBox = Val(txtBoxes(i)) End If End If Next i ' Sumar al TextBox26 si hay 6 o 7 TextBox llenos If contador >= 6 Then Dim total As Double total = sextoTextBox + septimoTextBox frmvtl.TextBox26.Value = total End If End Sub Sub ColorearTextBox(TxtBox As MSForms.TextBox, CboBox As MSForms.comboBox) 'Colorear Texbox 16 al 20 With TxtBox Select Case .Value Case "", Empty: .BackColor = RGB(255, 255, 255) Case Is <= CInt(CboBox): .BackColor = RGB(255, 255, 255) Case Is > CInt(CboBox): .BackColor = RGB(255, 0, 0) End Select End With End Sub Sub ColorearTextBox2(TxtBox As MSForms.TextBox, CboBox As MSForms.comboBox) 'Colorear Texbox 21 y 22 With TxtBox Select Case .Value Case "", Empty: .BackColor = RGB(255, 255, 255) Case Is <> "": .BackColor = RGB(255, 0, 0) End Select End With End Sub Con las cuales intento darle funcionalidad al siguiente argumento: Sí y solo si hay 6 o 7 TextBox llenos (TextBox<>””) de Lunes a Domingo (TextBox16, TextBox17, TextBox18, TextBox19, TextBox20, TextBox21, TextBox22) entonces: · El(los) valor(es) del 6to TextBox o 7mo TextBox lleno(s) (TextBox<>””) o ambos inclusive se deberá(n) sumar automáticamente al TextBox26. · El color del 6to TextBox o 7mo TextBox o ambos inclusive deberá(n) ser automáticamente BackColor = RGB(255, 0, 0) si esta(n) lleno(s) (TextBox<>””) y si esta(n) vacío(s) (TextBox = ””) deberá(n) ser BackColor = RGB(255, 255, 255). · El 6to TextBox estará ubicado alternativamente entre el(los) TextBox21 y TextBox22 mientras que el 7mo TextBox siempre estará ubicado en el TextBox22. · El(los) TextBox (TextBox16 al TextBox22) cuyo(s) valor(es) posea(n) decimales o sea(n) decimales directamente y donde adicionalmente se cumplan con las condiciones de la Macro CalcularDiferencias así como con los tres puntos anteriores dicho(s) decimal(es) se deberá(n) sumar automáticamente en el TextBox Ahora bien, cuando los TextBox16 al TextBox22 estan llenos la macro automáticamente suma los valores del 6to TextBox y 7mo TextBox lleno(s) (TextBox<>””) en el TextBox26 y se colorean adecuadamente los TextBox21 y TextBox22 sin embargo si entre el TextBox16 y el TextBox22 hay algún TextBox vacío y/o con valores ≥ 8 se presentan desviaciones en la suma en el TextBox26, así mismo cuando los valores contenidos en los TextBox poseen decimales o son decimales directamente dichos decimales no se suman automáticamente en el TextBox 26 como si ocurre en el TextBox23 (Ver Archivo Sumar). Mucho te sabre agradecer a ayuda que me puedas dar Libro.xlsm
  2. Funciona exelente muchas gracias
  3. Saludos amigos espero estén bien Intento guardar la información proveniente del Label32 a través de la siguiente sección de código: Guardar Hoja58, "H3", Label32 Sin embargo, al ejecutar la macro se inserta una fila como corresponde, pero no se copia ninguna información en la MATRIZ4 apareciendo de inmediato una alerta que me indica: “Se ha producido un error ”438” entiempo de ejecución: El objeto no admite esta propiedad o método” ubicando el error en la siguiente macro: If ctrl.Visible Then sh.Range(r).Value = ctrl.Value End If End Sub Por lo que entiendo se debe a la propiedad Vaule que no sé cómo ni por cual propiedad cambiar para que se guarde correctamente la información del Label32 conjuntamente con el resto de los TextBox y ComboBox. GUARDAR PRUEBA.xlsm
  4. Funciona perfecto mejor de lo que esperaba mil gracias
  5. Ejemplo 3: El día 12 (TetxBox14) de Octubre es feriado, pero el TextBox que está asociado a esta fecha: TextBox 20 =”” se cuenta con valor igual a “1” por lo tanto el TextBox32 = 1
  6. Ejemplo 2: Los días 28 (TetxBox12) y 29 (TetxBox13) de Marzo son feriados, pero como los TextBox que estan asociados a estas fechas: TextBox 19 <>”” se cuenta con valor igual a “0” mientras que el TextBox 20 =”” se cuenta con valor igual a “1” por lo tanto el TextBox32 = 1
  7. Saludos @JSDJSD espero estés bien los resultados del Texbox26 están conforme a lo esperado sin embargo con el Texbox32 al hacer pruebas obtuve algunos resultados que difieren de los resultados esperados por lo que hice unos cálculos manuales que me condujeron al replanteamiento de mi enunciado original para asegurar la exactitud de los resultados: Si la fecha contenida en alguno de los TetxBox 9, 10, 11, 12, 13, 14, 15 Coincide con alguna(s) de las fechas del Rango 'USUARIOS & PRIVILEGIOS'!$BS$27:$BS$56 entonces Únicamente el(los) TextBox (16, 17, 18, 19, 20, 21, 22) que esté(n) asociado(s) con esta(s) fecha(s) cuando este(n) Vacío(s) se deberá(n) contar con un valor igual a “1” (Textbox=””=1) mientras el(los) TetxBox (16, 17, 18, 19, 20, 21, 22) que no esté(n) asociado(s) con esta(s) fecha(s) cuando este(n) Lleno(s) se deberá(n) contar con un valor igual a “0” (TetxBox<>””=0) conforme a las siguientes condiciones: Si TetxBox9 Coincide con Rango 'USUARIOS &PRIVILEGIOS' entonces TextBox 16 =””=1 Si TetxBox10 Coincide con Rango 'USUARIOS &PRIVILEGIOS' entonces TextBox 17 =””=1 Si TetxBox11 Coincide con Rango 'USUARIOS &PRIVILEGIOS' entonces TextBox 18 =””=1 Si TetxBox12 Coincide con Rango 'USUARIOS &PRIVILEGIOS' entonces TextBox 29 =””=1 Si TetxBox13 Coincide con Rango 'USUARIOS &PRIVILEGIOS' entonces TextBox 20 =””=1 Si TetxBox14 Coincide con Rango 'USUARIOS &PRIVILEGIOS' entonces TextBox 21 =””=1 Si TetxBox15 Coincide con Rango 'USUARIOS &PRIVILEGIOS' entonces TextBox 22 =””=1 Si TetxBox9 No Coincide con Rango 'USUARIOS &PRIVILEGIOS' entonces TextBox 16 <>””=0 Si TetxBox10 No Coincide con Rango 'USUARIOS &PRIVILEGIOS' entonces TextBox 17 <>””=0 Si TetxBox11 No Coincide con Rango 'USUARIOS &PRIVILEGIOS' entonces TextBox 18 <>””=0 Si TetxBox12 No Coincide con Rango 'USUARIOS &PRIVILEGIOS' entonces TextBox 29 <>””=0 Si TetxBox13 No Coincide con Rango 'USUARIOS &PRIVILEGIOS' entonces TextBox 20 <>””=0 Si TetxBox14 No Coincide con Rango 'USUARIOS &PRIVILEGIOS' entonces TextBox 21 <>””=0 Si TetxBox15 No Coincide con Rango 'USUARIOS &PRIVILEGIOS' entonces TextBox 22 <>””=0 Ejemplo 1: Los días 12 (TetxBox9) y 13 (TetxBox10) de Febrero son feriados, pero como los TextBox que estan asociados a estas fechas: TextBox 16 =”” y TextBox 17 =”” se cuentan con valor igual a “1” por lo tanto el TextBox32 = 2
  8. Correcto tal cual se ajusta a lo que necesito muy acertado como siempre usted
  9. Saludos @JSDJSD espero estes bien como ya me dio un excelente soporte adaptando a Macros Vba las fórmulas de mi anterior post: Espero también pueda ayudarme con los resultados de estas dos últimas fórmulas que me faltan en los TextBox26: y TextBox32: TextBox26: si alguno de los TetxBox16, 17, 18, 19, 20, 21, 22 es mayor que el ComboBox2 entonces se debe de restar el TetxBox que cumpla con la condición menos el ComboBox2 siendo así el resultado que se debe mostrar en el TextBox26 de manera simultánea y automática será la sumatoria de los resultados individuales de cada TetxBox mediante la combinación de las siguientes operaciones equivalentes en Vba: SI(TextBox16>ComboBox2; TextBox16-ComboBox2)+SI(TextBox17>ComboBox2; TextBox17-ComboBox2)+SI(TextBox18>ComboBox2;TextBox18-ComboBox2)+SI(TextBox19>ComboBox2;TextBox19-ComboBox2)+SI(TextBox20>ComboBox2;TextBox20-ComboBox2)+SI(TextBox21>ComboBox2;TextBox21-ComboBox2)+SI(TextBox22>ComboBox2;TextBox22-ComboBox2) TextBox32: si la fecha contenida en alguno de los TetxBox9, 10, 11, 12, 13, 14, 15 Coincide con alguna de las fechas del Rango 'USUARIOS &PRIVILEGIOS'!$BS27:BS56 entonces los TetxBox16, 17, 18, 19, 20, 21, 22 Vacíos se deberán contar con valor igual a “1” (Textbox=””=1) mientras que los TetxBox16, 17, 18, 19, 20, 21, 22 Llenos se deberán contar con valor igual a “0” (TetxBox<>””=0) de forma similar a lo que ya ocurre con los resultados del TextBox30 siendo así el resultado que se debe mostrar en el TextBox32 de manera simultánea y automática será el resultado de la combinación de las siguientes operaciones equivalentes en Vba: SI(COINCIDIR(TetxBox9, 10, 11, 12, 13, 14, 15;'USUARIOS &PRIVILEGIOS'!$BS27:BS56;0);TetxBox16, 17, 18, 19, 20, 21, 22=””=1;TetxBox16, 17, 18, 19, 20, 21, 22<>””=0) HHE PRUEBA (3) (1).xlsm
  10. Buenas noches @JSDJSD funciona excelentemente bien solo un detallito allí con un CommandButton pero que gracias los comentarios que dejo en el código pude resolver muchas gracias
  11. Saludos @AlexanderS y @febrero59 espero estén bien Tengo un caso similar este post: https:/ayudaexcel.com/foro/index.php?/topic/21744-bloquear-combobox-y-textbox-dependiendo-de-la-selecci%C3%B3n/&_rid=175568 Al cual dieron un dieron un par de buenas respuestas que van en línea con lo que necesito solventar en concreto tengo un ComboBox con cinco opciones la primera opción es igual a blanco y como tal se muestra por defecto adicionalmente posee cuatro opciones numéricas 8, 9, 12 y 24 necesito que cuando el ComboBox2=”” los TextBox 16, 17, 18, 19, 20, 21, 22, SpinButton1, CommandButton2, CommandButton3, CMDInformeSemanal y el CMDInformeMensual deben estar bloqueados y cuando se escoja alguna de las opciones numéricas los TextBox 16, 17, 18, 19, 20, 21, 22, SpinButton1, CommandButton2, CommandButton3, CMDInformeSemanal y el CMDInformeMensual se deben desbloquear de forma automática y simultánea. Mucho sabre agradecer la ayuda que me puedan dar HHE PRUEBA (3).xlsm
  12. Genial como siempre funciona perfecto mil gracias @JSDJSD
  13. Buenos días @JSDJSD tal cual lo que colocas es la solución adecuada
  14. Saludos @JSDJSD espero estés bien excelente su solución funciona conforme a lo esperado salvo por un detalle con el que contestare su interrogante anterior respecto al mes. En la Hoja Excel donde ejecuto originalmente la formula: SUMPRODUCT(('USUARIOS & PRIVILEGIOS'!$BS27:BS56>=EOMONTH(TODAY(),-1)+1)*( 'USUARIOS & PRIVILEGIOS'!$BS27:BS56<=EOMONTH(TODAY(),0))) Es un Reporte Mensual y por lo tanto es indiferente el día o la semana donde este ubicado el feriado sin embargo con su pregunta me percate que en este caso como es un Reporte Semanal si influye el día y la semana donde se ubique el feriado ya que hay semanas que son mixtas es decir se comparten entre dos meses y/o años diferentes como es el caso de las semanas donde se encuentran los días feriados correspondientes al 01/05/2024, 28/05/2024 y 31/12/2024 siendo así la macro solo debería contar el día feriado contenido en rango 'USUARIOS & PRIVILEGIOS'!$BS27:BS56 y reflejar un resultado en el TextBox31 si y solo si este feriado se encuentra en la semana comprendida entre los TextBox4 y TextBox5. Adjunto la versión funcional y casi definitiva de formulario. HHE PRUEBA.xlsm
  15. N° DE DIAS VICTOR7.xlsm
  16. Saludos @Victor7 gracias por ayudarme a solventar mi problema, su solución me parece más viable y entendible sin embargo por la forma como recoge los datos la MATRIZ añadí cuatro columnas donde de separo las fechas y días de cada evento para poder aplicar sus fórmulas pero interpreto que como hay celdas vacias entre datos las formulas se desbordan o aparece #¡REF!y por lo tanto no me da el mismo resultado que a usted sería posible reconfigurar sus formulas para adaptarlas a la forma como puedo separar los datos ..?? Adjunto el archivo modificado
  17. Exacto eso es el resultado que busco. En la única pestaña del archivo (USUARIOS & PRIVILEGIOS) hay una pequeña tabla que es el rango de búsqueda 'USUARIOS & PRIVILEGIOS'!$BS27:BS56 como la que se muestra en la Imagen adjunta de todos modos adjunto el archivo nuevamente HHE PRUEBA.xlsm
  18. Saludos @JSDJSD espero estes bien haciendo el ejemplo visual que me pidió me percate que tenia un error en el planteamiento el cual procedo a corregir en este post, tengo dos casos en los cuales necesito que los TextBox vacios y llenos se cuenten de diferentes formas: Caso 1 (Imagen 01): Para los resultados de los TextBox 25, 27, 28 necesito que cuando los TextBox 16, 17, 18, 19, 20, 21, 22 estén llenos se cuenten como “1” (TextBox<>”” = 1) mientras que cuando los TextBox 16, 17, 18, 19, 20, 21, 22 estén vacíos se cuenten como “0” (TextBox =”” = 0) como si fuera la Función CONTAR de Excel finalmente los resultados deben mostrarse de manera automática y simultánea en los TexBox 25, 27, 28. TextBox25 = (TextBox16 +TextBox17+TextBox18+TextBox19+TextBox20+TextBox21+TextBox22) TextBox27 = (TextBox16 +TextBox17+TextBox18+TextBox19+TextBox20+TextBox21+TextBox22) TextBox28 = TextBox27 Caso 2 (Imagen 02): Para el resultado del TextBox 30 necesito que cuando los TextBox 21, 22 estén llenos se cuenten como “0” (TextBox<>”” = 0) mientras cuando que los TextBox 21, 22 estén vacíos se cuenten como “1” (TextBox =”” = 1) como si fuera la Función CONTAR.BLANCO de Excel finalmente el resultado debe mostrarse de manera automática y simultánea en el TextBox30. TextBox30 = (TextBox21+TextBox22) Por último, el TextBox29 pasa a a asumir un valor fijo = 2 (TextBox29 = 2) Entre tanto con esta fórmula: SUMPRODUCT(('USUARIOS & PRIVILEGIOS'!$BS27:BS56>=EOMONTH(TODAY(),-1)+1)*('USUARIOS & PRIVILEGIOS'!$BS27:BS56<=EOMONTH(TODAY(),0))) Necesito que se ejecute de manera automática en la macro que corresponda y que el valor resultante se refleje en el TextBox31 HHE PRUEBA.xlsm
  19. Saludos @Oscar_MRF espero estes bien Resultó el detalle de la ubicación de los resultados aún persiste el detalle de que cuando agrego datos en la Columna “U” y la Columana “AU” de lHoja MATRIZ no funciona dinámicamente sino que muestra de inmediato #¿NOMBRE? En las Celdas donde se ejecuta la fórmula coloque un par de fechas en U3 y U4 y un código en AU3 para que visualice mejor lo que le comento N° DE DIAS (SOLUCION).xlsm
  20. Buenas noches estimados espero estén bien Dentro del Formulario VTL (frmvtl) estan los TextBox 16, 17, 18, 19, 20, 21, 22 los cuales necesito que cuando contengan un valor cualquiera la macro los tome como 1 (TextBox<>””=1) y cuando los TextBox estén vacíos la macro los tome como 0 (TextBox=””=0) seria como usar la Función Contar de Excel, siendo así y conforme al funcionamiento de la Macro Calculo en el TextBox23 en la medida que se van introduciendo los datos el conteo o suma debe reflejarse de manera automática y simultánea en los Textbox 25, 27, 28, 29, de la siguiente manera: TextBox25 = TextBox16 +TextBox17+TextBox18+TextBox19+TextBox20+TextBox21+TextBox22 TextBox27 = TextBox16 +TextBox17+TextBox18+TextBox19+TextBox20+TextBox21+TextBox22 TextBox28 = TextBox27 TextBox29 = TextBox21+TextBox22 Por último, necesito que el resultado de la siguiente formula: SUMPRODUCT(('USUARIOS & PRIVILEGIOS'!$BS27:BS56>=EOMONTH(TODAY(),-1)+1)*('USUARIOS & PRIVILEGIOS'!$BS27:BS56<=EOMONTH(TODAY(),0))) Se refleje en el TextBox31 está formula ya la he utilizado en otras partes de mi proyecto dentro de un Funcion Select Case en conjunto con la Función Evaluate pero en este caso que es una única fórmula no sé cómo hacerla funcionar, el resultado esperado para el mes de Octubre es TextBox31 = 1 HHE PRUEBA.xlsm
  21. Saludos @Oscar_MRF espero estes bien, su solución funciona excelentemente bien, pero como nunca antes habia trabajado con la función LET tengo algunas interrogantes. La Columna “U” y la Columana “AU” pertenecen a una MATRIZ que se alimenta periódicamente por lo que su contenido siempre va en aumento razón por la cual al intentar agregar datos y/o manipular su ubicación me percate que la formula no funciona dinámicamente sino que muestra de inmediato #¿NOMBRE? en las Celdas “C3” y “C5” mientras que las Celdas “D3”, “D5”, “E3”, “E5” se muestran en blanco por lo que necesito que en la medida que la MATRIZ valla creciendo la formula pueda procesar los nuevos datos y actualizar la información automáticamente. La Hoja2 (CARTELERA) es un resumen de diversos indicadores que por razones legales debo imprimir y publicar periódicamente razón por la cual los datos deben aparecer en celdas específicas de allí que necesito que las Fechas “DESDE” (“AF20”, “AO20”), “HASTA” (“AF22”, “AO22”) y el Récord en Días (“AF15”, “AO15”) aparezcan en las celdas anteriormente especificadas de la Hoja2 (CARTELERA) para poder publicar toda la información de forma ordenada y entendible.
  22. Saludos @torquemada y @Israel Cassales espero estén bien, tengo una serie de fechas en la Columna “U” de la Hoja3 (MATRIZ) que representan la cantidad de días entre dos eventos determinados dichas fechas necesito que se evalúen, ordenen y filtren por pares de fechas desde el par más antiguo hasta el más reciente para aquellos casos en que la Columna “AU” de la Hoja3 (MATRIZ) cumpla con los siguientes criterios AU<>"" y AU="", en concreto requiero que mediante los criterios antes mencionados se evalúen, ordenen y filtren por separado cuál de los pares de fechas posee mayor cantidad de días entre las dos fechas para lo cual he intentado con las siguientes formulas: INDICE(ORDENAR(FILTRAR(MATRIZ!$U$2:$U$3018;MATRIZ!$AU$2:$AU$3018="");;1);1) INDICE(ORDENAR(FILTRAR(MATRIZ!$U$2:$U$3018;MATRIZ!$AU$2:$AU$3018="");;1);2) INDICE(ORDENAR(FILTRAR(MATRIZ!$U$2:$U$3018;MATRIZ!$AU$2:$AU$3018<>"");;1);1) INDICE(ORDENAR(FILTRAR(MATRIZ!$U$2:$U$3018;MATRIZ!$AU$2:$AU$3018<>"");;1);2) Como se puede observar en la Hoja3 (MATRIZ) hay un total de 18 fechas individuales repartidas desde la Celda “U3” hasta la Celda “U20” de la Hoja3, con los datos actuales las fórmulas deberían evaluar, ordenar y filtrar aquellos eventos correspondientes AU=””, obteniendo como resultado un conjunto de 14 pares de fechas, mientras que para aquellos eventos correspondientes AU<>”” se deberían obtener como resultado un conjunto de (02 pares) de fechas, las fórmulas deberían evaluar individualmente la cantidad especifica de días correspondiente a cada par de fechas seleccionando el par de fechas con mayor cantidad de días en consecuencia el par de fechas con el valor más alto cuando AU=”” es 147 Días del 07/07/2023 al 01/12/2023 y cuando AU<>”” es 432 Días del 23/02/2023 al 30/04/2023 Sin embargo, en los dos casos contemplados AU=”” y AU<>”” las fórmulas solo evalúan, ordenan y filtran el primer par de fechas de cada criterio mostrando como resultado en la Hoja65 (CARTELERA) como el par de fechas con el valor más alto cuando AU=”” es 28 Días del 01/01/2023 al 29/01/2023 y cuando AU<>”” es 37 Días del 17/01/2023 al 23/02/2023 ¿Podrían ayudarme hacer funcionales estas formulas? Mucho les sabre agradecer la ayuda que me puedan dar. N° DE DIAS PRUEBA.xlsm
  23. Saludos Sr @Antoni gracias por atender mi solicitud Hasta ahora funciona conforme a lo esperado
×
×
  • 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.