DiegoLG
-
Contador de contenido
866 -
Unido
-
Última visita
-
Días con premio
10
DiegoLG's Achievements
-
Hola Diego,
Vi tu aportación acerca de un Concatenado condicional en el cual sugerías un UDF de la sforma que adjunto, pero me gustaría saber que ajuste sugerirías para que el resultado lo pueda obtener separando por un salto de línea a cada uno de los valores que jala el concatenado. (Pensé que modificando la fórmula a CARACTER (10) lo lograría, pero no fue así)
De antemano muchas gracias!!
Function ConcatenarSI(Criterios As Range, Condicion As String, Datos As Range, _ Optional Exacto As Boolean = False, _ Optional Separa As String = " ") As String Dim Criterio As Range, Sig As Integer, Coincide As Boolean: ConcatenarSI = "" For Each Criterio In Criterios: Sig = Sig + 1: Coincide = IIf(Exacto, _ Criterio = Condicion, LCase(Criterio) = LCase(Condicion)) If Coincide Then If Not IsEmpty(Datos.Cells(Sig)) Then ConcatenarSI = _ ConcatenarSI & IIf(Len(ConcatenarSI), Separa, "") & Datos.Cells(Sig) Next End Function
-
Cordial saludo Diego
Solicito una ayudota.
Tengo una hoja excel para un examen con varias preguntas, (40), cada pregunta tiene cuatro opciones de respuesta A), B), C), o D), para ello he utilizado Option Buton (4), para cada pregunta. Para escoger la respuesta y calificarla, y al escoger cada OpButton debe registrar como primera opción un "4", en una celda específica... Me explico
Escoge:
OptBtn1 debe registrar "4" en la celda Z5
OptBtn2 debe registrar "4" en la celda Z6
OptBtn3 debe registrar "4" en la celda Z7
OptBtn4 debe registrar "4" en la celda Z8
Pero al digitar por "error" cualquier opción y volver a digitar la que considere mejor, debe borrar la celda anterior...
Tengo el siguiente código, pero se repite demasiado y creo que consume muchos bytes la idea es hacer ligero el código y rápido
Private Sub OptBtn_Change()
If OpBt1A = True Then
Range("J86").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("J86").Select
Selection.ClearContents
End If
If OpBt1B = True Then
Range("F87").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("F87").Select
Selection.ClearContents
End IfIf OpBt1C = True Then
Range("G88").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("G88").Select
Selection.ClearContents
End If
If OpBt1D = True Then
Range("E89").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("E89").Select
Selection.ClearContents
End IfIf OpBt2A = True Then
Range("J92").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("J92").Select
Selection.ClearContents
End If
If OpBt2B = True Then
Range("E93").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("E93").Select
Selection.ClearContents
End If
If OpBt2C = True Then
Range("F94").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("F94").Select
Selection.ClearContents
End If
If OpBt2D = True Then
Range("H95").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("H95").Select
Selection.ClearContents
End IfIf OpBt3A = True Then
Range("F98").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("F98").Select
Selection.ClearContents
End If
If OpBt3B = True Then
Range("J99").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("J99").Select
Selection.ClearContents
End If
If OpBt3C = True Then
Range("I100").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("I100").Select
Selection.ClearContents
End If
If OpBt3D = True Then
Range("G101").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("G101").Select
Selection.ClearContents
End IfIf OpBt4A = True Then
Range("H104").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("H104").Select
Selection.ClearContents
End If
If OpBt4B = True Then
Range("I105").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("I105").Select
Selection.ClearContents
End If
If OpBt4C = True Then
Range("E106").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("E106").Select
Selection.ClearContents
End If
If OpBt4D = True Then
Range("F107").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("F107").Select
Selection.ClearContents
End IfIf OpBt5A = True Then
Range("G110").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("G110").Select
Selection.ClearContents
End If
If OpBt5B = True Then
Range("H111").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("H111").Select
Selection.ClearContents
End If
If OpBt5C = True Then
Range("I112").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("I112").Select
Selection.ClearContents
End If
If OpBt5D = True Then
Range("J113").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("J113").Select
Selection.ClearContents
End IfIf OpBt6A = True Then
Range("E116").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("E116").Select
Selection.ClearContents
End IfIf OpBt6B = True Then
Range("F117").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("F117").Select
Selection.ClearContents
End If
If OpBt6C = True Then
Range("J118").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("J118").Select
Selection.ClearContents
End If
If OpBt6D = True Then
Range("I119").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("I119").Select
Selection.ClearContents
End IfIf OpBt7A = True Then
Range("G122").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("G122").Select
Selection.ClearContents
End If
If OpBt7B = True Then
Range("J123").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("J123").Select
Selection.ClearContents
End If
If OpBt7C = True Then
Range("F124").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("F124").Select
Selection.ClearContents
End If
If OpBt7D = True Then
Range("H125").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("H125").Select
Selection.ClearContents
End IfIf OpBt8A = True Then
Range("E128").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("E128").Select
Selection.ClearContents
End If
If OpBt8B = True Then
Range("I129").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("I129").Select
Selection.ClearContents
End If
If OpBt8C = True Then
Range("H130").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("H130").Select
Selection.ClearContents
End If
If OpBt8D = True Then
Range("J131").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("J131").Select
Selection.ClearContents
End IfIf OpBt9A = True Then
Range("F134").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("F134").Select
Selection.ClearContents
End If
If OpBt9B = True Then
Range("G135").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("G135").Select
Selection.ClearContents
End If
If OpBt9C = True Then
Range("E136").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("E136").Select
Selection.ClearContents
End If
If OpBt9D = True Then
Range("I137").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("I137").Select
Selection.ClearContents
End IfIf OpBt10A = True Then
Range("G140").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("G140").Select
Selection.ClearContents
End If
If OpBt10B = True Then
Range("E141").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("E141").Select
Selection.ClearContents
End If
If OpBt10C = True Then
Range("H142").Select
ActiveCell.FormulaR1C1 = "4"
Else
Range("H142").Select
Selection.ClearContents
End Ifend sub
-
Estimado:
Apenas me conecte, ultimamente ando un poco ocupado, mas los temblores que esta pasando aqui en méxico, la verdad esta fallando mucho la red.
sobre tu tema, puedes manejar de la siguiente manera:
Private Sub OptionButton1_Click() Hoja1.Range("Z5:Z8") = "" If OptionButton1 = True Then Range("Z5") = 4 End Sub Private Sub OptionButton2_Click() Hoja1.Range("Z5:Z8") = "" If OptionButton2 = True Then Range("Z6") = 4 End Sub Private Sub OptionButton3_Click() Hoja1.Range("Z5:Z8") = "" If OptionButton3 = True Then Range("Z7") = 4 End Sub Private Sub OptionButton4_Click() Hoja1.Range("Z5:Z8") = "" If OptionButton4 = True Then Range("Z8") = 4 End Sub
Saludos,
-
-
Ayuda a tus semejantes a levantar su carga, pero no te consideres obligado a llevársela. Pitágoras