
jues
MiembroConfiguraciones
-
Campo que utilizas como separador de argumentos
;
-
Mi versión de Excel:
0
Visitantes recientes del perfil
50627 visitas de perfil
jues's Achievements
-
SUMAR.docx
-
jues ha empezado a seguir a Bloquear TextBox, SpinButton y CommandButton según selección en Combobox , Sumar 6to, 7mo Dia y Decimales , Error al Guardar Información de un Label y 1 otro
-
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
-
Funciona exelente muchas gracias
-
-
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
-
Funciona perfecto mejor de lo que esperaba mil gracias
-
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
-
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
-
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
-
Correcto tal cual se ajusta a lo que necesito muy acertado como siempre usted
-
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
-
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
-
Genial como siempre funciona perfecto mil gracias @JSDJSD
-
Buenos días @JSDJSD tal cual lo que colocas es la solución adecuada