Seleccionar un rango de filas mediante inputbox

Como esta es mi primera pregunta en este foro
la pregunta es la siguiente
como saben en exel no se pueden seleccionar más de 3 formato condicional
pero tengo una macro la cual puede dar formato condicional a más de 3
la macro es la siguiente
Rem Ce1 es asociado a la celda seleccionada
Set Ce1 = Application.InputBox("Seleccione la celda en la que se encuentra " & _
  "seleccionara el formato condicional", Type:=8)
If Ce1 Is Nothing Then Exit Sub
If Selection.Value = "Exelente" Then
With Selection.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
Else
If Selection.Value = "Notable" Then
With Selection.Interior
.ColorIndex = 7
.Pattern = xlSolid
End With
Else
If Selection.Value = "et" Then
With Selection.Interior
.ColorIndex = 8
.Pattern = xlSolid
End With
End If
End If
End If
End Sub
Entre varios valores
Lo que quisiera es lo siguiente
Hacer una macro que mediante intpubox me pida un rango de varias celda
y que le aplique la macro con el formato condiconal que tengo
es un proyecto sobre una escuela con notas de estudiante espero una ayuda

2 respuestas

Respuesta
1
Entiendo que irás seleccionando las celdas de a 1.
Entonces como a la celda seleccionada la llamás 'Ce1', ese nombre tenés que usar en lugar de 'Selection', ya que la celda seleccionada puede ser otra al momento de llamar al InputBox.
Tus instrucciones quedarán así:
'Private Sub Worksheet_Activate()
Rem Ce1 es asociado a la celda seleccionada
Set Ce1 = Application.InputBox("Seleccione la celda en la que se encuentra " & _
  "seleccionara el formato condicional", Type:=8)
If Ce1 Is Nothing Or Ce1.Count > 1 Then Exit Sub   (*)
If Ce1.Value = "Exelente" Then
With Ce1.Interior
.ColorIndex = 6
.Pattern = xlSolid
End With
Else
If Ce1.Value = "Notable" Then
With Ce1.Interior
.ColorIndex = 7
.Pattern = xlSolid
End With
Else
If Ce1.Value = "et" Then
With Ce1.Interior
.ColorIndex = 8
.Pattern = xlSolid
End With
End If
End If
End If
End Sub
(*) Te agregué un control por posible error que pudiera presentarse si seleccionás + de 1 celda.
Sdos. No dejes la consulta sin finalizar si el tema queda resuelto.
Elsa
*Mi mejor recomendación para ti: mi manual 400MacrosPlus con revisión y anexo para Excel 2007
http://aplicaexcel.galeon.com/index.htm
Respuesta
Te dejo este código a ver si te sirve
Sub Macro1()
    Dim sRango As Range
    Dim sCeldaIni As String
    Dim nFilaIni As Long
    Dim nFilaFin As Long
    Dim nColIni  As Long
    Dim nColFin  As Long
    Dim nFila As Long
    Dim nCol As Long
    Set sRango = Application.InputBox("Seleccione la celda en la que se encuentra " & _
      "seleccionara el formato condicional", Type:=8)
    If sRango Is Nothing Then Exit Sub
    If sRango.Rows.Rows.Count = 1 Then
        Range(sRango.Address).Select
        Formato
    Else
        sCeldaIni = Left(sRango.Address(, , xlR1C1), InStr(1, sRango.Address(, , xlR1C1), ":") - 1)
        nFilaIni = Replace(Left(sCeldaIni, InStr(1, sCeldaIni, "C") - 1), "R", "")
        nFilaFin = sRango.Rows.Rows.Count
        nColIni = Mid(sCeldaIni, InStr(1, sCeldaIni, "C") + 1, Len(sCeldaIni) - InStr(1, sCeldaIni, "C"))
        nColFin = sRango.Columns.Count
        For nCol = nColIni To nColFin
            For nFila = nFilaIni To nFilaFin
                Cells(nFila, nCol).Select
                MsgBox Selection.Address
                Formato
            Next
        Next
    End If
End Sub
Sub Formato()
    Select Case Selection.Value
        Case "Exelente"
            With Selection.Interior
                .ColorIndex = 6
                .Pattern = xlSolid
            End With
        Case "Notable"
            With Selection.Interior
                .ColorIndex = 7
                .Pattern = xlSolid
            End With
        Case "et"
            With Selection.Interior
                .ColorIndex = 8
                .Pattern = xlSolid
            End With
    End Select
End Sub
josaul buenas gracias por contestarme.
Solo que con la macro no pasa nada
Pero cuando ejecuto la macro formato () que me enviaste me da un error 13 no coisiden los tipo . Parece que solo le aplica la macro formato() a una sola celda en particular.
Pero lo que yo quisiera es que me aplique la macro formato ()
  A un rango de celdas Seleccionada mediante un inputbox. No sola mente a una celda.
Te reitero las gracias por contestarme pues e tratado con varias macro y modificaciones
pero me da el error 13. Adiferencia de la macro que me genera el inputbox. El inputbox funciona muy bien pues selecciona el rango de celdas Que marco con el mouse. Pero el problema esta en la macro formato.
Solo me queda esperar una respuesta tuya muchas gracias de antemano no ce si tengo
que puntuar por cual quier respuesta.
Ok, porque no me envías una copia de tu trabajo para probar la MACRO y hacer los ajustes
Mi correo es [email protected]

Añade tu respuesta

Haz clic para o